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 在 rootdaemon 用户下运行。我刚刚运行了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”。没有权限

move_upoaded_file():无法打开流:权限被拒绝 laravel xampp

Xampp 上的 Laravel 虚拟主机无法正常工作

我在 ubuntu 上安装 XAMPP,我打开它们时出错知道