在部署服務器以及本地測試的時候發現了一個奇怪的現象,運行PHP程序的時候非常慢,起先以為是網速的原因,后經本地測試發現速度依舊非常慢,打開一個頁面差不多要用時3秒以上,這肯定是不正常的,因為我只是一個簡單的頁面,並沒有多少數據。
首先,考慮是不是因為我使用的是集成環境(phpStudy),測試了阿帕奇/Apache,發現Apache在靜態頁面時,速度是正常的,這說明Apache是正常的,繼續嘗試更換PHP的環境,將PHP換至5.4/5.5/5.6發現問題依舊。這有點奇怪了,於是接着把PHP換到低版本5.2.17,意想不到的是竟然速度正常了。
沒道理PHP5.3以上速度就卡了,於是開始檢查程序,將MYSQL鏈接數據庫去掉,發現速度也正常了,難道是數據庫連接有問題?
繼續檢查數據庫連接文件,看不出任何問題,數據庫主機連接填的地址是:localhost ,嘗試將“localhost”換成局域網IP,發現速度也正常了,換成“127.0.0.1”居然也正常了,也就是說問題出在“localhost”上。
最終終於明白了其原因:win7及以上的系統默認是支持IPV6的,在鏈接數據庫的時候,PHP 5.3及以上在面對數據庫配置信息中的“localhost”會首先確認這是IPv6還是IPv4,因此在此環節耗時過多,從而影響運行速度,這也就能解釋上述的去掉連接數據庫速度就正常了的現象,直接把這個地址改名為“127.0.0.1”,這個IP是IPv4下面的本地網絡地址,實際作用和“localhost”一樣,不過能明確告訴PHP這是IPv4網絡。
至此,php5.3及以上win7及以上操作系統上運行PHP速度慢問題解決了。
