【问题标题】:Capifony fails warming the cacheCapifony 无法预热缓存
【发布时间】:2011-12-14 18:42:01
【问题描述】:

昨天我在服务器上进行了第 40 次或第 50 次 Symfony2 系统的部署。到目前为止一切都很好。今天我遇到了一个严重的错误。这就是发生的事情:

 * executing `symfony:cache:warmup'
 * executing "cd /NFS2/oa_sf2/releases/20111214182506 && php app/console cache:warmup --env=prod"
    servers: ["151.1.111.19"]
    [151.1.111.19] executing command
 ** [out :: 151.1.111.19] Warming up the cache
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] [RuntimeException]
 ** [out :: 151.1.111.19] Error creating output file.
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] cache:warmup
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
    command finished
*** [deploy:update_code] rolling back
  • 没有机会进一步调查缓存文件夹,因为整个代码树在回滚时会被删除
  • 我们知道 Capistrano 提供了一些禁用回滚的方法,但我们仍然想尝试在无法访问远程服务器的情况下进行理解 - 这一定是 我们 方面的问题,因为昨天一切正常
  • 部署用户的读/写/执行权限没有改变

请对如何推进调查有任何建议? 非常感谢。

附言Stacktrace 上没有类似的问题可以解决这个特殊问题。

【问题讨论】:

  • 在这个问题之前你升级过 Symfony 吗?
  • 你解决过这个问题吗?我也有类似的问题,但使用的是assetic:dump(在本地和临时服务器上运行良好)。

标签: deployment symfony capistrano capifony


【解决方案1】:

我认为这不是真正的 Capifony 相关问题。最后它只运行 Symfony 命令。

首先尝试在服务器上手动运行cache:warmup 任务。

可能是权限问题。在预热之前检查缓存目录的权限。您可以通过覆盖任务来做到这一点(只需复制它并在运行实际命令之前在缓存目录上运行ls -l)。

您不必每次都进行部署以查看问题所在。运行 cache:warmup 命令本身:

cap symfony:cache:warmup

我 greped Symfony 2.0.7 源代码和assetic's YUI compressor is the only place where such exception is thrown(见链接)。这表明这是一个与使用资产压缩资产有关的问题。可能是您最近添加了此功能,并且服务器上没有安装 java。

【讨论】:

  • 似乎我们无法运行 YUI 压缩器。虽然安装了java。作为记录,我将在这里发布任何可能会弹出的见解。到目前为止非常感谢!
【解决方案2】:

磁盘已满?一旦尝试预热缓存,它可能会变满。

【讨论】:

    【解决方案3】:

    缓存预热是一个 symfony 任务 AFAIU,可以通过 XDebug 或其分析器进行检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多