优化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一键安装包的朋友们一个优化方案: 继续阅读

php-fpm优化

本文所涉及的配置文件名为php-fpm.conf,里面比较重要的配置项有如下一些。

request_terminate_timeout = 30
#表示等待30秒后,结束那些没有自动结束的php脚本,以释放占用的资源。

pm表示使用那种方式,就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。

pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

如果dm设置为static,那么其实只有pm.max_children这个参数生效,系统会开启设置数量的php-fpm进程。
如果dm设置为dynamic,那么pm.max_children参数失效,后面3个参数生效。后面3个参数生效,同时请注意,pm.max_spare_servers的值不能超过pm.max_children定义的值,否则php-fpm进程报错。

系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。 继续阅读

安装kloxo以后PHP探针不显示CPU和内存信息的解决办法

有部分童鞋在安装完kloxo以后,喜欢上传个探针,看看Apache或者lighttpd占用多少内存,但是发现探针里并不会显示出来当前的CPU和内存占用信息,这是为什么呢?

原因就是kloxo作了安全方面的限制,限制了PHP能读取的目录,只要我们在kloxo的配置文件中取消这个限制就可以了。

解决方法:
编辑“/home/httpd/域名/conf/kloxo.域名”这个文件。
比如,我绑定的域名是zhukun.net,那就编辑“/home/httpd/zhukun.net/conf/kloxo.zhukun.net”这个文件
删掉其中open_basedir部分的内容(一共有四处),然后service httpd restart,打开探针就会发现CPU信息和内存信息已经显示出来了。

本地架设PHP环境时Apache2启动失败的解决办法

曾经下过无数个PHP+MYSQL+APACHE一键安装包,但从来都没有安装成功过,虽然显示安装成功了,但一点击Apache上的“Start”,马上就说failed!我简直有点发毛了,哎,做网站的道路就是艰辛啊,没关系 ,我坚持!于是依次到这三个软件的官方网站把它们下载回来,再安装!可是问题依旧!无数的尝试失败后我终于快顶不住打击了,几度欲放弃本地架设PHP环境的想法。

去google一下答案吧,谁知马上就找到了答案。看来“有问题,google一下”真的没说错。现将我的方案贡献出来供大家参考。

1,右击“本地连接”,依次点击“属性”-“Internet协议(TCP/IP)”-“属性”-“高级”-“WINS”,将“启用LMHOSTS查询”前面的勾去掉,然后确定。
2,打开系统防火墙,在“高级”里选中“本地连接”,点击右面的“设置”,把“安全Web服务服务器(HTTPS)”前的勾选中,然后确定。

现在在浏览器中打开http://localhost就可以访问了。OK!问题解决!继续研究我的帝国CMS去。