gitlab-php-webhook - gitlab webhook php exec 調用 shell 指令碼。shell 指令碼中調用 git pull 命令無法執行。

來源:互聯網
上載者:User
情況如下:
我在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命令。

回複內容:

情況如下:
我在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 免密輸入的列表中...

git pull origin master試試

已搞定了,www-data 的許可權問題。

正好也碰到這個問題 。
現在是centos伺服器,用國內的coding.net作託管的私人項目。和你情況一樣
現是是webhook提交到一個php,然後通過這個php執一個shell。
php裡代理是這樣的:echo shell_exec('sh ./webhook.sh');
shell是這樣的 `#!/bin/sh
echo >> ./_n.log
git pull`

只能去linux裏手動git pull,日誌也能輸出成功
為什麼這個不能執行

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.