【发布时间】:2013-05-31 07:19:49
【问题描述】:
我正在尝试编写一个 PHP 脚本来运行一个相当简单的 shell 命令。命令是 Pygmentize,它是我安装的二进制文件,位于 /usr/local/bin/pygmentize-1.4。这在我的 Web 服务器(apache 服务器中的目录)的命令行中运行良好,但是当我尝试在 PHP 脚本中包含该语句时它失败了。
$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"运行它 -
您可能还需要调用 putenv 来获取该命令可能需要的任何环境变量