3

我正在编写一个 PHP 脚本来上传一个文件,该文件通过使用系统调用fork()、和exec()、和来执行其他 c 文件execl()。不幸的是 execl() 函数不起作用。
更详细地说,PHP 脚本,执行exec()函数为:

$output =shell_exec('./app/p1';
echo "<pre>$output</pre>"; ) 

执行 p1 是 p1.c 的可执行文件,p1.c 程序调用 execl() 为:

execl("./p2", "./p2", "a.param","test.txt", NULL); 

执行 p2,它是 p2.c 的可执行文件。结果 p1.c 中的 execl() 没有执行, p2.c 也没有执行。有什么建议么。

4

1 回答 1

0

shell_exec文档safe_mode中所述,此功能仅在 PHP 配置中禁用时才启用。

要禁用它,(仅适用于 5.4 之前的 PHP),您必须在 中包含以下行php.ini

safe_mode = Off

另一个可能的问题可能来自当前路径。您正在使用相对路径(./app/p1./p2)调用二进制文件。您确定这些二进制文件在当前工作目录中吗?

要摆脱这个问题,只需在两种情况下都使用文件的完整路径。

于 2014-05-28T07:01:27.303 回答