Capifony无法加热缓存

时间:2011-12-14 18:42:01

标签: deployment symfony capistrano capifony

昨天我在服务器上进行了第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有一些方法可以禁用回滚,但我们仍然希望在远程服务器上无法访问时尝试理解 - 它必须是我们的方面的东西,因为昨天一切正常
  • 未对部署用户的读/写/执行权进行任何更改

关于如何推进调查的任何建议? 非常感谢。

P.S。 Stacktrace上没有类似的问题可以解决这个特殊的问题。

3 个答案:

答案 0 :(得分:3)

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

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

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

您不必每次都要部署以查看错误。运行cache:warmup命令本身:

cap symfony:cache:warmup

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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