WordPress 作为世界上最流行的博客建站软件,不管是从界面还是功能上来说都非常成熟,不过有一点比较遗憾,Wordpress 建立的主要是动态网站页面,其性能消耗比较大,用 WordPress 建立较大的网站,对服务器端资源占用较多,而很多时候,我们需要的是一个完全静态的网站。完全静态的网站只有 HTML 文件,对服务器资源消耗极低,很多地方提供免费托管静态网站的服务,因此静态网站运行成本非常低,此外,静态网站安全性很好,几乎没有什么可攻击的漏洞,相比动态网站来说,不必过于操心安全问题,在访问上,即时访问量非常大,静态网站也可以很好地支撑,基本上不会有什么性能问题。那么,如何将一个 WordPress 网站完全静态化呢?下面我就讲一下方法。
在 WordPress 的“设置”>>“固定链接”里,将固定链接设置为“自定义结构”,文章的标题结尾增加.html,这样文章页面显示出来就和静态页面一样,但是目录和标签还是动态页面。之后,关闭 WordPress 的评论功能,在“设置”>>“讨论”里,选择“自动关闭发布 1 天后的文章上的评论功能”。如果 WordPress 内的文章数目小于 1000,可以安装一个名为 Simply Static 插件即可在短时间内生成静态网站,并提供下载,这很简单,无需多说。
不过,如果文章数目大于 5000 篇,比如数万篇文章,那么,使用 Simply Static 插件生成 html 的时候,通常会报错,因为一般的网站服务器会在 php 上设置了超时和内存限制。我们通常的解决办法是,在本地搭建一个 php 环境,修改 php 超时时间和内存大小,例如对于 Windows 系统来说,可以选择安装一个名为“宝塔面板”的软件,快速配置一个 WAMP 环境,安装好了后,修改环境里 php 超时时间和内存大小,这时候使用 Simply Static 插件就不会报错了。
即时如此,对于文章数过万的 WordPress 来说,Simply Static 插件生成网站的速度过慢,几乎要好几个小时,这里我们推荐使用另一个静态化插件:WP2Static 插件。
在 WP2Static 插件里,修改 Crawl Increment 的数量为 100 以上的数值,可以有效提高页面生成速度,不过我在使用 WP2Static 插件的时候,也发现一些问题,通过多次调试才生成成功。
1、首页分页目录缺失,首页的 page 只生成了几个,其他分页没有生成,我的解决方法是,安装一个名为 WP-PageNavi 的插件,在插件里设置“显示多少页数”的数字为页面数最大值,这样就可以把首页分页都生成出来。
2、目录页缺失,目录页只生成了一页,我的解决方法是,在“Deploy static website”里,选择“Subdirectory on current server”,这样就可以把网站生成到本地一个目录下,之后,在 Crawling 选项里,把 Detection level 中的三个选项都跑一遍,这样的话就可以生成全部的目录页和文章页。
经过这些处理后,我们就在最终目录下得到了一个完全静态的网站的 html 文件,然后我们将这些 html 文件发布到目标网站,就可以得到一个完全静态的网站,这个静态网站不需要 WordPress 的其他 php 代码,能支撑大流量访问,基本没有安全隐患和漏洞,除了更新麻烦之外,其他方面和原有 WordPress 几乎完全一样,是一个低成本高质量部署网站的好方法。