从PHP脚本运行已安装的二进制文件(作为apache)

时间:2013-06-04 19:05:45

标签: php apache pygments

我试图编写一个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以便我的脚本可以访问它?

1 个答案:

答案 0 :(得分:0)

使用完整路径,因为php在另一个用户下运行,当此用户执行脚本时,./不是apache目录:

$command = "/usr/local/bin/pygmentize-1.4-f html $extra_opts -l $language $temp_name";