5

昨天我在服务器上进行了第 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 具有某种禁用回滚的方法,但我们仍然想尝试在无法访问远程服务器的情况下进行理解 - 这一定是我们这边的事情,因为昨天一切都很好
  • 部署用户的读/写/执行权限没有改变

请就如何推进调查提出任何建议?非常感谢。

ps 在 Stacktrace 上没有类似的问题解决了这个特殊的问题。

4

3 回答 3

3

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

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

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

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

cap symfony:cache:warmup

我 greped Symfony 2.0.7 源代码,assetic 的 YUI 压缩器是唯一引发此类异常的地方(请参阅链接)。这表明这是一个与使用资产压缩资产有关的问题。可能是您最近添加了此功能并且没有在服务器上安装 java。

于 2011-12-14T20:39:00.597 回答
0

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

于 2011-12-14T20:05:57.653 回答
0

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

于 2011-12-14T20:39:29.737 回答