Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
作曲家法尔·唐';我不想由shell_exec从PHP脚本运行。为什么?_Php_Exec_System_Composer Php_Shell Exec - Fatal编程技术网

作曲家法尔·唐';我不想由shell_exec从PHP脚本运行。为什么?

作曲家法尔·唐';我不想由shell_exec从PHP脚本运行。为什么?,php,exec,system,composer-php,shell-exec,Php,Exec,System,Composer Php,Shell Exec,尝试使用所有可能的参数执行它,例如-d和full path等。。没有错误。当运行其他命令时,一切正常;当从CMD运行composer时,一切也正常。已试用过exec、system、shell_exec等。。可能是什么 echo系统('php composer.phar install') 同时尝试输出错误流: system('php composer.phar install 2>&1'); 它可能会给你更多的提示,告诉你哪里出了问题。试试这个 $path = 'path whe

尝试使用所有可能的参数执行它,例如-d和full path等。。没有错误。当运行其他命令时,一切正常;当从CMD运行composer时,一切也正常。已试用过exec、system、shell_exec等。。可能是什么

echo系统('php composer.phar install')


同时尝试输出错误流:

system('php composer.phar install 2>&1');
它可能会给你更多的提示,告诉你哪里出了问题。

试试这个

$path = 'path where, composer.phar and composer.json exists';

var_dump(shell_exec("
  cd $path;
  export COMPOSER_HOME=$path./.config/composer;
  php $path/composer.phar show -i 2>&1"));

在Linux上测试。

(假设您在Linux上运行)谢谢,现在出现错误-它说env.variable“APPDATA”未定义。我用putenv()手动设置它,然后让它运行!但为什么它没有定义?在Windows上运行。明白了,当composer从php脚本而不是从cmd运行时,它不会导入环境变量,如PATH等。。为此,我们需要手动执行此操作,例如,PATH变量存储在$_服务器中,可以通过putenv('PATH='.$_服务器['PATH'])从中导入:)如果出现错误“必须设置HOME或COMPOSER_HOME环境变量才能使COMPOSER正确运行”put putenv(“COMPOSER_HOME=/absolute/PATH/to/COMPOSER.phar/directory”);在调用system()@ymakux之前,你救了我!非常好用,谢谢!