技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

file_get_contents()報(bào)錯(cuò)gethostbyname failed的原因

作者:admin    時(shí)間:2015-8-23 0:8:6    瀏覽:

今天,一臺(tái)測(cè)速VPS的PHP程序運(yùn)行出現(xiàn)了問(wèn)題,一直以來(lái)都運(yùn)行得好好的,怎么會(huì)突然運(yùn)行不了呢?首先我想到的是Web服務(wù)器IIS的問(wèn)題,于是重啟IIS,但是并不湊效;隨后重啟服務(wù)器,但是問(wèn)題依舊,這讓我一時(shí)不知道怎么處理為好。于是,開始分析起錯(cuò)誤日志起來(lái)。

報(bào)錯(cuò)提示:gethostbyname failed

其實(shí)PHP程序執(zhí)行并沒(méi)有問(wèn)題,說(shuō)明PHP環(huán)境是沒(méi)有被破壞的。出問(wèn)題的是某些程式(函數(shù))不能執(zhí)行,報(bào)錯(cuò)提示如下:

Warning: get_headers() [function.get-header]: php_network_getaddresses: gethostbyname failed. errno = 0

Warning: get_headers(http://m.baidu.com) [function.get-header]: failed to open stream: php_network_getaddresses: gethostbyname failed. errno = 0

Notice: Undifined offset:1

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: gethostbyname failed. errno = 0

Warning: file_get_contents() [function.file-get-contents]: failed to open stream: php_network_getaddresses: gethostbyname failed. errno = 0

根據(jù)報(bào)錯(cuò)提示,PHP運(yùn)行出錯(cuò)的地方是get_headers()file_get_contents(),而原因均為gethostbyname失敗。意思是獲取不了域名主機(jī),即是域名解析失敗了。

解決方法

域名解析失敗,問(wèn)題找到了,但是原因是什么,以及如何解決呢?

根據(jù)以往的經(jīng)驗(yàn),服務(wù)器不能解析域名,原因多是DNS的設(shè)置的問(wèn)題,于是就從DNS的設(shè)置做起。

服務(wù)器的DNS原先是一個(gè)當(dāng)?shù)芈?lián)通的DNS,我現(xiàn)在把服務(wù)器的DNS設(shè)為8.8.8.8這個(gè)公共DNS看看。

然后,在dos里ping一下域名,看到可以ping通了。

 檢測(cè)網(wǎng)絡(luò)連通與否

檢測(cè)網(wǎng)絡(luò)連通與否

再次訪問(wèn)PHP程序,終于沒(méi)問(wèn)題了!

總結(jié)

本次經(jīng)驗(yàn)是,當(dāng)在服務(wù)器訪問(wèn)不了外網(wǎng)網(wǎng)站時(shí),試試更改下服務(wù)器的DNS,DNS對(duì)網(wǎng)絡(luò)的連通性起到十分重要的作用。

標(biāo)簽: file_get_contents  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */