Capistrano并从Github部署一个网站 [英] Capistrano and deployment of a website from Github
问题描述
所以,我以为是一个相当简单的Capistrano用例:我想从Github部署一个PHP站点。但是我遇到了很多问题。当我运行 cap deploy
时,Capistrano能够克隆Github repo( deploy:update_code
步骤),但是在 deploy:finalize_update
中,它说
执行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& amp;& \\\ mkdir -p /var/www/sitename.com/releases/20100611144519/public& &\\\\\
mkdir -p /var/www/sitename.com/releases/20100611144519 / tmp&& \\\
ln -s /var/www/sitename.com/shared/log /var/www/sitename.com/releases/20100611144519/log&& \\ \\\
ln -s /var/www/sitename.com/shared/system/var/www/sitename.com/releases/20100611144519/public/system&& \\\
nn -s / var /www/sitename.com/shared/pids/var/www/sitename.com/releases/20100611144519/tmp/pids
后跟
执行find /var/www/sitename.com/版本/ 20100611144519 / public / images /var/www/sitename.com/releases/20100611144519/public/stylesheets /var/www/sitename.com/releases/20100611144519/public/javascripts -exec touch -t 201006111445.23 {}';' ;真的
我不太明白这里发生了什么,然后发出错误: p>
*** [err :: sitename.com]找到:`/var/www/sitename.com/releases/20100611144519/public / images':没有这样的文件或目录
每个样式表
和 javascripts
目录。
发生了什么事我知道Capistrano是主要用于部署Rails和其他Ruby应用程序,但我正在使用 capistrano-php 宝石。 '请谢谢任何帮助。
Capistrano默认行为是触摸所有资源文件(以确保任何缓存获取部署日期)资产是图像,样式表等。
如果您的PHP应用程序不使用这些目录,capistrano会以这样的丑陋方式投诉。 >
到禁用资产时间戳更新,只需添加:
set:normalize_asset_timestamps,false
到您的deploy.rb
So, I had what I thought was a fairly simple Capistrano use case: I want to deploy a PHP site from Github. But I'm running into a lot of problems. When I run cap deploy
, Capistrano is able to clone the Github repo (the deploy:update_code
step), but then in the deploy:finalize_update
step it says
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"
followed by
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"
I don't really understand what's going on here. It then gives an error:
*** [err :: sitename.com] find: `/var/www/sitename.com/releases/20100611144519/public/images': No such file or directory
and another error for each of the stylesheets
and javascripts
directories.
What's going on? I realize that Capistrano is primarily for deploying Rails and other Ruby apps, but I'm using the capistrano-php gem. I'd appreciate any help.
Capistrano default behavior is to 'touch' all assets files. (To make sure that any cache get the deployment date). Assets are images, stylesheets, etc.
If your PHP application is not using these directories, capistrano complains in such an ugly way.
To disable asset timestamps updates, simply add:
set :normalize_asset_timestamps, false
to your deploy.rb
这篇关于Capistrano并从Github部署一个网站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!