作曲家法尔·唐';我不想由shell_exec从PHP脚本运行。为什么?
尝试使用所有可能的参数执行它,例如-d和full path等。。没有错误。当运行其他命令时,一切正常;当从CMD运行composer时,一切也正常。已试用过exec、system、shell_exec等。。可能是什么 echo系统('php composer.phar install')作曲家法尔·唐';我不想由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
同时尝试输出错误流:
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之前,你救了我!非常好用,谢谢!