2010-11-17 109 views
2

我在Windows 7上運行帶有IIS的5.2.14。使用Windows平臺安裝程序。無法在IIS Web App中運行PHP cURL,但可以從CLI中運行

當我編寫使用cURL或file_get_contents()的腳本並通過命令行運行它時,一切正常。

如果我在網頁中使用相同的代碼,運行在IIS中,請求總是失敗。 cURL返回的響應代碼爲0. file-get_contents帶有「Warning:file_get_contents():php_network_getaddresses:getaddrinfo失敗:沒有這樣的主機是已知的」。我甚至嘗試將代碼放在一個單獨的腳本中,並通過exec()將其輸出回管道腳本。但是,從CLI執行的腳本運行良好的腳本,在由IIS執行的PHP腳本調用時失敗。

php.exe -i返回沒有錯誤。 phpinfo()在網頁中通過IIS運行,顯示與php.exe -i中相同的活動/激活cURL。我的libeay.dll和ssleay.dll庫都在我的路上。

cURL本身似乎沒有問題。我最好的猜測是,這是一個防火牆或權限的事情,IIS將PHP作爲訪問用戶阻止訪問網絡,但是當我從命令行運行它時,我沒有被阻止。

我不知道配置IIS或防火牆或安全策略以找出改變的地方,我不希望意外地通過隨機降低安全性來開啓一個大型黑客隧道進入我的系統,直到點擊。請幫忙。

回答

0

「警告:file_get_contents():php_network_getaddresses:getaddrinfo失敗:沒有這樣的主機是已知的」。

這是你的線索,沒有這樣的主機是已知的,嘗試了原始IP地址,看看有沒有什麼工作,如果這樣的話,那是因爲PHP不能看到主機基本上IIS不傳遞一個信息中也許。

+0

試過了。關於連接的另一個錯誤。似乎主機解析錯誤是缺乏網絡訪問的症狀。我也禁用了Windows防火牆並得到了相同的錯誤。這個問題似乎是網絡訪問被拒絕,用戶IIS根據其他設置運行PHP。 – YiddishNinja 2010-11-18 15:49:51

+0

是的,聽起來像 – 2010-11-18 16:05:22