前两天换了centos7.4。所以要把之前的代码全部都放到新的服务器上面。并且添加hooks实现代码的自动更新。
1 git迁移
首先嘛,在新的服务器上面新建一个空的版本库。
cd /srv
git init --bare swoole.git ##新建版本库
chown -R ache:ache swore.git/ ##更改所有者
然后在本地需要放到线上的代码目录下面,输入下列代码即可完成版本库的迁移
git remote set-url origin ache@103.56.55.10:/srv/swoole.git
git push
2 git免密提交
公钥之前弄的我自己就有了,这里就不讲怎么生成公钥了。公钥名id_rsa.pub。不知道位置的自己搜搜就好了。去线上新建认证文件。导入自己的公钥即可。
cd /home/ache
mkdir .ssh
vim .ssh/authorized_keys ##把自己公钥内容写入到这个文件就行
chmod 644 .ssh/authorized_keys
chmod 744 .ssh
chown -R ache:ache .ssh.
去打开将RSA认证打开,修改配置文件/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /home/ache/.ssh/authorized_keys
3 实现hooks
我自己写自己的东西的时候,希望在本地写完提交到线上可以直接更新查看效果。但是平常的话需要我们到线上去pull一下,感觉略微的有些浪费时间。之前就去找了找可以用钩子来实现的。
以上面的swoole.git为例子。去 /srv/swoole.git/hooks下面新建一个post-receive文件。
#!/bin/sh
unset GIT_DIR
NowPath=`pwd`
DeployPath="/home/wwwroot/swoole"
cd $DeployPath
echo "开始同步代码"
sudo git pull
cd $NowPath
echo "代码同步完成"
exit 0
添加可执行权限
chmod +x post-receive
然后附上一张测试成功的效果图