从Laravel 5.4升级到5.5后,我发现了一个可怕的错误,如下所示。
(1/1) UnexpectedValueException
The stream or file "/home/vagrant/Code/website/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied**
答案 0 :(得分:1)
您还需要更改所有者权限和chmod。在终端中使用以下命令:
sudo chown -Rf www-data:www-data /home/vagrant/Code/website/storage/
答案 1 :(得分:1)
您报告的错误表示服务器无法写入
/home/vagrant/Code/website/storage/logs/laravel.log
这可能由于多种原因而发生,您可能尚未检查所有原因:
因此,网络服务器用户必须能够以上所有三个。那你必须:
通常建议"将所有内容设置为777(或' rwxrwxrwx')",毫无疑问正在工作,这是不安全的,因为它授予每个人每一个权利
验证一切都是copacetic的一种方法是冒充适当的用户(如果允许的话)并尝试遵循路径。在这里,作为root:
# su nobody -c "ls /var"
(output omitted)
# su nobody -c "ls /var/www"
(output omitted)
# su nobody -c "ls /var/www/test"
ls: cannot open directory '/var/www/test': Permission denied
在上面的示例中,能够读取和写入 logs 可能是不够的,因为无法输入父目录。
答案 2 :(得分:0)
sudo chmod -R o+w /home/vagrant/Code/website/storage
你尝试过这个权限吗?
答案 3 :(得分:0)
尝试以下操作:
sudo nano /etc/php/7.0/fpm/pool.d/www.conf
更改以下参数:
user = www-data
group = www-data
收件人:
user = vagrant
group = vagrant
记住要重新启动PHP FPM
sudo service php7.0-fpm restart
答案 4 :(得分:-1)
如果已在系统上启用selinux,则必须按照上述命令将其禁用。 希望对您有帮助。