在部署服务器以及本地测试的时候发现了一个奇怪的现象,运行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速度慢问题解决了。