IIS下PHP運(yùn)行環(huán)境搭建與網(wǎng)頁(yè)服務(wù)器故障排查方法
一、對(duì)于php頁(yè)面完全無(wú)法訪問(wèn)的情況
1、確認(rèn)是php的問(wèn)題還是iis等服務(wù)器的問(wèn)題
判斷方法,在目錄下放一個(gè)靜態(tài)文件,通過(guò)瀏覽器判斷這個(gè)靜態(tài)文件可否訪問(wèn)。若可以訪問(wèn),即為php問(wèn)題。
如果是IIS的問(wèn)題,常見(jiàn)的有兩種情況,一個(gè)判斷的利器是telnet。
linux的telnet其實(shí)更加好用,因?yàn)槟J(rèn)是打開(kāi)回顯的。而windows,則需要用 set localecho,否則看不到輸入的文字
1.1 防火墻禁止80端口
進(jìn)入telnet后,輸入指令,open 域名 80
如:open www.baidu.com 80
如果能連接上,會(huì)出現(xiàn)一個(gè)黑色屏幕,等待輸入
提示所謂的無(wú)法打開(kāi)到主機(jī)的連接,在端口80失敗,則表示這個(gè)端口不可達(dá)??赡艿脑蛴校篋NS服務(wù)器沒(méi)有這個(gè)域名(用nslookup查),遠(yuǎn)程主機(jī)沒(méi)有開(kāi)啟或禁止連接(用ping等命令查),以及這里說(shuō)的,防火墻沒(méi)有打開(kāi)80端口。
1.2 服務(wù)器上目標(biāo)目錄的權(quán)限設(shè)置不正確
這種情況下,一般會(huì)提示要求登錄的對(duì)話框,不至于顯示不出來(lái)頁(yè)面
1.3 其他問(wèn)題
假設(shè)要訪問(wèn)的主機(jī)是www.baidu.com ,那么,用如下命令查:
> telnet www.baidu.com 80
會(huì)出來(lái)一個(gè)黑屏幕,這個(gè)時(shí)候速度要快,因?yàn)榉?wù)器可能不會(huì)等你輸入,他期待的是一個(gè)迅速的輸入。(可以先在記事本里頭打好,然后粘貼進(jìn)去),直接telnet可能沒(méi)有l(wèi)ocalecho,可能需要盲打
指令例子,括號(hào)內(nèi)的字符不要輸入:
GET / HTTP/1.1 (回車)
Host: www.baidu.com (回車)
(回車)
注意,在host行后有兩個(gè)回車。
這個(gè)是用telnet模擬瀏覽器對(duì)目標(biāo)主機(jī)的請(qǐng)求。如圖:
注意,回復(fù)頭的內(nèi)容擁有非常豐富的信息,如200表示請(qǐng)求成功。500表示內(nèi)部服務(wù)器錯(cuò)誤等,具體信息可以看看相關(guān)文檔。
1.4 一點(diǎn)點(diǎn)背景知識(shí)
以上的步驟涉及到瀏覽器發(fā)起請(qǐng)求的過(guò)程,介紹下或許會(huì)有幫助:
1、 你在瀏覽器的地址欄輸入域名,并按下回車。
2、瀏覽器請(qǐng)求DNS服務(wù)器將域名轉(zhuǎn)換為IP地址——注意,這一步還和你的網(wǎng)頁(yè)服務(wù)器(IIS或者APACHE)沒(méi)有任何關(guān)系。
3、瀏覽器向你的網(wǎng)頁(yè)服務(wù)器請(qǐng)求連接——相當(dāng)于我們telnet 80端口。當(dāng)然, 如果你指定了端口號(hào),他就會(huì)連接你指定的端口。但是默認(rèn)端口是80,這個(gè)是rfc規(guī)定的http的端口,https端口是443,這個(gè)過(guò)程更加復(fù)雜,有密鑰交換和加解密的過(guò)程,因此沒(méi)辦法用這種方法做trouble shooting,建議在這個(gè)階段先搞定http的再說(shuō)。
4、建立了一條連接,服務(wù)器等待瀏覽器發(fā)請(qǐng)求頭,瀏覽器發(fā)請(qǐng)求頭。請(qǐng)求頭以一個(gè)空行結(jié)束。
5、請(qǐng)求頭格式如下:
方法【空格】請(qǐng)求路徑(不包含域名,如/a.html或者/)【空格】協(xié)議
HOST:請(qǐng)求的域名
例如:
GET /index.php HTTP/1.1 (回車)
Host: www.baidu.com (回車)
(回車)
請(qǐng)求頭可能有其他信息,例如,提交的信息,不過(guò)對(duì)于我們而言,這個(gè)就夠了。
方法,常用的就是get和post,一般請(qǐng)求網(wǎng)頁(yè)用get,提交信息用post。
6、服務(wù)器處理并返回?cái)?shù)據(jù),包括頭和網(wǎng)頁(yè)體。
HTTP/1.1 200 OK
這行開(kāi)頭,包括了協(xié)議,以及錯(cuò)誤代碼(或成功代碼),錯(cuò)誤代碼解釋。
對(duì)于瀏覽器而言,可能會(huì)有不少信息有用,但對(duì)于我們而言,知道代碼和錯(cuò)誤代碼解釋就很有必要了。
信息體里頭,可能會(huì)有很多別的東西,例如對(duì)這個(gè)信息的詳細(xì)解釋等。php的錯(cuò)誤報(bào)告開(kāi)啟的時(shí)候,也會(huì)在這里頭報(bào)告相關(guān)問(wèn)題。
2、確認(rèn)php擴(kuò)展加載。
2.1isapi擴(kuò)展
對(duì)于isapi擴(kuò)展,在主目錄的配置下:
找到php:
若沒(méi)有,添加之。
2.2對(duì)于fastcgi方法
另一種加載方法是fastcgi,這種方法需要判斷是fastcgi引擎問(wèn)題還是php問(wèn)題,判斷方法是跳過(guò)fastcgi,直接用cgi方式加載php.exe。
二、php頁(yè)面部分能訪問(wèn)的情況
簡(jiǎn)單的判斷是不是這種情況的方法是,新建一個(gè)php文件,輸入如下內(nèi)容:
<?php phpinfo(); ?>
注意大小寫和空格必須正確。正常情況下回輸出一個(gè)phpinfo頁(yè)面,如下圖所示:
該頁(yè)面非常有用。
1、判斷php文件加載正確性
確認(rèn)Loaded Configuration File里頭加載的是不是你想要他加載的php.ini文件。有可能修改該文件錯(cuò)誤。
2、判斷mysql等擴(kuò)展是否加載
很多時(shí)候可能會(huì)有這種情況,就是頁(yè)面白屏,但是明顯的,頁(yè)面加載了一半。例如,tittle部分已經(jīng)顯示出來(lái)了,包括supersite、discuz等站點(diǎn)很可能出現(xiàn)這種情況。
判斷方法很簡(jiǎn)單,頁(yè)面上搜索mysql,要是沒(méi)有如下內(nèi)容就是沒(méi)有加載
2.1、判斷為什么沒(méi)有加載
主要的兩種可能性:extension_dir沒(méi)有配置對(duì)和沒(méi)有取消注釋
2.2、第一種可能性
extension_dir沒(méi)有配置對(duì),注意要配置到ext目錄下,例如:
extension_dir="E:\PHP\EXT"
記得確認(rèn)該目錄是不是存在
2.3、第二種可能性
extension沒(méi)有取消注釋??从袥](méi)有這一句以及這一句前頭有沒(méi)有#,若有,去掉。
[PHP_MYSQL]
extension=php_mysql.dll
2.4、其他
網(wǎng)上的說(shuō)法要拷貝兩個(gè)和mysql有關(guān)的文件到windows下,不過(guò)實(shí)際配置過(guò)程中似乎與這個(gè)無(wú)關(guān),但以上都沒(méi)有解決的情況下,可以試試。
3、trouble shooting方法
開(kāi)啟display_errors和display_startup_errors,在頁(yè)面上會(huì)有一些錯(cuò)誤顯示出來(lái),例如,mysql_connect未定義等。通過(guò)這些錯(cuò)誤提示,能針對(duì)性的找到錯(cuò)誤的來(lái)源。
- php+redis在實(shí)際項(xiàng)目中HTTP 500: Internal Server Error故障排除
- IIS PHP環(huán)境Temp文件夾的權(quán)限問(wèn)題引起的網(wǎng)站故障
- 基于PHP7錯(cuò)誤處理與異常處理方法(詳解)
- phpStudy配置多站點(diǎn)多域名方法及遇到的403錯(cuò)誤解決方法
- PHP中常見(jiàn)的錯(cuò)誤與異常處理總結(jié)大全
- php實(shí)現(xiàn)的錯(cuò)誤處理封裝類實(shí)例
- 淺談PHP錯(cuò)誤類型及屏蔽方法
- php中的異常和錯(cuò)誤淺析
- PHP中Notice錯(cuò)誤常見(jiàn)解決方法
- PHP實(shí)現(xiàn)通過(guò)strace定位故障原因的方法
相關(guān)文章
Windows下maven安裝配置圖文教程(包括本地化倉(cāng)庫(kù)配置)
這篇文章主要介紹了Windows下maven安裝配置圖文教程(包括本地化倉(cāng)庫(kù)配置),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05win2003服務(wù)器安全設(shè)置教程圖文(系統(tǒng)+數(shù)據(jù)庫(kù))
這篇文章簡(jiǎn)單介紹了win2003的安全設(shè)置方法,但一些更安全與深入的設(shè)置,還需要參考腳本之家以前發(fā)布的文章2013-08-08在windows服務(wù)器上開(kāi)機(jī)啟動(dòng)程序的操作指南
為了能夠 24 小時(shí)運(yùn)行量化程序,筆者弄了一個(gè) Windows Server 2012 的服務(wù)器,這樣就不怕斷網(wǎng)斷電什么的了,所以本文給大家介紹了如何在 windows 服務(wù)器上開(kāi)機(jī)啟動(dòng)程序,需要的朋友可以參考下2023-09-09win7和win2008 r2下配置IIS7(ASP.net運(yùn)行環(huán)境)
這篇文章主要介紹了win7和win2008 r2下配置IIS7(ASP.net運(yùn)行環(huán)境) ,需要的朋友可以參考下2014-12-12提示iis 無(wú)法啟動(dòng)World Wide Web Publishing服務(wù)的解決辦法
今天裝IIS組件,結(jié)果網(wǎng)站和ftp都啟動(dòng)不了,看看服務(wù),World Wide Web Publishing 服務(wù)沒(méi)有啟動(dòng),F(xiàn)TP Publishing服務(wù)也沒(méi)有啟動(dòng),于是我手動(dòng)啟動(dòng)World Wide Web Publishing 服務(wù),郁悶的是,系統(tǒng)提示:無(wú)法啟動(dòng)World Wide Web Publishing服務(wù),錯(cuò)誤 87 , 參數(shù)不正確;2008-11-11Windows Server 2016 PHP運(yùn)行環(huán)境安裝配置
這篇文章主要介紹了Windows Server 2016 PHP運(yùn)行環(huán)境安裝配置,需要的朋友可以參考下2017-08-08IIS 7 中設(shè)置文件上傳大小限制設(shè)置方法
有時(shí)候我們需要限制上傳文件的大小,那么可以參考下面的方法2013-09-09在IIS7、IIS7.5中應(yīng)用程序池最優(yōu)配置方案
這篇文章主要介紹了在IIS7、IIS7.5中應(yīng)用程序池最優(yōu)配置方案,需要的朋友可以參考下2016-06-06Windows?Server2012?R2?無(wú)法安裝.NET?Framework?3.5的解決方法
這篇文章主要介紹了Windows?Server2012?R2?無(wú)法安裝.NET?Framework?3.5的解決方法,使用本文方法的同學(xué)一定要注意選取對(duì)應(yīng)版本的簡(jiǎn)包(我用的簡(jiǎn)包鏈接在文中),然后指定備用源路徑即可,需要的朋友可以參考下2022-04-04windows?server2012?R2下安裝PaddleOCR服務(wù)的的詳細(xì)步驟
這篇文章主要介紹了windows?server2012?R2下安裝PaddleOCR服務(wù)的完整步驟記錄,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09