我已经在 AWS Linux AMI(一个免费的微型实例)上设置了 Symfony2,并成功设置了 PHP-FPM 和 nginx。
我的 Symfony 应用程序可以工作.. 直到我使用命令行清除缓存。当我这样做时,/app/logs
andapp/cache/
文件夹将归root
其所有,并且应用程序无法再写入它。
我可以在每次缓存清除后手动chmod 777
/chown nginx:nginx
这些文件,但必须有更好的方法吗?
我尝试su nginx;
在清除缓存之前使用 bash 函数,但这不起作用。
在缓存清除之前缓存文件夹之前:
drwxrwxrwx 11 nginx nginx 4096 Nov 4 13:23 dev
drwxrwxrwx 10 nginx nginx 4096 Nov 4 20:39 prod
之后:
drwxrwxrwx 11 nginx nginx 4096 Nov 4 13:23 dev
drwxr-xr-x 10 root root 4096 Nov 4 20:39 prod
这是我可以在应用程序中修复的问题,还是有办法设置权限以免它们变成root
ed?
编辑:我还应该提到我尝试过:
sudo chmod +a "nginx allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
但是服务器不识别+a
。
还尝试使用:
setfacl -R -m u:nginx:rwx app/cache app/logs
这不会出错,但不能解决问题。