从Web请求执行composer安装

时间:2017-03-15 20:47:50

标签: php composer-php exec

我在github(deploy.php)中设置了webhook,每次合并时都会调用我的服务器。 deploy.php检查合并是否为主。如果是,则调用git fetchgit merge。我还希望它调用composer install --no-interaction以便安装任何新的依赖项。我的代码正在执行以下操作:

exec('composer install --no-interaction', $out, $ret);
echo print_r($out,true)." $ret";

$out只是一个空数组。 $ret = 1。

但是,如果我登录服务器并运行:

sudo -Hu apache php -a

php > exec('composer install --no-interaction', $out, $ret);
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files

php > echo $ret;
0

我试图让它在很多方面发挥作用。我使用了shell_execexec,一个bash脚本,但这些都不起作用。我尝试使用绝对路径来编写作曲家。我检查了apaches访问composer和shell脚本的权限。

如果可能,请告诉我。

0 个答案:

没有答案