即使具有正确的权限,Symfony 也无法写入 CentOS 7 上的缓存文件夹
Symfony can't write in cache folder on CentOS 7 even with the right permissions
Symfony 无法写入缓存文件夹,即使我授予该文件夹的完全权限
chmod 777 -R /path/to/symfony/var
但我总是收到这些错误
Cache directory "/path/to/symfony/var/cache/dev" is not writable.
我在 Centos 7 上,我使用 nginx 和 php7
我在 Ubuntu 或 Windows 上从未遇到过这个问题。就在我将我的应用程序移动到 CentOS 的时候
有人建议我 运行 var 文件夹中的那些命令
chcon -R -t httpd_sys_content_rw_t /path/to/symfony/var
systemctl restart nginx
这个解决方案曾经奏效。但过了一会儿我遇到了同样的问题。
我尝试重新运行这些命令,但没有任何改变。
有什么想法吗?
我已经解决了这个问题。
方法如下。
首先,Nginx 和 php-fpm 运行ning 使用 nginx 用户。这个用户是在安装 Nginx 时自动创建的。
在/etc/nginx/nginx.conf
user nginx;
并在 /etc/php-fpm.d/www.conf
user = nginx
group = nginx
...
...
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
其次,symfony 应用程序的权限设置为 755,所有者更改为 nginx user/group(用户 Nginx 和 php-fpm 正在使用)
sudo chown -R nginx:nginx /path/to/symfony
sudo chmod 0755 -R /path/to/symfony
然后,我运行两个命令。首先是启用 httpd 连接
第二个允许httpd进程在/path/to/symfony文件夹
上读写
sudo setsebool -P httpd_can_network_connect on
sudo chcon -R -t httpd_sys_content_rw_t /path/to/symfony
最后,重启Nginx服务
sudo systemctl restart nginx
Symfony 无法写入缓存文件夹,即使我授予该文件夹的完全权限
chmod 777 -R /path/to/symfony/var
但我总是收到这些错误
Cache directory "/path/to/symfony/var/cache/dev" is not writable.
我在 Centos 7 上,我使用 nginx 和 php7
我在 Ubuntu 或 Windows 上从未遇到过这个问题。就在我将我的应用程序移动到 CentOS 的时候
有人建议我 运行 var 文件夹中的那些命令
chcon -R -t httpd_sys_content_rw_t /path/to/symfony/var
systemctl restart nginx
这个解决方案曾经奏效。但过了一会儿我遇到了同样的问题。 我尝试重新运行这些命令,但没有任何改变。
有什么想法吗?
我已经解决了这个问题。 方法如下。
首先,Nginx 和 php-fpm 运行ning 使用 nginx 用户。这个用户是在安装 Nginx 时自动创建的。
在/etc/nginx/nginx.conf
user nginx;
并在 /etc/php-fpm.d/www.conf
user = nginx
group = nginx
...
...
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
其次,symfony 应用程序的权限设置为 755,所有者更改为 nginx user/group(用户 Nginx 和 php-fpm 正在使用)
sudo chown -R nginx:nginx /path/to/symfony
sudo chmod 0755 -R /path/to/symfony
然后,我运行两个命令。首先是启用 httpd 连接 第二个允许httpd进程在/path/to/symfony文件夹
上读写sudo setsebool -P httpd_can_network_connect on
sudo chcon -R -t httpd_sys_content_rw_t /path/to/symfony
最后,重启Nginx服务
sudo systemctl restart nginx