首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon Linux AMI上Symfony2中的缓存/日志权限

问Amazon Linux AMI上Symfony2中的缓存/日志权限
EN

Stack Overflow用户
提问于 2012-11-05 04:43:58
回答 2查看 1.7K关注 0票数 2

我已经在AWS Linux AMI (一个免费的层微型实例)上设置了Symfony2,并成功地设置了PHP-FPM和nginx。

我的Symfony应用程序正常工作..直到我使用命令行清除缓存。当我这样做的时候,/app/logs和app/cache/文件夹就归root所有了,应用程序不能再对其进行写入。

我可以手动chmod 777 / chown nginx:nginx这些文件后,每次缓存清除,但必须有更好的方法?

我曾尝试在清除缓存之前使用bash函数执行su nginx;,但不起作用。

在缓存文件夹之前清除缓存:

代码语言:javascript
复制
drwxrwxrwx 11 nginx nginx 4096 Nov  4 13:23 dev
drwxrwxrwx 10 nginx nginx 4096 Nov  4 20:39 prod

在此之后:

代码语言:javascript
复制
drwxrwxrwx 11 nginx nginx 4096 Nov  4 13:23 dev
drwxr-xr-x 10 root  root  4096 Nov  4 20:39 prod

这是我可以在应用程序中修复的问题,还是有办法设置权限,使它们不会变成rooted?

编辑:我还应该提到我尝试过:

代码语言:javascript
复制
sudo chmod +a "nginx allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

但是服务器不能识别+a。

我还尝试使用:

代码语言:javascript
复制
 setfacl -R -m u:nginx:rwx app/cache app/logs

这不会出错,但不会修复问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-05 05:18:44

ACL编辑:还不能接受这个答案,但这对我很有效:所以我成功地按照这里的指导启用了:http://blog.dsyph3r.com/2011/09/symfony2-using-setfacl-for-cache-and.html

对于像这样的新手,我注意到这个驱动器的标签是(有点奇怪的) fstab中的"Label=/"。

一旦完成,我就使用

代码语言:javascript
复制
 setfacl -R -m u:nginx:rwx app/cache app/logs
 setfacl -dR -m u:nginx:rwx app/cache app/logs

现在我似乎可以随意清除缓存了。

Original (仅当您不能或不打算启用ACL时才使用):我遵循了一个帮助页面,让我在许多地方设置了umask(0000);,即app/app*.phps和app/console脚本。这似乎起到了作用,但我不确定其中的含义。

将问题留给非umask解决方案。正在考虑在我的挂载上激活ACL,但这对我来说是新的,这一切似乎..名字很奇怪。

票数 0
EN

Stack Overflow用户

发布于 2012-11-05 05:18:33

sudo -u nginx php应用/控制台缓存:清除

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13222702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档