PHP shell_exec仅在Windows上运行我自己的应用程序(8)

时间:2017-05-13 18:47:42

标签: php windows shell-exec

我们正在尝试从PHP运行一些C应用程序,例如:

#include<stdio.h>

main() {
    printf("Hello World");
}

此应用程序被复制到PHP脚本所在的目录中并运行如下:

<?php
  $output = shell_exec(FULLPATHTO . 'HelloWorld.exe');
  echo $output;
?>

在Linux上运行时,一切运行正常,应用程序只需要由正确的用户组拥有,并且不需要在PHP上配置任何内容。

在Windows上,shell_exec命令正常工作:

  • 来自我们的应用程序的CLI(在php -a中运行)
  • 使用默认Windows命令时通过脚本(shell_exec(&#39; dir&#39;))
  • 通过一些Windows应用程序的脚本(shell_exec(FULLPATHTO。&#39; notepad.exe&#39;)和shell_exec(&#39; notepad.exe&#39;))

此外:

  • NodeJS应用程序可以使用spawn
  • 运行我们的应用程序

进一步复制&#34; notepad.exe&#34;可执行文件到包含正确运行记事本的脚本的文件夹(来自给定的文件夹,而不是Windows文件夹中的notepad.exe)但与我们的应用程序完全相同,不会产生任何输出,应用程序永远不会打开。

  • 我们已经尝试将stderr输出写入文件,但它也是空白的。
  • 在Windows(SYSTEM)上运行Apache的用户拥有该目录的完全权限。
  • 未启用PHP安全模式。

再次强调一些事情:

  • 相同的代码在Linux上运行良好(相同的C代码和相同的PHP代码)
  • 应用程序编译正确,可以从PHP外部运行

任何猜测?谢谢!

0 个答案:

没有答案