日本少妇高潮pics,欧美成人伊人久久综合网,99v久久综合狠狠综合久久,99精品久久精品一区二区
標(biāo)題:
[教程]
CentOS利用WebHook實(shí)現(xiàn)PHP自動(dòng)部署Git代碼,其他系統(tǒng)原理相同
[打印本頁]
作者:
hjp1011
時(shí)間:
2016-12-3 19:34
標(biāo)題:
CentOS利用WebHook實(shí)現(xiàn)PHP自動(dòng)部署Git代碼,其他系統(tǒng)原理相同
編輯權(quán)限:
vim /etc/sudoers
CentOS利用WebHook實(shí)現(xiàn)PHP自動(dòng)部署Git代碼,其他系統(tǒng)原理相同
在服務(wù)器查看apache2(我用的apache服務(wù))執(zhí)行用戶,執(zhí)行代碼:ps -ef | grep httpd #我的服務(wù)名是httpd,這里根據(jù)自己真實(shí)的寫,比如有的是apache2。
我apache的運(yùn)行用戶是www
然后編輯權(quán)限:
在
root ALL=(ALL) ALL
下加
www ALL=(ALL) NOPASSWD: /usr/bin/git
1. 生成公鑰
公鑰有兩個(gè):1. git用戶公鑰,2. 部署公鑰:
用戶公鑰
ssh-keygen -t rsa -C "youname@163.com"
# 然后一直回車就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用戶請(qǐng)查看提示上的路徑
部署公鑰
sudo -Hu www ssh-keygen -t rsa # 請(qǐng)選擇 “no passphrase”,一直回車下去
#www用戶的主目錄可以vi /etc/passwd 修改成/home/www,然后在www下建立.ssh目錄
例如:www:x:1000:1000::/home/www:/sbin/nologin
2. 準(zhǔn)備鉤子文件
創(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ù)對(duì)引號(hào)都轉(zhuǎn)義了,替換一下。
$json = json_decode($hook,true);
$target = '/www/web/hook/public_html/repos/weshop';
$token = '碼云上新建鉤子時(shí)的密碼';
$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,鉤子準(zhǔn)備完成。
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" # 郵箱請(qǐng)與conding上一致
在GIT網(wǎng)站配置公鑰
1.添加用戶公鑰
復(fù)制/root/.ssh/id_rsa.pub內(nèi)容到個(gè)人設(shè)置頁的SSH公鑰里添加即可(https://coding.net/user/account/setting/keys)
2.添加部署公鑰
復(fù)制/home/www/.ssh/id_rsa.pub的內(nèi)容并添加到部署公鑰:
選擇項(xiàng)目 > 設(shè)置 > 部署公鑰 > 新建 > 粘貼到下面框并確認(rèn)
3.添加hook
初始化
1.我們需要先在服務(wù)器上clone一次,以后都可以實(shí)現(xiàn)自動(dòng)部署了:
sudo -Hu www git clone https://git.coding.net/yourname/yourgit.git /home/wwwroot/website.com/ --depth=1
這個(gè)時(shí)候應(yīng)該會(huì)要求你輸入一次Coding的帳號(hào)和密碼,因?yàn)樯厦嫖覀冊(cè)O(shè)置了永久保存用戶名和密碼,所以之后再執(zhí)行g(shù)it就不會(huì)要求輸入用戶名和密碼了。
**!注意,這里初始化clone必須要用www用戶**
2.往Coding.net提交一次代碼測(cè)試:
在本地clone的倉庫執(zhí)行:
git commit -am "test hook" --allow-empty
git push
OK,稍過幾秒,正常的話你在配置的項(xiàng)目目錄里就會(huì)有你的項(xiàng)目文件了。
歡迎光臨 WDlinux官方論壇 (http://www.szkyjg.com/bbs/)
Powered by Discuz! 7.2