我正在本地机器中根据laradock的官方文档设置laradock(多个项目的设置(。
安装后,我通过工作空间容器bash安装了laravel。我确实在nginx/sites/
目录和/etc/hosts
文件中配置了应用程序的配置文件。
在访问开发url时,我收到以下错误消息:
流或文件"/var/www/laravel-api/storage/logs/laravel.log";无法在附加模式下打开:无法打开流:权限被拒绝
这对我有效:
chown -R www-data:www-data "project foldername"
如果您在更改文件的权限和所有者后仍然面临这个问题,只需检查Linux服务器的操作系统即可。登录到您的服务器
$ ssh user@server-ip
检查运行在linux服务器上的操作系统
$ cat /etc/os-release
//输出
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
如果是在CentOS,则需要禁用安全增强型Linux(SELinux((如果已启用(。检查SELinux状态
$ sestatus
如果启用,则
$ setenforce Permissive
或
$ sudo setenforce 0
祝你今天过得愉快!
您必须首先输入"docker compose exec工作空间bash";(无报价(
要授予单个文件的写入权限,
chmod -R 777 /var/www/laravel-api/storage/logs/laravel.log
或
chmod -R 777 /var/www/laravel-api/storage/logs
或
sudo chmod -R 777 /var/www/laravel-api/storage/logs/laravel.log
当出现相同的错误但文件夹或文件不同时,只更改文件夹名
示例:
chmod -R 777 /var/www/laravel-api/storage/logs
chmod -R 777 /var/www/laravel-api/storage/framework/views
chmod -R 777 /var/www/laravel-api/storage/framework/sessions
如果您没有在web服务器上以root身份运行应用程序,那么它将无法根据您提供的权限进行写访问。
已从工作区容器bash中检查。存储/logs/目录具有
drwxr-xr-x 2 root root 4096 Aug 1 07:37 logs
该错误抱怨在追加模式下打开时权限被拒绝-它没有写入文件的权限,只有root有。
您需要做的是使您的web服务器组成为存储目录的所有者:
chown -R www-data:www-data /var/www/laravel-api/storage/
www-data
可以切换到与您的web服务器关联的任何组。
为了避免完全重复一个惊人而完整的答案,我建议你读一下这个答案:
如何为Laravel设置文件权限?
允许group
write
访问/storage/logs/
sudo chmod g+w storage/logs
您需要运行以下命令。它对我有效:
步骤1:
sudo chmod-R+rwX。
步骤2:
sudo chown-R$(whoami(。