【问题标题】:Symfony2 - A proper way to manage cache in productionSymfony2 - 在生产中管理缓存的正确方法
【发布时间】:2012-07-24 11:11:33
【问题描述】:

我看过几篇关于生产缓存管理的帖子,但我正在尝试找到正确的方法。

我见过一些漂亮的sudo chmod 777 app/cache app/log 甚至sudo chmod 777 ../my_project_root :)

我不想使用 chmod 技术。我认为最好chown www-data缓存和日志文件夹。

现在的问题是:
当我需要清除生产服务器中的缓存时,它会被告知使用:

$ sudo php app/console cache:clear --env=prod

但它似乎将 prod 缓存文件夹改回根目录。

我应该如何正确清除生产服务器的缓存?

【问题讨论】:

    标签: caching symfony production-environment


    【解决方案1】:
    sudo -u www-data php app/console cache:clear --env=prod
    

    【讨论】:

    • 我第一次看到。这看起来简单直接。谢谢你。我会在 10 分钟内接受 :)
    • 可能是因为您认为su 的意思是“超级用户”? ;) 一个常见的错误。 su 表示“替代用户”,使用-u,您可以为其指定要用作自己替代的用户的用户名。 sudosu 类似,但只针对单个命令。
    【解决方案2】:

    如果您查看Symfony 文档,您可以启动一些命令来管理缓存和日志目录:

    sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
    sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
    

    在我看来这是最干净的方法。

    注意:如果您选择此方法,请不要忘记在您的分区上激活 ACL

    【讨论】:

    • 这让我可以php app/console cache:clear --env=prod 摆脱 sudo 不是吗?
    • 是的,这样你就不需要sudo了
    • 好的,谢谢,我就是这么想的。我个人无法使用 ACL,因为我无权更改 fstab。但这似乎确实是最好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多