2017-03-28 46 views
1

我使用bitbucket來託管我的git存儲庫,repo擁有一個測試網站,我創建了一個bitbucket webhook,所以當我推到bitbucket repo時,換句話說,當bitbucket收到一個推送,它調用webhook的php文件,並且該php文件有一個從github中拉出的shell腳本。webhook php文件工作從終端,但不是來自bitbucket

鉤子文件

掛鉤路徑:/var/www/html/hook.php

站點文件夾

網站路徑:在/ var/www/html等/網絡掛接/

的hook.php文件看起來像這樣

<?php 
echo "________PHP_AUTO_PULL________"; 

$output = shell_exec('git -C ./webhooks/ pull https://userName:[email protected]/userName/repo.git master'); 
echo "<pre>$output</pre>"; 

?> 

,當我在終端做

php hook.php 

它正常工作,它拉動..

但問題是,網絡掛接只能說明這個答覆

________PHP_AUTO_PULL________

,表明它確實不拉,是的,我已經檢查,沒有拉發生,如何使鉤執行文件正常嗎?在這些列表中提供

權限和業主

清單的/ var/www/html等/

drwxrwxr-x 3 www-data www-data 4096 Mar 28 09:21 ./ 
drwxrwxr-x 3 www-data www-data 4096 Mar 3 16:49 ../ 
-rwxrwxrwx 1 www-data root  200 Mar 28 09:05 hook.php* 
-rw-rw-r-- 1 www-data www-data 20 Mar 3 16:49 info.php 
drwxr-xr-x 3 root  root  4096 Mar 28 09:03 webhooks/ 

清單的/ var/www/html等/網絡掛接/

drwxr-xr-x 3 root  root  4096 Mar 28 09:03 ./ 
drwxrwxr-x 3 www-data www-data 4096 Mar 28 09:21 ../ 
-rw-r--r-- 1 root  root  295 Mar 27 15:13 content.html 
drwxr-xr-x 8 root  root  4096 Mar 28 09:03 .git/ 
-rw-r--r-- 1 root  root  444 Mar 27 15:13 index.html 
-rw-r--r-- 1 root  root  963 Mar 27 15:13 menu_1.html 
-rw-r--r-- 1 root  root  13 Mar 28 09:03 number.txt 

我的網絡服務器是nginx 任何想法,爲什麼它從終端工作,但bitbucket不能讓它工作?

回答

1

我設法解決它,使用:

echo shell_exec("/usr/bin/git pull https://userName:[email protected]/userName/repo.git master 2>&1"); 

2>&1部分是幫助我看到有關文件夾權限的錯誤,我用

chown -R www-data .git/ 

和它的正常工作。

相關問題