都说物尽其用。用了一个VPS,自然要最大化的享用其便利和快捷

博客虽然已经全静态了,不过总还是有些页面没法产生缓存。。。分页呀归档呀之类的

这类页面还是加载慢很恼人的

本想安装memcached,但是256M内存的VPS内存使用本来就有些紧,而且大多数人反映安装memcached网站响应速度反而变慢。毕竟memcached不是一个加速器,而是一个应对高并发高访问量的优秀缓存器

而且memcached的部分功能,eAccelerator也可以实现

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有相似之处。善用它可以减少数据库请求

点击下载eAccelerator缓存类

在主题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缓存