我試圖使用正在由在IIS中使用exec()運行的PHP調用的bat文件重新啓動Apache2.2 Web服務器,Apache和IIS位於同一臺服務器中。在IIS中使用PHP重新啓動Apache
PHP代碼
exec("cmd /c restart.bat");
bat文件
"PATH_TO_APACHE\bin\httpd.exe" -k restart -n Apache2.2
當我通過HTTP負載我的PHP重新啓動,我得到一個 「無法打開日誌」 在我的Apache的錯誤錯誤日誌文件。
我的搜索結果大部分都說80端口有衝突,但是當我做一個netstat的時候沒有,我的IIS正在監聽另一個端口。雙擊.bat文件,但從PHP運行會得到錯誤。有任何想法嗎?請指教。
可能是因爲蝙蝠然後在IUSR下運行? – Passerby
我已經添加了cmd.exe的權限,但是我得到了同樣的錯誤,在安全選項卡中添加了NETWORK SERVICE和IUSR –
不確定這是否有幫助,但我曾經啓動了後臺進程('start/B php中的longtimejob.php'),並且使用'exec','system','passthru'不成功。最後我用'pclose(popen(「work.bat」,「r」))'工作。所以也許你可以試試'popen'和'proc_open'。 – Passerby