php - 即使具有正确的权限,Symfony 也无法在 CentOS 7 上写入缓存文件夹

标签 php symfony nginx permissions centos

即使我授予该文件夹完全权限,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/

相关文章:

php - Bundle 的 Symfony 4 自定义配置 yaml 文件

php - Apache 2.22 + php 5.40 + Symfony Framework = Apache Segmentation fault (11)

python - Nginx 的工作进程挂起并占用完整的 CPU

php - laravel 5 单元测试中的异常 Illuminate\Session\TokenMismatchException

php - 自定义 WordPress 主题(二十十三)。如何从标题中删除一个标题而不将其全部删除

php - 以特定顺序检索数据的单个 SQL 查询(不是 ASC/DESC)

php - Symfony 3从 Controller 内的表单类更改提交标签

node.js - 如何从 Angular Nginx 容器连接到 Node API docker 容器

Node.js Hello world 脚本不起作用

php - php 中的僧伽罗语 unicode