最簡單的git部署方案

本地提交代碼 到 git倉庫之後  網站 遠程自動同步代碼 。php

git 的 webhook  正好能 知足 這個需求。git

服務器端:github

服務器端php程序是以www用戶來執行,以前設置的ssh密鑰是以root用戶來設置的,php以www用戶執行腳本中的git pull 命令時就沒有權限web

//以www用戶的身份生成祕鑰
sudo -u www ssh-keygen -t rsa -C 「jianl@example.com」

將生成的 id_rsa.pub 內容複製到github 的公鑰設置裏。shell

建立文件放入網站根目錄下數據庫

<?php 

$secret = "";
$path = ".";
 //passowrd 是webhook哪裏設置那個密碼
 if(json_decode($_POST['hook'])->password == 'password'){
     echo shell_exec("/usr/local/git/bin/git pull 2>&1");
     exit();
 }

  //echo shell_exec("cd {$path} && /usr/bin/git reset --hard origin/master && /usr/bin/git clean -f && /usr/bin/git pull 2>&1");
http_response_code(200);

?>

去github置webhookjson

徹底以上配置 。服務器端自動同步代碼的功能就可以實現了。安全

缺點:php有執行shell的權限不安全,在安全模式下沒法使用此函數。bash

服務器數據庫再開啓遠程鏈接,本地鏈接服務器數據庫進行開發十分方便。服務器

相關連接:http://my.oschina.net/dhyana/blog/738028

相關文章
相關標籤/搜索