本文通过 OscPress 同步至oschina,获取最新版本和更好的阅读体验请查看原文:
http://www.cellmean.com/?p=1469
前一阵子,服务器一直出现IO读写过高,导致网站打不开的问题。详细查了下原因,是内存不足导致的。当个别恶意IP持续访问站点时,导致httpd占用内存过高,最后内存耗尽,使得IO读写非常高。
于是,便打算使用静态缓存来减轻PHP和数据库的读写压力。查了下,Wopdress下使用最多的静态缓存插件是Wp Super Cache插件,口碑也很不错。于是便开始了折腾安装。
安装前热身
保证wp-content目录有读写权限,因为之后生成的缓存文件会存放在这个目录中。你可以将wp-content目录属性设置许可权限为755。或临时设置成777,但要记得改回来。
同时,保证Wordpress根目录的wp-config.php和.htaccess文件也有写入权限,最好将wp-config.php和.htaccess文件作一下备份。
详细安装过程
1.首先进入后台,选择左侧的【插件】,在右侧页面选择【安装插件】,然后在插件搜索框中输入:WP Super Cache。最后进行安装。如果安装提示权限问题,你要将wp-content目录权限修改成755。或者直接将WP Super Cache插件安装包上传到你网站根目录下的wp-content/plugins目录,然后进行安装。
2.安装成功后,在后台,选择已安装的插件,启用WP Super Cache插件:
配置过程
插件启用后,然后选择【设置】,进行插件配置。在【通用】选项中,勾选【启用缓存功能(推荐)】,然后选择【更新】,如下图:
上面更新成功后,你可以在更新按钮下面【缓存测试】,进行测试,检验是否可以正常生成缓存,如果成功,会给出提示OK,如:
然后切换到【高级】,勾选如下几个选项,勾选完后,在下面点击更新操作,如图:
在上面更新成功后,在下方的【Mod Rewrite规则】会出现如下内容:
然后在下方的点击按钮【更新Mod_Rewrite规则>>】进行保存。如果提示:无法更新 .htaccess 文件。那么你要使用 chmod 命令或ftp 客户端来修正.htaccess权限,将其修改为可写权限,或者直接将上面待添加的内容编辑保存到你的.htacess文件中。
然后进入【预缓存】设置缓存已发布的页面和文章:
预缓存的功能是,从现在开始缓存你之前已经发布的文章,将其生成supercache文件。你可以设置预缓存的文章数量,当选择【全部】,即可预缓存你之前所有文章。选择完成后点击【更新设置】按钮,然后再点击【立即预加载缓存】。这样系统就开始缓存你之前发布的文章。
当你已经成功的操作到这一步时,你的Wp Supser Cache插件已经安装完成。你可以根据个人情况设置缓存到期时间。首先,你选择【高级】选项,然后下拉到【到期时间和垃圾回收器】,会出现如下:
你可以设置缓存超时时间(即当到你设定的时间后,缓存过期,系统会重新生成缓存)。对于更新非常频繁,页面变动很大的网站,这个时间可以设置得短一些。像我的网站一般一天更新一次,所以我设置成86400秒。下面定时器的作用是每隔一定时间,去定时删除过期的缓存,释放磁盘空间。我也把它设置成86400秒,因为我的站点缓存一天就过期。一般来说,定时器的设置时间要大于等于缓存超时时间。
验证站点是否缓存成功
判断一个页面是否已经被缓存了,访问一个页面,然后查看该页面的源代码。如果最后一行有“Cached page generated by WP-Super-Cache+缓存时间”这行字,则表示生成缓存成功。比如这样:
1
2
3
4
5
6
7
8
9
10
11
|
<!-- Dynamic page generated in 0.375 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2016-01-02 14:06:19 -->
或者
<!-- Dynamic page generated in 0.351 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2016-01-02 12:27:29 -->
!-- super cache -->
|
你一定会好奇,为什么会有两种情况。其实,WP Super Cache 缓存机制有两种,WP Cache 和 Super Cache。
WP Cache 缓存时,会在你的“wordpress 安装文件夹/wp-content/cache/”文件夹下生成一系列wp-cache-xxxxxx.php格式的文件;
Super Cache 缓存时,则在你的“wordpress 安装文件夹/wp-content/cache/supercache/”文件夹下生成对应每一篇文章或者标签等的目录。名称为xxx.html,取决于你的文章ID是怎么设置。目录下面就是静态的 index.html 文件。
当你一个访问者访问你的站点,他没有登陆或者也没有留言,这样他得到是一个在 WordPress cache 文件夹下的 supercache 子文件夹下的纯静态文件,其实你都可以自己到上面的 supercache 目录下去查看同样的永久链接的 HTML 文件的备份。而当你有登陆时,则返回/wp-content/cache/”文件夹下的wp-cache-xxxxxx.php文件。
Super Cache 缓存会多一行如下代码:
1
|
<!-- super cache -->
|
因为 Super Cache 是真正静态的,对搜索引擎和博客的速度非常有好处,而且有效的减轻了 php 和 Mysql 的查询压力。这点对于大型博客来说优势很明显,一般的较小的博客感觉就不怎么明显。
WP-Super-Cache 完全删除的方法
①在后台禁用此插件。
②删除/wp-content/plugins/目录的wp-super-cache目录。
③删除wp-content目录下面的cache目录。
④删除wp-content目录下面的wp-config.php ,advanced-cache.php两个文件。
⑤修改wp-config.php,把这一行删掉:define(‘WP_CACHE’, ‘true’);
⑥如果主机本来是用.htaccess文件的要改回来(网站根目录与wp-content/cache都有)
删除时要十分注意.htaccess一定要改回来,否则会导致内存消耗高等问题。
via http://coderschool.cn/1433.html