'无法打开流:权限被拒绝'错误 - Laravel 5.1

Joa*_*lla 1 php ubuntu laravel ubuntu-14.04 laravel-5

我在我的Ubuntu 14.04和我的Laravel 5.1应用程序上遇到了问题.

当我的应用想要记录时,我收到此错误:

Uncaught UnexpectedValueException:无法打开流或文件storage/logs/l:无法打开流:/ var/www/releases/20160426/booking_server/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler中的权限被拒绝. php:87 \n堆栈跟踪:\n#0 ........它继续

我找到了这个解决方案:

sudo php artisan cache:clear 

sudo chmod -R 777 storage 

sudo composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

但问题是它只是暂时的.这个问题每天都会出现,我总是要做同样的事情.

我能做些什么来阻止这种情况发生?

PD:我有一个每日日志,但如果可能的话我想保持这种方式.

lin*_*san 5

建议在服务器上创建一个全局可写的目录(chmod 777).像这样设置权限,(假设网络服务器在组www-data下运行)

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
Run Code Online (Sandbox Code Playgroud)

请参阅:https://laracasts.com/discuss/channels/general-discussion/laravel-framework-file-permission-security

关于你的问题:似乎有一个正在运行的进程每天使用root权限创建日志文件.你确定没有相同的cron设置吗?

如果没有,请ls -l在storage/logs目录中运行并将输出粘贴到此处.(在手动更改权限之前执行此操作)