gitlab webhook php exec 調用 shell 腳本。shell 腳本中調用 git pull 命令無法執行。


情況如下:
我在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM