我想写一个PHP脚本来运行一个相当简单的shell命令。该命令是Pygmentize,它是我安装的一个二进制文件,位于/usr/local/bin/pygmentize-1.4。这在我的web服务器(apache服务器中的目录)的命令行中工作正常,但是当我试图将该语句包含在PHP脚本中时,它失败。从PHP脚本运行安装的二进制文件(作为apache)
$command = "pygmentize -f html $extra_opts -l $language $temp_name";
$output = array();
$retval = -1;
exec($command, $output, $retval);
echo $retval;
的命令返回值127,这似乎意味着脚本无法找到二进制文件,我想我安装了错误的位置。我将它安装到与PHP脚本位于同一目录中的目录中,但我不知道该从哪里去。任何建议将不胜感激!
我想总结一下,我如何安装Pygments以便我的脚本可以访问它?
使用的完整路径,例如'“/ path/to/pygmentize ...”。请记住,Apache中的exec()将具有与标准登录shell相比不同的shell环境(包括$ PATH)。 –
尝试运行它为'__DIR __。“/ pygmentize -f html $ extra_opts -l $ language $ temp_name”' – Orangepill
您可能还需要调用putenv来获取命令可能需要的任何环境变量 – Orangepill