【发布时间】:2020-09-28 06:41:22
【问题描述】:
我在 AWS ElasticBeanstalk 上部署了一个 Laravel 应用程序(PHP 7.3 在 64 位 Amazon Linux/2.9.7 上运行)。 应用程序在运行时运行良好,但对于少数请求会随机抛出以下错误。
PHP 致命错误:未捕获的 UnexpectedValueException:流或 文件“/var/app/current/storage/logs/laravel.log”无法打开: 无法打开流:权限被拒绝 /var/app/current/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:110\n堆栈 跟踪:\n#0 /var/app/current/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\Handler\StreamHandler->write(Array)\n#1 /var/app/current/vendor/monolog/monolog/src/Monolog/Logger.php(323): Monolog\Handler\AbstractProcessingHandler->handle(Array)\n#2 /var/app/current/vendor/monolog/monolog/src/Monolog/Logger.php(541): Monolog\Logger->addRecord(400, 'Unhandled Excep...', Array)\n#3 /var/app/current/vendor/laravel/framework/src/Illuminate/Log/Logger.php(174): Monolog\Logger->error('Unhandled Excep...', Array)\n#4 /var/app/current/vendor/laravel/framework/src/Illuminate/Log/Logger.php(87): Illuminate\Log\Logger->writeLog('error', 'Unhandled Excep...', 数组)\n#5 /var/app/current/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(54 在 /var/app/current/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php 110号线
我不明白为什么它只对某些请求而不是其他请求抛出错误。尽管如此,我尝试按照以下 .ebextensions 的一些帖子的建议将权限应用于存储和引导文件夹,但没有得到它的工作。
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_make_storage_writable.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
echo "Making /storage and /bootstrap writeable..."
chmod -R 777 /var/app/current/storage
chmod -R 777 /var/app/current/bootstrap
有人可以帮我吗?我对 Laravel 和 AWS 都很陌生,对这里可能出现的问题非常困惑。
【问题讨论】:
-
您的应用是否以 root 身份运行?您是否尝试仅删除日志文件并查看它是否会自行创建一个新文件?
-
@ahackney 该应用程序以 ec2-user 身份运行(使用“ps aux | grep apache”获取用户)。删除了文件,它自己创建了一个新文件。
-
我已启用将日志收集到尾日志和捆绑日志中,这会产生任何问题(怀疑这是偶尔发生的)?
标签: laravel amazon-web-services logging