0

我真的需要一些帮助来解决一个问题。我正在尝试使用直接集成在 PHP 上的 exec() PHP 函数,但它不起作用。

我试过这个:

$directory = "C:/wamp/www/ADA-WEB/Conversion";
$file ="/main.exe";
chmod($directory, 0600);
exec($directory.$file);

但什么也没有发生。因此,我尝试查看 Apache 日志中是否报告了错误,这就是出现的情况:

引发 ADA.IO_EXCEPTIONS.NAME_ERROR:convertir\EXPORT.DAT:没有这样的文件或目录

这是 ADA 可能引发的典型错误。但我不明白为什么会产生这个错误。似乎 PHP 在一个随机文件夹(可能是一个临时文件夹)上运行该文件。当我在 Windows 上直接启动 exe 时,我没有这种问题。

如果你应该帮助...

非常感谢。

尼古拉斯

4

3 回答 3

2

在启动 ada 应用程序之前,您可以考虑使用http://php.net/manual/fr/function.chdir.php 。通过这种方式,您可以控制运行二进制文件时使用的当前目录

$directory = "C:/wamp/www/ADA-WEB/Conversion";
$file ="/main.exe";
$current = getcwd();
chdir($direcoty);
chmod($directory, 0600);
exec($directory.$file);
chdir($current);
于 2013-05-31T11:04:29.530 回答
0

嗯,我改变主意了,往另一个方向走。。

在对这个问题进行更多搜索之后,似乎问题不是因为 exec() 函数,而是因为 Windows 不允许通过导航器执行程序。

感谢您的回答。

尼古拉斯

于 2013-05-31T10:55:58.150 回答
0

可能有解决该问题的替代方法。这回避了您面临的限制(显然是 Windows)。

如果您通过基于 Web 的界面来驱动 Ada 程序,Ada Web Server (AWS) 工具包是一种将 Web 服务器直接构建到您的程序中的方法 - 它易于使用,而且速度也很快。显然还有其他一些称为 AWS 的工具包,但我的意思是这里: with an introduction here。另请参阅此StackOverflow 问题以了解有关该工具包的其他一些观点。

于 2013-06-01T10:04:10.170 回答