CentOS 7 上 Laravel 的存储目录的权限问题。使用 chmod 和 chown 更改权限和所有权并不能解决问题
Permission problems with Laravel's storage directory on CentOS 7. Changing permissions and ownship with chmod and chown does not solve it
我在修改我的问题时自己想出了这个问题,但无论如何我都会 post 我的原始问题和解决方案,以防它帮助其他人。
该解决方案与符号 links 或 Deployer 无关,但我将按原样留下我的问题,以防有人以类似的方式遇到同样的问题。
我正在尝试在 CentOS 7 服务器上使用 Deployer 设置 Laravel 5.8 部署。
部署成功。 storage
文件夹在我的 deploy.php
文件中设置为共享目录,因此它将 storage
文件夹设置为版本之间的永久共享文件夹。它通过为发布的共享 storage
文件夹创建符号 link 来实现。
在 /var/www/test-laravel/current
有一个当前版本的文件夹,它实际上是最新版本文件夹的符号 link(在本例中为 /var/www/test-laravel/releases/18
)。在该文件夹中,storage
文件夹实际上是一个符号 link 到 /var/www/test-laravel/shared/storage
。
我收到以下错误,
尝试了 permissions/owners/groups 的几种变体后,出于沮丧,我手动 运行 chmod -R 777
和 chown -R apache.apache
不仅在原始存储文件夹上,而且在所有symlink 个文件夹。
这根本没有改变任何东西。我仍然遇到同样的错误。
我认为这不会有什么不同,但为了更好的衡量,我已经 运行 php artisan cache:clear
、php artisan view:clear
和 php artisan config:clear
.
原来是 SELinux 的问题。
我禁用了 SELinux,(setenforce 0
) 然后它工作得很好。但是,我知道禁用 SELinux 并不可取,所以我重新启用了 SELinux (setenforce 1
),相反,我尝试像这样更改存储文件夹上的标签,
chcon -R -t httpd_sys_rw_content_t storage
成功了!不再有权限问题。
我在修改我的问题时自己想出了这个问题,但无论如何我都会 post 我的原始问题和解决方案,以防它帮助其他人。
该解决方案与符号 links 或 Deployer 无关,但我将按原样留下我的问题,以防有人以类似的方式遇到同样的问题。
我正在尝试在 CentOS 7 服务器上使用 Deployer 设置 Laravel 5.8 部署。
部署成功。 storage
文件夹在我的 deploy.php
文件中设置为共享目录,因此它将 storage
文件夹设置为版本之间的永久共享文件夹。它通过为发布的共享 storage
文件夹创建符号 link 来实现。
在 /var/www/test-laravel/current
有一个当前版本的文件夹,它实际上是最新版本文件夹的符号 link(在本例中为 /var/www/test-laravel/releases/18
)。在该文件夹中,storage
文件夹实际上是一个符号 link 到 /var/www/test-laravel/shared/storage
。
我收到以下错误,
尝试了 permissions/owners/groups 的几种变体后,出于沮丧,我手动 运行 chmod -R 777
和 chown -R apache.apache
不仅在原始存储文件夹上,而且在所有symlink 个文件夹。
这根本没有改变任何东西。我仍然遇到同样的错误。
我认为这不会有什么不同,但为了更好的衡量,我已经 运行 php artisan cache:clear
、php artisan view:clear
和 php artisan config:clear
.
原来是 SELinux 的问题。
我禁用了 SELinux,(setenforce 0
) 然后它工作得很好。但是,我知道禁用 SELinux 并不可取,所以我重新启用了 SELinux (setenforce 1
),相反,我尝试像这样更改存储文件夹上的标签,
chcon -R -t httpd_sys_rw_content_t storage
成功了!不再有权限问题。