事实上,我是laravel的新手,我正在尝试创建我的第一个项目。出于某种原因,我一直得到这个错误(我甚至还没有开始编码)

Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423

我读到这与权限有关,但chmod -R 775存储根本没有帮助。


当前回答

In Centos & Rockylinnux

chown root:nginx FOLDER_PROJECT -Rf
chmod 775 FOLDER_PROJECT -Rf
cd FOLDER_PROJECT
chmod 777 storage -Rf

setenforce 0

请评价:)

其他回答

执行以下命令,可以在starting of command时添加sudo,具体操作取决于系统:

chmod -R 775 storage/framework
chmod -R 775 storage/logs
chmod -R 775 bootstrap/cache 

在我的特殊情况下,我有一个配置文件生成并缓存到bootstrap/cache/目录,所以我的步骤如下:

删除所有生成的缓存文件:rm bootstrap/cache/*.php 创建一个新的laravelv .log文件,并使用以下方法更新该文件的权限: chmod -R 775存储

试试这个

cd /var/www/html setenforce 0 服务HTTPD重启

它也可能是SELinux。(Centos RedHat)

确定终端上SElinux的状态:

$ sestatus

如果status为enabled,写命令禁用SElinux

$ setenforce Permissive

或者你可以执行这个命令

$ sudo setenforce 0

最大的人建议更改文件权限777或775,我认为这不是一个合适的方法来解决这个问题。您只需要更改存储和引导文件夹的所有权。

在下面的图片中,你可以看到我所有的文件/文件夹都在根用户下(除了存储和引导,因为我改变了所有权),但我是以管理员身份登录的(在改变所有权之前),这就是为什么它总是给予拒绝权限的原因。所以我需要把这两个文件夹的所有权改为管理员

我是怎么做的呢, 转到项目目录并运行以下命令。 sudo chown -R yourusername:www-data storage sudo chmod -R ug+w storage, sudo chown -R yourusername:www-data bootstrap, sudo chmod -R ug+w bootstrap