添加项目部署公钥
生成公钥
sudo -Hu apache ssh-keygen -t rsa -C "myEmail@email.com" # 请选择 "no passphrase",一直回车下去 sudo cat /var/www/.ssh/id_rsa.pub # 查看生成的密钥内容,复制全部
添加到git服务器
注意: 同一个公钥只能绑定一个账户,而Coding 暂时不支持同一公钥绑定多个账户。解决方法如下
ssh命令默认只会读取 id_rsa这个私钥,因此添加文件
.ssh/config
sudo vim /var/www/.ssh/config
,添加以下内容Host git.coding.net User myemail@email.com PreferredAuthentications publickey IdentityFile ~/.ssh/coding_rsa // 生成的非默认地址的公钥存放点
重置权限
sudo chown apache:apache /var/www/.ssh/config
新建新的公钥,后再添加到coding.net
sudo -Hu apache ssh-keygen -t rsa -C "myEmail@email.com" -f /var/www/.ssh/coding_rsa sudo cat /var/www/.ssh/coding_rsa.pub
部署项目
sudo mkdir /var/www/html/site/
sudo chown -R /var/www/html/site/
sudo -Hu apache /usr/local/bin/git clone git@coding.net:you/site.git /var/www/html/site/ --depth=1
创建webhook
创建php的webhook文件,sudo vim /var/www/site/hook.php
,输入以下内容
<?php
$respon=json_decode(file_get_contents('php://input'));
if($respon->token=='zssy'){
echo "<pre>".shell_exec('cd /var/www/html/site&& /usr/local/bin/git pull 2>&1')."</pre>";
}
再分配权限sudo chown apache:apache /var/www/html/hook.php