抛弃了Capistrano自己写了两个脚本来远程部署和启动rails

root目录下有个脚本 ~/scripts/deploy_xmapps.sh
#! /bin/bash

# 配置

## 定义check out的目录
SCM_CHECK_OUT_DIR=/tmp/xmapps_dir
## git repository
GIT_REPOSITORY=”ssh://wch@www.xiaoma.com:22229/opt/git/xmapps.git”
## 部署目录

root目录下有个脚本 ~/scripts/deploy_xmapps.sh
[ccn lang="bash" tab_size="4" theme="blackboard" width="800" ]
#! /bin/bash

# 配置

## 定义check out的目录
SCM_CHECK_OUT_DIR=/tmp/xmapps_dir
## git repository
GIT_REPOSITORY="ssh://wch@www.xiaoma.com:22229/opt/git/xmapps.git"
## 部署目录
DEPLOY_TO=/tmp/test

## 初始化目录
if [ -e $SCM_CHECK_OUT_DIR ] ; then
rm -rf "$SCM_CHECK_OUT_DIR"
mkdir -p "$SCM_CHECK_OUT_DIR"
else
mkdir -p "$SCM_CHECK_OUT_DIR"
fi

# 把从git上拿出最新的文件
cd $SCM_CHECK_OUT_DIR
git clone ssh://wch@www.domain.com:22229/opt/git/xmapps.git
## 删除两个配置文件,然后覆盖原来的文件
rm -rf "$SCM_CHECK_OUT_DIR"/xmapps/config/database.yml
rm -rf "$SCM_CHECK_OUT_DIR"/xmapps/config/application.rb

## 覆盖
cp -rv "$SCM_CHECK_OUT_DIR"/xmapps/** "$DEPLOY_TO"

## 修改目录属性
chown -R www-data.www-data $DEPLOY_TO

## 重启nginx
pkill nginx
/etc/init.d/nginx restart

[/ccn]
然后再windows下写了个脚本deploy_xmapps.bat
[ccn lang="bash" tab_size="4" theme="blackboard" width="800" ]
D:\dev\rails\RailsInstaller\Git\bin\ssh -l wch -p 22229 www.domain.com sudo sh /root/scripts/deploy_xmapps.sh
[/ccn]
这里有几个点要注意
1 我是用的railsinstaller-1.1.1.exe,里面包含了git,git里有ssh的一些编译好的bin,里面有ssh等等
2 用了git里的ssh-keygen生成了密钥,这些都是为了git 在push的时候不需要输入密码
3 这个id_rsa.pub上传到wch的.ssh里并且添加到/home/wch/.ssh/authorized_keys2 里,这样git的上传和下载都免输入密码了
4 要想ssh的远程执行也免输入密码就必须在git的目录下的.ssh里的东西到git的.ssh下
操作如下:
拷贝c:\Documents and Settings\ThinkPad\.ssh里的所有东西到d:\dev\rails\RailsInstaller\Git\.ssh里
$ d:\dev\rails\RailsInstaller\Git\bin\ssh-keygen.exe -f "%homedrive%%homepath%\.ssh\id_rsa" -C 'wangchao@domain.com' -t rsa

' windows下nginx1.0+php fastcgi
@echo off
echo Starting PHP FastCGI...
d:\soft\scripts\RunHiddenConsole.exe d:\dev\servers\xampp\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\dev\servers\xampp\php\php.ini
echo Starting NGINX...
d:\soft\scripts\RunHiddenConsole.exe d:\dev\servers\nginx-1.0.0\nginx.exe -c d:\dev\servers\nginx-1.0.0\conf\nginx.conf