情況如下:
我在ubuntu server 14.04 上面安裝了gitlab,來托管項目代碼。然后想通過gitlab的web hook 功能來做測試服務器代碼自動化更新代碼功能。現在遇到一個問題:就是我客戶端在master分支上面push代碼的時候,我測試服務器的代碼目錄並沒有自動更新。我的shell腳本如下:
!/bin/bash
echo 'haha:::==' >> /tmp/wtz.log
cd /srv/www/bfar-ng
echo 'my name is gitlab'>> /tmp/wtz.log
git checkout master
git pull origin master >> /srv/www/deploy/info.log
git pull origin master
echo 'you are so cute!!!::'>> /tmp/wtz.log
查看wtz.log 后發現echo 'my name is gitlab'>> /tmp/wtz.log 和echo 'you are so cute!!!::'>> /tmp/wtz.log 都成功寫入到日志文件中。但測試服務器項目原代碼就是沒有自動更新。除非手動git pull origin master 或者 在終端里面直接執行 上面的shll。它才會更新。
ps:項目目錄我都設置777權限了。
求教為啥無法執行git命令。
之前正好搞過這個,主要還是權限的問題,最好用 sudo git pull origin master, 然后參照這個 http://stackoverflow.com/questions/3173201/sudo-in-php-exec 將 PHP 的執行用戶加到 sudo 免密輸入的列表中...
https://www.v2ex.com/t/201342