2013-05-30 19 views
0

我真的需要一些帮助来解决问题。 我试图使用直接集成在PHP上的exec()PHP函数,但它不起作用。用于ADA程序的PHP exec()函数的错误

我已经试过这样:

$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时,我没有这种问题。

如果您应该帮助...

非常感谢。

萨科

+0

php exec()中的错误或代码中的错误,我知道我会下注哪一个。 – 2013-05-30 20:29:16

+0

您的ADA程序是否依赖于设置的任何环境变量。尝试从命令行运行这个PHP脚本,看看你是否得到相同的错误。 – Orangepill

+1

它正在寻找具有相对路径名“convertir \ EXPORT.DAT”的文件,并且找不到它。 –

回答

0

唉,我改变了主意,打算在另一个方向..

这个问题真的好像更多的搜索后,这个问题是因为exec()函数的,但不因为Windows不允许通过导航器执行程序。

感谢您的回答。

萨科

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); 
0

可能有替代办法的问题时所使用的当前目录。这避开了你正面临的限制(显然是用Windows)。

如果您通过基于Web的界面来驱动Ada程序,那么Ada Web服务器(AWS)工具箱就是一种在您的程序中构建Web服务器的方法 - 它易于使用且速度也很快。显然有一些其他工具包称为AWS,但我的意思是here:与介绍here。有关该工具包的其他一些观点,另请参阅此StackOverflow question

+0

谢谢布莱恩,我要去看一下它! –