Home > Backend Development > PHP Tutorial > 博客小站启用静态化

博客小站启用静态化

WBOY
Release: 2016-06-20 12:30:03
Original
1365 people have browsed it

我本人对网站速度要求不高,通常页面打开耗时只要不超过10秒,我都不会介意。但自己博客最近出了几次事让我有点郁闷,一次是因为攻击导致资源消耗过高,博客被网管强制停机。另一次是因为谷歌字体的某些问题,导致所有页面打开之后迟迟无法加载完毕。虽然之后找了360网站卫士做庇护,但终归不是长久之计,将网站静态化的想法冒了上来。

我以为玩独立博客上了些年头的站长们都应该懂什么叫静态化的,见昨天方室网志的阿福对此还不明所然。我在此解释一下,类似Wordpress的网站(依赖数据库的网站)展现一个页面,需要后台的从收到请求开始——从数据库抽取文章、评论等数据——数据交给服务器的PHP模块合成标准格式网页文件——传网页文件送至客户端渲染。客户端渲染之后才是我们看到的网页。其中影响网站打开速度的环节主要:主机数据库性能、主机PHP模块合成网页文件的速度。带宽也有一定影响,但考虑到个人博客通常都是一些文字信息,文件不多,这点影响不大。

所谓网站静态化,就是提前将网页合成,存在临时仓库。访客有请求的时候直接从仓库拿出传送,不用再到后方数据库、PHP生产车间匆匆忙忙“制造”网页。这极大提高了博客响应速度,缺点是网页上有如文章阅读次数、最新评论留言等动态信息时,静态缓存需要额外的JS才能实现实时更新,好在最新的插件都能给出很好的解决方案。

WordPress静态化之后,与Jekyll等纯静态博客的区别。在我看来纯静态博客完全不需要数据库,是本地生成标准格式网页之后,上传空间就OK了。而Wordpress的静态化是由服务主机生成网页,静态后速度性能对比,Jekyll之类的纯静态网站快是毋庸置疑。而Wordpress则要看具体静态的方式。就我使用的WP Super Cache这个插件来说,如果使用了推荐的mod_rewrite 缓存模式,通过写入htaccess配置,调节好参数,缓存文件生成之后,性能对比来说相差不大。纯静态博客缺点是无法支持评论,要实现评论得依赖第三方服务(这意味着博主无法自由管理访客留言)。而Wordpress静态化之后,有评论提交会自动刷新缓存,两者对比各有千秋。

网上有很多关于Wordpress伪静态的文章,甚至有说WP Super Cache并非真静态,而后又介绍其他可以实现真正静态的插件。在我看来这些都是概念混淆,目的为了推广其他静态化插件罢了。伪静态只不过是修改了文章固定链接,现在主机一般都会支持,但固定链接格式对性能没啥影响,说白了还是等于没有静态。说什么真静态,Wordpress与纯静态博客本来就是两个不同的东西,无法相提并论。但WP Super Cache作为Wordpress官方团队出品的静态化插件,无论是性能、个性配置,支持力度上都毋庸置疑。说它并非真静态的,只能说是那个家伙非但自己不懂,还要混淆视听,对此我只能呵呵!

WP Super Cache也不是没有缺点,总的来说它门槛有点高,故网上很多建议小流量博客不推荐使用。因为配置不好,效果打折不说,卸载起来还会牵扯到htaccess以及wp-config.php。总的来说比较麻烦,说白就是技术不到家的话,用了吃力未必能讨好。倘若用对了,博客速度就能有质的提升,其中利害掂量得看各位自己了。

使用方法,网上教程很多,我只给出提醒要注意的地方。

一、保证wp-content目录有读写权限,同时,保证Wordpress根目录的wp-config.php和.htaccess文件也有写入权限,最好全站程序备份一次。

二、你安装激活之后可以首先启用插件的测试,如果提示:页面不相符!时间戳有差异或者不存在!说明缓存没有生效。这时候就需要检查插件或则主题是否有冲突。检查办法就是排除法。先将其他插件全部停掉再测试,或则换回官方主题再测试。缓存生效的页面源代码底部是有如“Cached page generated by WP-Super-Cache on 2016-05-02 09:42:42”字样标注该静态页面生成时间。

特别提醒:这里换官方主题,指的是未经修改过的默认主题。有些朋友会自己修改主题,但是增加的某些代码可能是导致这个问题的原因。已经确认了是自己之前使用的主题的问题,那需要切换回之前的主题,并仔细检查主题的所有文件。尤其需要注意的是functions.php,header.php等文件。查看文件之中是否包含有压缩功能的函数;或者不正确使用的PHP的ob_start函数。可以通过搜索zip或者ob_start等关键词进行搜索。搜索之后,可以先尝试屏蔽(或者删除,删除之前请做好备份)相应代码,然后重新进行测试缓存功能(记得先删除原来的缓存)。

三、插件能正常启用的话,就是开始下面的配置了。首先是启用推荐的mod_rewrite 缓存模式。如果主机不支持的话启用PHP 缓存模式也可,普通模式就不推荐了。启用之后,在高级选项卡里边,推荐配置是

1、当有新文章或页面的发布或更新时清除之前的缓存文件。(这个选项一定要取消勾选。否则一旦发布新文章,以前的所有的缓存文件都会消失不见,非常影响网站访问速度和SEO效果。)

2、移动设备支持。(使用自适应主题的这个可以取消勾选,否则缓存里会多出大量不必要的mobile.html之类的缓存文件。为手机页面单独设置了主题的就可以勾选。)

3、压缩页面以便让来访者更快浏览。(网站支持压缩的话,就勾选吧。谁不喜欢速度快的网站呢?但要注意,部分主机虽然也支持,但勾选之后,预缓存生成会连续失败,还出现网站首页第一次访问会空白等等,总之就是有点小问题。所以此项必须谨慎)

4、不要为已知用户缓存。(最好不要勾选。因为已知用户也需要生成和读取缓存,总之有缓存最好了!)

5、让已知用户匿名使他们浏览的内容是缓存文件。(勾选。原理同上,一切以缓存为中心。)

6、当某页面有新评论时,只刷新该页面的缓存。(勾选。否则的话,来一个评论就刷新所有页面的缓存,真的太费劲了。)

7、设置对“搜索”页面以及“feed”订阅页面设置排除在外。免得每次搜索都激活一个缓存页面,很浪费空间。

四、开启预缓存,勾选预缓存模式并立即加载预缓存。这样不管有无访问激活,都可以给所有公开网页生成静态页面备用。至于缓存过期时间,对个人博客而言我建议是设置为0,禁用缓存过期。

最后,插件本身也支持CDN,使用了七牛加速服务的可以考虑配置。如果不想让静态网页文件通过七牛的,也请留心排除html等对应的静态化网页文件。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template