事实上,我是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存储根本没有帮助。


当前回答

只需在项目根目录-中运行以下命令

sudo chmod -R 775 storage
sudo chown -R $USER:www-data storage

其他回答

需要调整存储和bootstrap/cache的权限。

cd到你的Laravel项目。 sudo chmod -R 755存储 sudo chmod -R 755 bootstrap/cache

如果755不行,你可以试试777。777可不安全!

根据您的web服务器的设置方式,您可以更具体地设置您的权限,并仅将它们授予您的web服务器用户。谷歌WEB SERVER NAME Laravel文件权限以获取更多信息。

在撰写本文时,这是针对Laravel 5.4的

我设法修复它,因为我只通过这个命令授予权限:

复制代码

sudo chmod -R 775 storage

解决方案是添加以下内容:

复制代码

sudo chmod -R ugo+rw storage

下面的命令肯定会起作用。

sudo chmod -R ugo+rw storage

您可能已经知道,这个问题是由于没有对日志文件夹(存储的子文件夹)的写权限引起的。

要解决这个问题,需要经过以下一系列步骤

更新的作曲家

 sudo composer self-update

修改存储文件夹写权限

 sudo chmod -R ugo+rw storage

现在存储文件夹应该有权限drwxrwxrwx

从项目根运行以下命令检查权限

ls -l 

同样,如果您在上述步骤后遇到以下错误

 ErrorException chdir(): No such file or directory (errno 2)

只需在项目根文件夹中使用创建一个名为public的文件夹

sudo mkdir public

关于chmod命令的更多信息,请检查这个

这是我在运行Apache时所做的:

sudo chown -R $USER:www-data my_laravel_project/

sudo chmod -R 775 my_laravel_project/storage

sudo chmod -R 775 my_laravel_project/bootstrap/cache

cd my_laravel_project

php artisan optimize:clear