四虎影视在线影院在线观看,小s货再浪些再咬紧点h,国产精品水嫩水嫩,97精产国品一二三产区
標題:
[教程]
CentOS利用WebHook實現(xiàn)PHP自動部署Git代碼,其他系統(tǒng)原理相同
[打印本頁]
作者:
hjp1011
時間:
2016-12-3 19:34
標題:
CentOS利用WebHook實現(xiàn)PHP自動部署Git代碼,其他系統(tǒng)原理相同
編輯權(quán)限:
vim /etc/sudoers
CentOS利用WebHook實現(xiàn)PHP自動部署Git代碼,其他系統(tǒng)原理相同
在服務(wù)器查看apache2(我用的apache服務(wù))執(zhí)行用戶,執(zhí)行代碼:ps -ef | grep httpd #我的服務(wù)名是httpd,這里根據(jù)自己真實的寫,比如有的是apache2。
我apache的運行用戶是www
然后編輯權(quán)限:
在
root ALL=(ALL) ALL
下加
www ALL=(ALL) NOPASSWD: /usr/bin/git
1. 生成公鑰
公鑰有兩個:1. git用戶公鑰,2. 部署公鑰:
用戶公鑰
ssh-keygen -t rsa -C "youname@163.com"
# 然后一直回車就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用戶請查看提示上的路徑
部署公鑰
sudo -Hu www ssh-keygen -t rsa # 請選擇 “no passphrase”,一直回車下去
#www用戶的主目錄可以vi /etc/passwd 修改成/home/www,然后在www下建立.ssh目錄
例如:www:x:1000:1000::/home/www:/sbin/nologin
2. 準備鉤子文件
創(chuàng)建和修改目錄權(quán)限:
mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook
寫入鉤子文件:
sudo -Hu www touch /home/wwwroot/website.com/hook/index.php
<?php
$hook = str_replace('\"','"',$_POST['hook']);//碼云webhook返回的json數(shù)據(jù)對引號都轉(zhuǎn)義了,替換一下。
$json = json_decode($hook,true);
$target = '/www/web/hook/public_html/repos/weshop';
$token = '碼云上新建鉤子時的密碼';
$cmd = "cd $target; sudo -Hu www git pull";
if ($json['password'] != $token) {
exit('error request');
}
else
echo shell_exec($cmd);
?>
確保你的hook文件可以訪問:http://example.com/hook/index.php,鉤子準備完成。
3.修改git配置和保存git用戶名密碼(這步看情況吧)
sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "admin@xsooo.com" # 郵箱請與conding上一致
在GIT網(wǎng)站配置公鑰
1.添加用戶公鑰
復制/root/.ssh/id_rsa.pub內(nèi)容到個人設(shè)置頁的SSH公鑰里添加即可(https://coding.net/user/account/setting/keys)
2.添加部署公鑰
復制/home/www/.ssh/id_rsa.pub的內(nèi)容并添加到部署公鑰:
選擇項目 > 設(shè)置 > 部署公鑰 > 新建 > 粘貼到下面框并確認
3.添加hook
初始化
1.我們需要先在服務(wù)器上clone一次,以后都可以實現(xiàn)自動部署了:
sudo -Hu www git clone https://git.coding.net/yourname/yourgit.git /home/wwwroot/website.com/ --depth=1
這個時候應(yīng)該會要求你輸入一次Coding的帳號和密碼,因為上面我們設(shè)置了永久保存用戶名和密碼,所以之后再執(zhí)行g(shù)it就不會要求輸入用戶名和密碼了。
**!注意,這里初始化clone必須要用www用戶**
2.往Coding.net提交一次代碼測試:
在本地clone的倉庫執(zhí)行:
git commit -am "test hook" --allow-empty
git push
OK,稍過幾秒,正常的話你在配置的項目目錄里就會有你的項目文件了。
歡迎光臨 WDlinux官方論壇 (http://cd-genova.com/bbs/)
Powered by Discuz! 7.2