php无法通过exec执行perl脚本

时间:2011-02-23 23:00:12

标签: php perl exec

我正在尝试从php执行perl脚本。 perl脚本正在读取网页并生成包含一些数据的xml文件。 如果我通过shell执行它一切都按预期工作,但当我试图通过PHP自动完成整个事情时没有任何作用。

我试过这个:

exec("perl /absolute/path/to/perl/script/parser.pl", $output, $result);

当我回显$result变量时,它会显示2。 我已经多次打开和关闭php safe_mode,但没有改变。 还试图将safe_mode_exec_dir设置为没有正面结果。

当我执行一个简单的ls

exec("ls", $output, $result);

一切顺利,我得到了文件列表,$result0

perl脚本有chmod 777,因此不会出现权限问题。他的文件夹也有777。

我几乎可以肯定这个问题与服务器有关,但我无法找到答案。

任何帮助都会非常感激。

由于

2 个答案:

答案 0 :(得分:3)

您可能需要指定perl可执行文件的完整路径。

尝试输入which perl以查看完整路径,然后将完整路径放入exec来电。

答案 1 :(得分:1)

您的示例似乎缺少第一个参数的结束引用。我还要确保perl的可执行文件在你的路径中。最后,文件夹不仅需要设置执行位,而且需要将所有直到root的目录设置为允许perl访问脚本。一个目录为750就足以让一个团队进入,但不是世界。作为用户,您可以在那里看到并查看脚本,但是您必须从执行脚本的用户的角度来看它 - 可能是您的网络服务器正在运行的ID。