【问题标题】:Laravel permissions on nginxnginx 上的 Laravel 权限
【发布时间】:2021-08-22 15:06:01
【问题描述】:

我正在使用这些将项目部署到 Digital Ocean 上的 Ubuntu instructions.

我遇到了权限问题,如果我授予这些权限 sudo chown -R www-data.www-data /var/www/project/storage sudo chown -R www-data.www-data /var/www/project/bootstrap/cache

我可以访问我的登录页面(尽管每隔一条路由都会出现 500 错误),但每当我尝试运行 php artisan optimize、route:clear 等时,我也会收到 The stream or file "/var/www/project/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied。

如果我将权限设置为此

sudo chown -R $USER /var/www/project/storage sudo chown -R $USER /var/www/project/bootstrap/cache

我遇到了相反的问题,我可以运行工匠命令并写入日志,但无法访问任何页面。

任何帮助将不胜感激

【问题讨论】:

    标签: php laravel ubuntu nginx


    【解决方案1】:

    除了设置group 和owner 的chmod -R www-data.www-data /var/www/project 之外,您可能还需要更改特定的dir 权限。

    sudo chmod -R 775 /var/www/project/storage/
    sudo chmod -R 775 /var/www/project/bootstrap/cache
    

    如果您尝试在服务器上的/var/www/project 目录中执行操作,请确保您的user 以www-data 组中的状态登录到服务器。

    您只需在 shell 中输入 groups 即可查看您所在的组。如果您在返回的列表中没有看到www-data,请添加您自己。

    usermod -aG www-data $USER
    

    将自己添加到 www-data 组后,您需要重新登录才能使更改生效。

    【讨论】:

    • 这解决了我的权限问题。谢谢! 500 问题是因为我忘记在部署后运行迁移而引起的
    【解决方案2】:

    您需要将 boostrap 缓存文件夹和 laravel.log 文件更改为读取、写入和执行。转到你的 laravel 项目,然后输入这段代码

    sudo chmod 777 bootstrap/cache/
    sudo chmod 777 storage/logs/*.log
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 2018-07-15
      • 2018-12-15
      • 2017-11-18
      • 1970-01-01
      • 2016-09-12
      • 2017-08-22
      相关资源
      最近更新 更多