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

PHP shell_exec仅在Windows(8)上不使用我自己的应用程序运行,php,windows,shell-exec,Php,Windows,Shell Exec,我们正在尝试从PHP运行一些C应用程序,例如: #include<stdio.h> main() { printf("Hello World"); } #包括 main(){ printf(“你好世界”); } 此应用程序复制到PHP脚本所在的同一目录,并按如下方式运行: <?php $output = shell_exec(FULLPATHTO . 'HelloWorld.exe'); echo $output; ?> 当在Linux上运行时

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

#include<stdio.h>

main() {
    printf("Hello World");
}
#包括
main(){
printf(“你好世界”);
}
此应用程序复制到PHP脚本所在的同一目录,并按如下方式运行:

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

当在Linux上运行时,一切正常,应用程序只需要由正确的用户组拥有,不需要在PHP上配置任何东西

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

  • 使用我们的应用程序从CLI(在php-a中运行)
  • 使用默认Windows命令时通过脚本(shell_exec('dir'))
  • 通过脚本与一些Windows应用程序(shell_exec(“notepad.exe”)和shell_exec(“notepad.exe”)一起使用)
此外:

  • NodeJS应用程序可以使用spawn运行我们的应用程序
进一步说,当将“notepad.exe”可执行文件复制到包含脚本的文件夹时,它会正确运行记事本(从给定文件夹,而不是Windows文件夹上的notepad.exe),但对应用程序执行完全相同的操作不会产生任何输出,并且应用程序永远不会打开

  • 我们已经尝试将stderr输出写入一个文件,但它也是空的
  • 在Windows(系统)上运行Apache的用户对该目录拥有完全权限
  • 未启用PHP安全模式
再强调一下:

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

Try exec()并检查return\u var。Try exec()并检查return\u var。