存储/日志下的laravel.log在升级到5.5后会出现Permission denied错误

时间:2017-08-23 16:51:53

标签: laravel laravel-5 homestead

从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** 
  1. 尝试使用chmod更改权限
  2. 还尝试将我的vagrant同步文件夹更改为我使用的Homestead环境。
  3. 此外,所有内容都已更新至上一版本。

5 个答案:

答案 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

这可能由于多种原因而发生,您可能尚未检查所有原因:

  1. 文件无法写入
  2. 文件夹无法写入
  3. 无法访问以下任何路径组件(这是常见问题)
  4. 因此,网络服务器用户必须能够以上所有三个。那你必须:

    • 确定Web服务器的用户和组(守护程序,nobody,www-data等)
    • 验证所有路径组件(包含的文件夹)是否具有该用户的适当权限。
    • 文件夹(此处为" logs")必须具有写入权限。

    通常建议"将所有内容设置为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)

setenforce 0

如果已在系统上启用selinux,则必须按照上述命令将其禁用。 希望对您有帮助。