【发布时间】:2018-09-14 04:45:18
【问题描述】:
我正在尝试在我的 Elastic Beanstalk 实例上运行一个简单的 Laravel 命令行:php artisan queue:work
但我不断收到以下错误:
在 StreamHandler.php 第 107 行:
流或文件“/var/app/current/storage/logs/laravel.log”可以 未打开:无法打开流:权限被拒绝
我已经尝试了所有可以在 SO 上找到的解决方案(chmod -R 777 建议除外,该建议似乎随处可见)。
我尝试删除现有的laravel.log,然后使用touch 创建一个新的,然后确保webapp 是所有者。
我也试过了:
sudo chmod -R 755 /var/app/current/storage/
sudo chown -R webapp /var/app/current/storage/
当我列出日志目录时,一切看起来都像我认为的那样:
-rwxr-xr-x 1 webapp webapp 0 Apr 4 14:38 laravel.log
存储目录看起来也不错:
drwxr-xr-x 6 webapp webapp 4096 Apr 3 19:33 storage
但我仍然收到上述错误!谁能解释原因(不仅仅是给出解决方案)。
谢谢
【问题讨论】:
-
您的工作人员以什么用户身份运行?
-
尝试运行
sudo -u webapp php artisan queue:work -
@apokryfos 啊。这就说得通了。我对服务器端有点不适应。奇怪的是,它似乎没有错误地工作......但它实际上也没有处理队列。呃
-
队列是否被处理真的取决于很多原因。例如,我永远无法让队列工作者处理默认队列,我总是必须明确指定它需要处理哪个队列。
标签: laravel amazon-web-services permissions amazon-elastic-beanstalk