【问题标题】:How to warmup cache as :webserver_user using capifony?如何使用 capifony 将缓存预热为:webserver_user?
【发布时间】:2013-10-27 11:08:35
【问题描述】:

当我部署我的 Symfony2 应用程序时,我遇到了一个障碍:我必须以用户 foo 的身份连接到服务器,但 apache 以用户 www-data 的身份运行。 我想使用缓存预热,但 app/cache/prod 是由用户 foo 而不是 www-data 创建的,以后可以由 apache 使用。 我能做什么?

【问题讨论】:

    标签: symfony deployment capistrano file-permissions capifony


    【解决方案1】:
    su www-data <my command here>
    

    会将您切换到 www-data 用户来运行命令。

    更好:

    chmod -R www-data app/cache/prod
    

    更改所有权

    也许会更好

    chown -R o+rw app/cache/prod
    

    这将允许“其他”人读取和写入缓存。

    您甚至可以在应用程序/缓存上设置+S 位,以便在其中创建的文件获得自动清除权限。

    【讨论】:

    • 一般来说你的建议是好的,但以上都不适用于这个服务器,因为它是一个共享主机。
    • 在共享主机上,Capistrano 不太适合您。我想说你应该能够将你的缓存文件chmod到o+rw(即允许其他人读取和写入你的文件),但假设主机上的所有其他网站都以www-data运行,它们中的任何一个都可以窃取你的数据库,读取你的缓存,和/或其他你不想处理的事情。共享主机对于这些东西来说是一个糟糕的环境。
    • 我知道,但由于它是大学共享主机,我开始与管理员协商。无论如何,感谢您的帮助。
    • 祝你好运,renczus。听起来你的大部分问题都与受限制的大学环境有关,而不像外面的人可以帮助你。如果您认为我的建议很有用,我将不胜感激接受,这不是因为您的情有可原吗?
    【解决方案2】:

    从 Capifony 2.1.x 开始,添加了新的权限功能。

    请查看文档章节Automatically set proper permissions

    set :use_set_permissions, true    # enables setting the permissions
    set :writable_dirs,       ["app/cache", "app/logs"]
    set :webserver_user,      "www-data"
    set :permission_method,   :acl    # (:acl|:chmod|:chown)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2014-10-14
      • 2017-03-15
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多