Capistrano并从Github部署一个网站 [英] Capistrano and deployment of a website from Github

查看:132
本文介绍了Capistrano并从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆