我需要composer.phar update
从 Web 控制器运行。
我可以以这种方式运行各种常规命令(ls
,cp
等),但是当我调用 phar 文件时,我得到空输出。
我的代码如下所示:
class Maintenance_Controller
{
public function do_maintenance()
{
echo exec("/usr/bin/env php composer.phar", $out, $ret);
var_dump($out); // outputs -> array()
var_dump($ret); // outputs -> int(127)
}
}
127
表示路径不好,但我确定我在正确的目录中。
此外,这在使用 php_cli 包装器时有效,所以可能与www-data
用户有关?chmod 777
没有帮助,无论如何我都讨厌这样做。
我也使用了passthru()
,system()
和 backtic 语法。我无法理解这不起作用的原因。我似乎无法从代码exec()
之外的调用中询问 stderr 或 stdout。127
明显的问题:
我究竟做错了什么?
更好的问题:
有没有更好的方法来.phar
从脚本中查询和执行文件?