我在一台专用机器上安装了带有 nginx 的 centos 7,运行 symfony (PHP) 应用程序。每个站点都有自己的用户,在本例中,我们假设其用户为“ user
”用户组中的“ ” hostings
。应用程序所需的控制台命令如下运行
$ php bin/console cache:clear
在这种情况下,应用程序的文件夹/var/缓存将以“ user:hostings
”所有者身份创建。
问题是,当访问者到达网站(nginx / webserver 运行应用程序)时,它通常也会在同一个目录中创建一些额外的文件/var/缓存目录,nginx:nginx
所有权为“ ”。
因此,如果其中一个文件无法以另一个文件的权限进行写入,则会生成服务器 500 错误。
这里最好的方案是什么?我应该将“ nginx
”用户的组更改为“ hostings
”或将“ user:hostings
”更改为“ user:nginx
”吗?还是其他什么?
答案1
也许最好的办法是使用用户 nginx 运行 PHP 命令,以便使用 nginx:nginx 所有者创建目录。另一个选项是使用用户 nginx 但使用组托管来启动 nginx 服务。也许你应该看看如何在 Linux ubuntu 上配置 PHP CLI 以作为 www-data 运行?