You are here 飞腿站长站 > 技术 > > 使用ssh和rsync实现symfony项目的增量更新

蓝色梦幻


84.226%

disconnected
登录后回复主题 | 跳到回复

使用ssh和rsync实现symfony项目的增量更新

... by 蓝色梦幻 ... 4 月 19 天前 ... 66 次点击

sync依赖于ssh,所以我们首先要配置好ssh,先在本地环境(你的home目录)生成ssh的key

test@debian:~$ ssh-keygen -t rsa
提示问题的时候,一路回车就行了。上面这一步做完之后,会在home目录下生成.ssh的目录和两个key文件:

test@debian:~$ ls .ssh
id_rsa id_rsa.pub
id_rsa是私有密钥,id_rsa.pub是公有密钥。下面要将公有密钥拷贝到dreamhost上去,注意把下面的your_id和xxx换成你的id和主机名:

test@debian:~$ scp ~/.ssh/id_rsa.pub your_id@xxx.dreamhost.com:~/
cp是远程拷贝命令,拷贝的时候会提示你输入密码,输入你在dreamhost上的密码就行了。拷贝完成后,测试一下ssh可以了没:

test@debian:~$ ssh your_id@xxx.dreamhost.com
同样,换成你自己的用户名和主机名,并输入密码,如果ok,那么你现在已经用ssh登录到dreamhost上了。不要退出,在dreamhost主机上把你的公有密钥添加到认证文件中:

test@dreamhost:~$ mkdir .ssh
test@dreamhost:~$ cat id_rsa.pub >> .ssh/authorized_keys
test@dreamhost:~$ rm id_rsa.pub
接着,修改一下文件和目录权限:

test@dreamhost:~$ chmod 700 ~/.ssh
test@dreamhost:~$ chmod 600 ~/.ssh/authorized_keys
OK,配置完毕,按Ctrl-D退出,下面你应该已经回到你的本地环境了。再测试一下ssh登录,这回应该不需要输入密码了:

test@debian:~$ ssh your_id@xxx.dreamhost.com
如果上面的登录能够成功,那么ssh就算完全配好了,再次退出回到本地环境。下面来配置symfony的rsync,让它支持增量更新。修改你的symfony项目下面的config/properties.ini文件如下,注意替换成你自己的信息:

[prod]
name=your_project_name
host=xxx.dreamhost.com
port=22
user=your_login_name_on_dreamhost
dir=/home/your_login_name_on_dreamhost/your_project_dir
修改完毕,保存退出。下面用symfony的sync命令测试一下:

test@debian:~/your_project$ symfony sync prod
如果没有问题,你应该会看到一串文件列表,这表示本地修改过,需要进行同步的文件,然后让我们来同步这些文件:

test@debian:~/your_project$ symfony sync prod go
你会发现,同步进行的非常快,比普通ftp快很多,而且你不必担心会有遗漏,因为sync已经替你做好了文件比较的工作,只要本地更新过的文件,全部都已经同步到远程主机上了。OK,大功告成,It’s simple, right?

另外,symfony项目下面还有一个config/rsync_exclude.txt文件,你可以把你不需要的目录和文件列在里面,这样同步的时候就会忽略这些文件和目录,比如log,cache目录等等。

原文:http://www.bolarn.com/index.php/2008/01/20/41/

7月12号慧谷沙龙系列活动之创业英雄会[郑州]   |   MySQLDumper 备份工具
创建新主题 ...
目前这个主题还没有回复,或许你可以帮楼主加盖一层?

在回复之前你需要先进行登录
电子邮件或昵称
密码
© 2007    -   About
a site powered by Project Babel