即使我授予该文件夹完全权限,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
这个解决方案曾经有效过。但过了一段时间我遇到了同样的问题。 我尝试重新运行 tose 命令,但没有任何改变。
有什么想法吗?
最佳答案
我已经解决了这个问题。 方法如下。
首先,Nginx 和 php-fpm 使用 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 用户/组(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
关于php - 即使具有正确的权限,Symfony 也无法在 CentOS 7 上写入缓存文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62623453/