所以,我有一个我认为相当简单的 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 gem。我很感激任何帮助。

最佳答案

Capistrano 默认行为是“触摸”所有 Assets 文件。 (确保任何缓存都获得部署日期)。 Assets 是图像、样式表等。

如果您的 PHP 应用程序没有使用这些目录,capistrano 就会以一种丑陋的方式提示。

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

设置:normalize_asset_timestamps,假

到您的 deploy.rb

关于deployment - Capistrano 和从 Github 部署网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3023857/

10-13 06:34