为什么 shell_exec of php 不能在这里工作?

Why doesn't shell_exec of php work with here?

我有一个 php 脚本和一个使用 C# 创建的 exe 文件。我希望 php 执行该 exe 文件。我尝试使用 shell_exec 命令。但是什么也没有发生!!然后我尝试了 echo shell_exec("dir"); 它通过显示信息来工作。

为什么不执行exe文件。几个月前我用过它,它在 xpdf、brc 和 opera 上运行良好。

我试过给绝对路径,我试过添加到路径变量。但它不起作用。 有趣的是,我的 exe 文件可以从命令行 完美执行。我认为 php.

有问题

我正在使用 Apache 2.4 和 PHP5.6

PHP 脚本:

<?php
echo shell_exec("Face_Trainer.exe");
?>

C# exe 文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Face_Trainer
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Beep();

        }
    }
}

我需要这个 shell_exec 来完成我的项目,其他都很好,只有这个功能!

解决方案:

您正在使用非交互式 shell,这就是您没有听到哔声的原因。您可以通过写入文件来检查它,如果创建了文件,您的程序 运行 在您当前的设置中没问题。


其他备注:

如果你真的想执行一个 exe 文件,你应该使用正确的扩展名:

<?php
echo shell_exec("Face_Trainer.exe");
?>

因为这似乎是一个打字错误,这里有另一个提示:我会 运行 一个批处理文件,您可以在其中为您的应用程序设置环境。举个例子:

@echo off
set path=%path%;x:\your\path
cd x:\dir\of\exe
Face_Trainer.exe