Composer.phar不希望从PHP脚本运行shell_exec.为什么?

and*_*gor 4 php system exec shell-exec composer-php

试图用所有可能的参数执行它,例如-d和完整路径等.没有错误.当运行另一个命令时,一切正常,从CMD运行composer时,一切正常.尝试了exec,system,shell_exec等.它可能是什么?

echo system('php composer.phar install');

Sta*_*ode 11

尝试输出错误流:

system('php composer.phar install 2>&1');
Run Code Online (Sandbox Code Playgroud)

它可能会给你更多关于出了什么问题的暗示.

  • 得到它,当作曲家从php脚本运行而不是从cmd运行时,它不会导入环境变量,如PATH等.为此,我们需要手动执行,例如PATH变量存储在$ _SERVER中,它可以由putenv导入('PATH ='.$ _SERVER ['PATH']):) (2认同)
  • 如果出现错误“必须设置 HOME 或 COMPOSER_HOME 环境变量才能使 Composer 正确运行” putenv("COMPOSER_HOME=/absolute/path/to/composer.phar/directory"); 在调用 system() 之前 (2认同)