2017-03-28 45 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/ 

和它的正常工作。

相关问题