使用eAccelerator加速Wordpress
都说物尽其用。用了一个VPS,自然要最大化的享用其便利和快捷
博客虽然已经全静态了,不过总还是有些页面没法产生缓存。。。分页呀归档呀之类的
这类页面还是加载慢很恼人的
本想安装memcached,但是256M内存的VPS内存使用本来就有些紧,而且大多数人反映安装memcached网站响应速度反而变慢。毕竟memcached不是一个加速器,而是一个应对高并发高访问量的优秀缓存器
而且memcached的部分功能,eAccelerator也可以实现
SyntaxHighlighter.all();
wget -c http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config --with-eaccelerator-shared-memory
make
make install
这个是lnmp自动安装eAccelerator的一段代码。。。其它的谷歌搜索一下很多的。。。或者直接拿lnmp自动安装包来用就好
但要注意,eAccelerator的版本要选择0.9.5.3,0.9.6以后eAccelerator不再支持用户Cache,只支持opcode缓存。表现为eaccelerator_get函数无法使用,而之后我们要用到eAccelerator缓存类就需要使用eaccelerator_get函数
使用lnmp的安装包需要将里面的版本号修改过来
安装完成后需要修改php.ini的设置,lnmp的设置有些不太合理
我的是XenVPS
默认eaccelerator.shm_size="1",这个请根据实际需要修改,可以暂时先修改为8
在php.ini里加上eaccelerator.allowed_admin_path = "/home/wwwroot/"(目录自定义,建议放在比较深不容易发现的目录下),然后将eaccelerator-0.9.5.3目录里的[或压缩包里的]control.php复制到刚才定义的目录下,建议修改control.php里开头的账号密码
然后打开一下wp后台或者任意一个没有被缓存的wordpress页面,以便eAccelerator生成缓存。然后在浏览器里用刚才设置的账户密码访问control.php
这时会看到Memory usage这项,如果8M缓存全部用光了[显示99.9%之类的],再增大eaccelerator.shm_size,直到不会被全部用光为止
听说OpenVZ的eaccelerator.shm_size要改成0。只是听说而已
在Wordpress下善用用户Cache
用户Cache功能和memcached有相似之处。善用它可以减少数据库请求
在主题functions.php中加入上面的代码到开头,注意是加入不是覆盖
然后在主题合适的位置【例如侧边栏sidebar.php】放入下面代码:
<?php $yscache = new yscache();?>
<?php if($yscache->beginCache('mySidebar',array('duration'=>6000))) { ?>
这里放置侧边栏代码
<?php $yscache->endCache(); } ?>
这个是将sidebar缓存6000秒
其中“mySidebar”是这个区块是唯一key,不能和其他区块相同
另外还有缓存首页中心部分的代码
<?php $yscache = new yscache();?>
<?php if($yscache->beginCache('myHome',array('sql'=>'select max(ID) from wp_posts'))) { ?>
这里放置首页中间部分代码
<?php $yscache->endCache(); } ?>
意思是缓存直到文章更新。但这个我没法用。
其它部分的代码【head之类的】可以自行斟酌着改,但改完了一定要测试,否则会出现一些意想不到的错误
这样wordpress就能跑得很快了,但要注意如果修改了php文件一定要到control.php里去Clear缓存