所以,我只好我认为是一个相当简单的Capistrano的使用案例:我要部署从GitHub一个PHP的网站。但是我遇到了很多问题。当运行cap deploy,Capistrano的是能够克隆的GitHub库(在步骤deploy:update_code),但是然后在deploy:finalize_update步骤它说

executing "rm -rf /var/www/sitename.com/releases/20100611144519/log /var/www/sitename.com/releases/20100611144519/public/system /var/www/sitename.com/releases/20100611144519/tmp/pids &&\\\n      mkdir -p /var/www/sitename.com/releases/20100611144519/public &&\\\n      mkdir -p /var/www/sitename.com/releases/20100611144519/tmp &&\\\n      ln -s /var/www/sitename.com/shared/log /var/www/sitename.com/releases/20100611144519/log &&\\\n      ln -s /var/www/sitename.com/shared/system /var/www/sitename.com/releases/20100611144519/public/system &&\\\n      ln -s /var/www/sitename.com/shared/pids /var/www/sitename.com/releases/20100611144519/tmp/pids"

接着

executing "find /var/www/sitename.com/releases/20100611144519/public/images /var/www/sitename.com/releases/20100611144519/public/stylesheets /var/www/sitename.com/releases/20100611144519/public/javascripts -exec touch -t 201006111445.23 {} ';'; true"

我真的不明白是怎么回事。然后,它给出了一个错误:

*** [err :: sitename.com] find: `/var/www/sitename.com/releases/20100611144519/public/images': No such file or directory

和其他错误的每个stylesheetsjavascripts目录。

这是怎么回事?我知道Capistrano的主要是用于部署Rails和其他Ruby应用程序,但我使用的 Capistrano的-PHP 宝石。我会很感激的任何帮助。

有帮助吗?

解决方案

Capistrano的默认行为是“触摸”所有资产的文件。 (要确保任何缓存得到部署日期)。资产是图像,样式表,等等。

如果您的PHP应用程序没有使用这些目录,Capistrano的抱怨在这样一个丑陋的方式。

要禁用资产时间戳更新,只需添加:

 set :normalize_asset_timestamps, false

到您deploy.rb

scroll top