我有一些駐留在網絡共享上的PHP腳本。爲了論證的緣故,我們稱之爲share \\nas\dev
。我在\\w2k3dev\
上設置了一個網站,它使用\\nas\dev\
作爲其主目錄,並設置了「位於另一臺計算機上的A共享」。爲什麼我無法使用IIS中網絡共享上PHP腳本的shell_exec?
我的一些腳本使用shell_exec
來執行服務器上的功能並將結果返回給我的腳本。同樣爲了便於討論,讓我們說,我只是得到一個目錄列表,像這樣:
echo shell_exec('dir');
- 如果我跑在腳本IIS,我沒有得到任何輸出 - 但沒有錯誤日誌無論是。
- 如果我成立阿帕奇上
\\w2k3dev\
並將其配置爲使用相同的份額,如果我的腳本複製到本地計算機上並運行它通過IIS能正常工作的腳本運行正常 - 。
所以這個問題似乎只是當IIS設置爲使用網絡共享與腳本包含shell_exec
。我的腳本的每個其他方面工作正常。
在procmon中剖析,我可以看到cmd.exe的運行完全不同,具體取決於它是由IIS還是由Apache運行。我有更多的細節,但爲了簡潔起見,我會暫時忽略它們,除非有人要求更多細節。
非常感謝你看到這個,我在我的智慧結束。
親切的問候
伊恩
謝謝你的答案本傑明。我以前曾經看過這些評論 - 但是我又看了一遍,以防我錯過了一些東西,並嘗試了所有這些建議。我會等一會兒,看看是否有其他人回答,如果我沒有得到任何其他答案,我會給你答案 - 你的答案可能無法解決我的特殊問題,但它可能會幫助與我類似的情況下的其他人。 乾杯隊友 Iain –