lnmp1.2 使用Git的webhook 调用shell_e!x!e!c的问题。
应用场景:Conding的Git仓库有一个功能,就是每次push的时候可以调用webhook通知到url。所以我做了一个php文件:
$pwd = getcwd();
$command = '/home/wwwroot/pm.sxteam.com/test/git-puller.sh';
//$command = 'whoami';
$output = shell_e!x!e!c($command);
print $output;
echo $pwd;
?>
/home/wwwroot/pm.sxteam.com/test/git-puller.sh 的内容:用于 git pull更新仓库的。
cd /home/wwwroot/pm.sxteam.com/test && /usr/local/git/bin/git pull && cd -
echo "OK"
访问这个php文件Url执行命令 whoami的时候,可以得到输出为www说明php是使用www这个用户执行的。
现在的问题是这样:
通过访问url,通过shellexec执行 git-puller.sh。可以得到输出 OK 。但是git pull 命令没有执行,没有反应,没有提示。
然后我在ssh里执行如下命令,却是可以执行成功git命令的。
通过命令 sudo -u www php git.php
执行结果 “Already up-to-date. ”出现这个说明git命令是执行了的。
求助老大,为什么通过 命令行 使用www用户执行php就可以成功,而直接通过浏览器访问就不行呢? shell_e!x!e!c 因为论坛敏感词屏蔽,所以我加了 叹号 看一下文件是否有执行权限和文件属主属组信息 文件都是777权限,所属www用户和www组。 看一下你这个目录下的git的命令的权限
页:
[1]