2016-02-22 66 views
0

我已經安裝在Windows 10平臺PHP和似乎無法通過PHP來運行應用程序。我可以運行dir,mkdir和簡單的DOS命令,但無法從Win \ system或progra〜1目錄運行任何應用程序。我曾嘗試過:PHP執行DOS程序

exec('notepad.exe'), 
exec('start \c notepad.exe') -- and fully stated path as below 
shell_exec('c:\windows\system32\cmd.exe /c c:\windows\system32\notepad.exe') 
system('notepad.exe'); 

在大多數這些示例中,我可以用dir替換並獲取目錄列表。 等,似乎沒有執行。

有沒有在php.ini的設置來允許這樣做,還是我設置IIS_IUSRS或IUSR到管理員組(我相信我已經爲IIS_IUSRS完成)。我錯過了什麼?

+1

嘗試運行命令行程序,而不是我試圖運行「SVN幫助」(TortoiseSVN的命令腳本),它不運行任何GUI程序 –

+0

;但是,SVNVersion確實運行。似乎調用DLL的任何東西似乎都不起作用(這看起來似乎是這樣,但我不確定它是否是DLL)。 –

回答

0

我不知道你不包括,但這裏是我寫來測試您問題的完整文件:

<?php 
    system ('notepad.exe'); 
?> 

它的工作原理(即使它不聽起來像一個偉大的想法! )。你有沒有離開PHP標籤?

+0

我試過所有的標準命令來執行命令:system,passthru,shell_exec,exec,並且我已經將IIS_IUSRS提升爲Administrator組的成員。我可以運行我創建的程序,即printf(「hello World」),但似乎沒有任何DLL調用。 –

+0

讓我明確這一點。如果你把我在這裏提供的代碼放到一個PHP文件中,並通過你的PHP服務器加載它,它不會彈出記事本?如果是這樣的話,我不是應該回答的人。你可以看看這個頁面,在評論中,關於在php.ini中設置權限和事情的一些猜測:http://php.net/manual/en/function.system.php –

+0

這是正確的。 ie /edge上的紡車只是保持旋轉並最終超時。 –

0

什麼這一切歸結爲是「NT AUTHORITY/IUSR」是不是一個真正的用戶,因此不具有普通用戶的目錄結構,例如,在「應用程序數據」目錄。爲了運行我想運行的應用程序(SVN),我添加了--config-dir c:\ Users \ user \ AppData \ TortoiseSvn \並設置了IIS_IUSRS的權限以具有讀取/修改/寫入/執行訪問權限。現在SVN很好用。

謝謝大家。乾杯