<?php /**
draguophp
2016.1.9linux
經過git hook 自動化部署git
在網站目錄 mkdir hookweb
在hook中放置該文件用於接收hook請求shell
要在visudo 中添加apache
www-data ALL=(ALL) NOPASSWD: ALLjson
這裏面有一個原則,就是apache 的運行用戶要擁有執行腳本的權限,ubuntu
由於權限的問題我出現了不少的問題,centos
ubuntu測試經過less
修改/etc/selinux/config 文件
將SELINUX=enforcing改成SELINUX=disabled
centos 測試經過php >5.3
*/
ini_set('max_execution_time', '0');
// 生產環境目錄
$web_dir = __DIR__.'/../casarover';
// 準備部署的文件
$dir = '/var/www/casarover';
// hook password
$pwd = '這個是密碼的部分';
// 接收hook
$data = $_POST["hook"];
$json = json_decode($data,true);
(empty($json)) {
header("Location: http://www.draguo.cn");
}
($json['password'] !== $pwd) {
echo "password is wrong"; exit();
}
// 執行的腳本內容
$shs = array(
"cd $dir && sudo git pull", "sudo rm -rf $web_dir/* ", "cd $dir/web && sudo rm -rf .settings/ docs/ tests/ .buildpath .project .zfproject.xml website/less/ ", "sudo cp -r $dir/web/* $web_dir/" );
($shs as $sh) {
echo $sh; echo "<br>"; shell_exec($sh);
}
?>