【问题标题】:PHP script to execute exec执行 exec 的 PHP 脚本
【发布时间】:2012-10-09 13:37:51
【问题描述】:

我正在编写一个 PHP 脚本来通过使用系统调用 fork()exec()execl() 来上传执行其他 c 文件的文件。 不幸的是 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 也没有执行。 有什么建议。

【问题讨论】:

  • p1 是否被执行?因此其他命令在 p1 中是否有效?
  • shell_exec() 如果 PHP 在 safe_mode (php.net/manual/en/function.shell-exec.php) 中运行,则会禁用 id。你确定你的 PHP 引擎禁用了safe_mode

标签: php exec


【解决方案1】:

shell_exec documentation 中所述,只有在PHP 配置中禁用safe_mode 时才会启用此功能。

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

safe_mode = Off

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 2013-03-13
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2015-03-18
    相关资源
    最近更新 更多