Press "Enter" to skip to content

优化php参数,加快WordPress速度

这个博客陆陆续续使用过一些美国的VPS,但访问速度一直不能让我满意,使用17CE测试的时候,全国的打开速度普遍在4-10秒左右,原因不明。也曾见过有些WordPress用着美国的空间,没装WP Super Cache等缓存插件,打开速度却维持在2秒左右,让我觉得,自己在优化这方面简直是太菜了。。

今天闲来无事,把Godaddy的免费空间安装了WordPress,拿17ce测试了一下,全国范围的打开速度在2-4秒左右,觉得有些不可思议。论性能,肯定是VPS要超出虚拟主机很多,为什么Godaddy的虚拟主机速度可以这么快……

我把Godaddy的免费空间上传了一个探针,仔细观察了一下,除了CPU、内存很大之外,我发现没有安装Zend Optimizer这个最基本的PHP加速器,当然,像memcache,eAccelerator等肯定也没有。比较奇怪的是发现有几个PHP的参数,跟lnmp一键安装包里面差距挺大。比较显著的是如下两个参数:

max_execution_time:翻译过来就是php脚本的最大执行时间,Godaddy家默认是30秒,但lnmp一键包默认是300秒
memory_limit:这个我的理解为每个php脚本的内存占用限制,但网络上有的说法是所有PHP脚本的内存总限制。Godaddy家默认是64M,但lnmp一键包默认是128M

然后就对比着优化了下,后来发现速度还不错,VPS和Godaddy免空的访问速度基本一样了。这里我给诸位使用lnmp一键安装包的朋友们一个优化方案:

1,修改/usr/local/php/etc/php.ini

max_execution_time = 30
memory_limit = 64M    ; 如果内存太小,也可设置成32M~48M
post_max_size = 10M   ; bluehost使用此值
upload_max_filesize = 10M  ; bluehost使用此值
……
disable_functions = ……    ;去掉其中的scandir和fsocketopen,保证WordPress的功能正常

2,修改/usr/local/php/etc/php-fpm.conf

<value name="max_children">15</value>   
#256M内存的VPS建议保持默认的5,512内存的建议改为10,1G内存的建议改到20左右
……
<value name="request_terminate_timeout">60s</value>    #改为60左右

别忘记执行service php-fpm reload重启一下php服务。

当你设置完,可能会出现如下的错误:
Fatal error: Out of memory (allocated xxxxxxx) (tried to allocate xxxx bytes)……
一看上去就是内存超限导致的,我的理解是,跟memory_limit和max_children的值有关。前者指定每个php脚本能占用的最大内存,而后者指定了可以同时运行多少php脚本。根据这个原因,只要随便改小其中一个值即可。

很多人还纠结是否应该安装lnmp一键包里的memcache和eAccelerator,我认为,eAccelerator可以安装,打开速度大约能提升1-2秒左右;至于memcache,这个东西是用来缓存数据库的,如果你的VPS是SSD硬盘,那么读取和写入的速度本来就很快,那完全没有安装的必要。如果是普通机械硬盘,那还是安装吧。

6 Comments

  1. cxd44 2013-09-26

    今晚测试下,看看效果。

  2. cxd44 2013-09-26

    忘记我是用kloxo了,我擦。。。不能测试了。

  3. 才子城 2013-09-29

    我今天下班回家就试一试去,谢谢分享哦。

  4. 星尘网络 2013-10-08

    学到了。其实感觉香港空间速度非常给力,价格也便宜

    • cece 2013-10-17

      主要是香港的价格较贵,虚拟主机暂时没兴趣,VPS吧价格又太高,所以暂时还是放在美国吧

  5. cece 2013-10-17

    主要是香港的价格较贵,虚拟主机暂时没兴趣,VPS吧价格又太高,所以暂时还是放在美国吧

Leave a Reply

Your email address will not be published. Required fields are marked *