phpによるgit pull自動配置

1283 ワード

gitをインストールして、公開鍵を生成して、公開鍵をプラスしてすべてチュートリアルがあって、注意しなければならないのは以下のいくつかの方面です
phpはwwwユーザーで実行され、git pullを実行するには権限が必要です.
1、vim/etc/sudoers 
root行を追加
www localhost=(ALL)NOPASWD:/usr/bin/git(gitインストール後ディレクトリはwhich gitで表示)
2、phpがexec shellを実行することを許可する_exec
3、ディレクトリ権限の変更
4、.gitは権限を変更して書くことができて、私は直接777に変更しました
5、.git/config httpsアドレスをsshに変更
<?
header("Content-type: text/html; charset=utf-8");
$js = json_decode($_REQUEST["hook"]); // json  
if ($js->password != "password") {
    die("ERROR!"); //     
}
$fp = fopen("./log.txt", 'a');
$lastcommit = $js->push_data->commits[count($js->push_data->commits) - 1]; //      commit
if (strstr($lastcommit->message, "release")) //     :     commit  "release"       。
{
    exec("cd ./"); //     
    exec("git pull origin master"); //   git  ,      ssh
    fwrite($fp, "※" . date('Y-m-d H:i:s') . "\t" . $lastcommit->message . "\t" . $lastcommit->author->name . "
"); //  } else {     fwrite($fp, date('Y-m-d H:i:s') . "\t" . $lastcommit->message . "\t" . $lastcommit->author->name . "
"); }