xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝
Posted
技术标签:
【中文标题】xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝【英文标题】:xampp ubuntu laravel The stream or file "/storage/logs/laravel log" could not be opened: failed to open stream: Permission denied 【发布时间】:2019-09-10 04:58:35 【问题描述】:在我在 ubuntu 上安装的 xampp 上安装了 laravel。在浏览器中打开它。得到错误:
无法打开流或文件 /storage/logs/laravel 日志:无法打开流:权限被拒绝
如何解决? (我已经找到答案了,马上贴出来)
【问题讨论】:
通常 laravel 安装在宅基地上,在 vagrant 上,因此所有答案都是关于这些平台的,我添加了价值 - 关于 xampp+ubuntu 上 laravel 的答案 【参考方案1】:添加到composer.json
"scripts":
"post-install-cmd": [
"chgrp -R www-data storage bootstrap/cache",
"chmod -R ug+rwx storage bootstrap/cache"
]
然后运行 composer install 或 update 解决您的问题
【讨论】:
你自己在ubuntu+xampp上试过了吗?我刚刚尝试并得到了错误:chgrp: changing group of 'storage/framework/testing/.gitignore': Operation not permitted
。这是因为 composer 是在用户权限下运行的,而不是以 root 身份运行(并且 composer 文档强烈反对以 root 身份运行它),但是 chgrp
命令需要 root 权限。因此,这是行不通的
顺便说一句,我为什么要把组改为www-data
?在 ubuntu 上的 xampp 中,apache 在 root
和 daemon
用户下运行。我刚刚运行了groups daemon
,它显示daemon
用户不属于任何www-data
组。这是什么www-data
?你能解释一下吗?
顺便说一句,我刚刚尝试直接运行sudo chown -R www-data storage/
,你知道吗 - 它也没有帮助。
和sudo chgrp -R www-data storage/
也无济于事
web 用户组是 www-data,因此您将 web 目录文件的所有权更改为 www-data 所有权。在作曲家或终端中尝试这两个命令并正常工作。【参考方案2】:
问题是运行 apache 的用户无权访问该文件夹。在 ubuntu 上的 xampp 中,主 apache 进程的用户是 root
。但 apache 工作人员在 daemon
用户下运行。解决方案是授予daemon
访问/storage
目录的权限。 (如果您只授予/storage/logs
,那么您将修复此错误,但同级目录也会出现同样的错误。因此storage
本身的文件夹:
sudo chown -R daemon /path-to-your-project/storage
现在daemon
用户可以访问此文件夹(您没有但需要它吗?
如果您有更好的解决方案,请随时在这里分享!
【讨论】:
以上是关于xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu (laravel) 中使用 XAMPP 运行 PHP 和 MySQL
无法在本地主机(XAMPP)上打开 Laravel 日志(权限被拒绝)
Laravel 7 XAMPP Mac OS:无法打开流或文件“../storage/logs/laravel.log”。没有权限