php 自動部署git倉庫

2021-09-26 15:42:28 字數 1264 閱讀 3165

<?php

//git webhook 自動部署指令碼

//專案存放物理路徑

$path = "/home/wwwroot/default/naifen";

$requestbody = file_get_contents("php://input");

if (empty($requestbody))

$content = json_decode($requestbody, true);

//若是主分支且提交數大於0

if ($content['ref']=='refs/heads/master' && $content['total_commits_count']>0) && git reset --hard origin/master && git fetch --all && sudo git pull");

$res_log = '-------------------------'.php_eol;

$res_log .= $content['user_name'] . ' 在' . date('y-m-d h:i:s') . '向' . $content['repository']['name'] . '專案的' . $content['ref'] . '分支push了' . $content['total_commits_count'] . '個commit:' . php_eol;

$res_log .= $res.php_eol;

}echo '很棒:'.date('y-m-d h:i:s');

不使用sudo git pull 拉去**可能會因為許可權問題失敗(因為執行指令碼的使用者是www)

所以要使用sudo

但普通使用者沒有sudo許可權,所以需要設定

linux給使用者新增sudo許可權:

非root使用者,linux下面執行sudo命令,會提示類似: 

***is not in the sudoers file.  this incident will be reported. 

這裡,***是使用者名稱,然後導致無法執行sudo命令,這時候,如下解決:

進入超級使用者模式。也就是輸入"su -",系統會讓你輸入超級使用者密碼,輸入密碼後就進入了超級使用者模式。(當然,你也可以直接用root用)

新增檔案的寫許可權。也就是輸入命令"chmod u+w /etc/sudoers"。 

撤銷檔案的寫許可權。也就是輸入命令"chmod u-w /etc/sudoers"。 

然後就行了。

Gitolite 部署GiT 倉庫

gitolite 提供了便於部署git遠端倉庫的工具,它本身並不提供服務,服務仍舊依託 ssh 對外提供。gitolite 增強了授權體系,和倉庫管理功能。在本地clone乙個gitolite admin的倉庫,直接在本地修改,再推送到遠端伺服器上即可生效。gitolite適合小團隊管理.usera...

GIT自動部署

第一步 在自己的伺服器上專案目錄裡面,先去clone乙份你所需要的版本管理庫 這樣就ok了,如果有錯誤 使用 git init 初始化一下版本庫 然後clone 一下 第二步 在git版本庫中hook檔案裡post update.sample這個檔案 cp post update.sample po...

git 自動部署

第一步 安裝git yum install git 第二步 建立專門的git賬號 adduser git 建立乙個名為git的伺服器賬號 passwd git 為git賬號設定密碼 第三步 建立git倉庫 建立cd home git 進入 home git 目錄 git init bare samp...