2013-05-30 16 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

謝謝布萊恩,我要去看一下它! –