Laravel XAMPP在Mac上出现错误:无法打开流或文件“/storage/logs/laravel.log”:无法打开流:权限被拒绝。

5

我正在尝试在本地主机上运行一个现有的Laravel项目,但当我尝试运行该程序时,出现以下错误:

无法打开流或文件“/storage/logs/laravel.log”:打开流失败:权限被拒绝

我尝试了以下方法:

chmod -R 775 storagechmod -R 777 storage

仍然没有用,我甚至尝试执行chgrp -R www-data my-project,但终端出现了这个错误信息:

chgrp: www-data: illegal group name

我做错了什么?

如果这是Linux,我会建议您检查文件的所有者,它应该是虚拟主机所有者(如果已设置)。或许Windows也需要这样做。请参考https://stackoverflow.com/questions/24141556/xampp-how-to-make-apache-webserver-owner-of-folder-htdocs。 - Taha Paksu
@AmitozDeol 当我这样做时,我得到了这个错误:file_put_contents (/ storage / framework / cache / data / 9c / 17 / 9c17a99b76c7d84c467be3b9936a19ac171000a1):无法打开流:没有此类文件或目录。 - user979331
rm -R storage/framework/cache/data - Amitoz Deol
@loic.lopez 在检查数据文件夹后发现它不存在.....但我是从服务器上复制的,它怎么能在服务器上运行呢? - user979331
你的 Laravel 应用程序由哪个“用户组”运行? - Farooq Ahmed Khan
显示剩余5条评论
2个回答

21

进入项目目录并运行

sudo chmod -R 777 storage/*

6

这是我的解决方案。

首先,您需要从项目目录中运行php artisan cache:clear,然后运行chmod -R 777 app/storage,最后运行composer dump-autoload,现在它将正常工作。

"illegal group name"实际上意味着您指定的组(在www-data之后输入用户名)不存在。您需要创建该组、停止指定组或指定一个已存在的组。


尝试使用Composer dump-autoload。 - Ismoil Shifoev
我尝试过了,它说生成了包含4054个类的优化自动加载文件,但错误仍然存在。 - user979331
关于非法组名,当您尝试使用www-data时,您需要使用用户名而不是项目名称。或者使用指定存在的组。 - Ismoil Shifoev
除了Ismoil的解决方案之外,您还需要更改项目文件夹的权限:右键单击>获取信息>共享和权限,并将它们更改为读取和写入,并确保您还包括其中所有的文件和文件夹: - RileyManda
这对我有用,谢谢!在我苦思冥想了大约20分钟之后。 - Erich García

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接