Laravel - 无法打开流:权限被拒绝

Laravel - failed to open stream: Permission denied

我正在尝试在数字海洋上安装 laravel 应用程序。当我 运行 命令 php artisan migrate --seed 到达其中一个播种机时出现以下错误:

 The stream or file "/var/www/test.mysite.com/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

我遵循了 DO 教程 (https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-laravel-with-nginx-on-ubuntu-20-04) 并添加了以下权限:

sudo chown -R www-data.www-data /var/www/test.mysite.com/storage
sudo chown -R www-data.www-data /var/www/test.mysite.com/bootstrap/cache

那么为什么它仍然抛出权限被拒绝的错误?

运行此命令用于存储权限

sudo chmod -R 755 storage/

也可以设置nginx宽容模式

semanage permissive -a httpd_t

nginx 宽容模式对我来说工作正常。

设法修复。我需要给我自己(登录的 ssh 用户)目录和 webser 的所有权,如下所示:

sudo chown -R $USER:$USER /var/www/test.mysite.com
sudo chgrp -R www-data /var/www/test.mysite.com/storage /var/www/test.mysite.com/bootstrap/cache
sudo chmod -R ug+rwx /var/www/test.mysite.com/storage /var/www/test.mysite.com/bootstrap/cache

转到您的项目根目录并运行此命令

chmod -R 777 storage/

如果 bootstrap 缓存试试这个

chmod -R 777 bootstrap/cache