有一个网站,文章即将突破100万+,前端、后台都极其卡顿,尤其是在搜素文章的时候,CPU陡升。网上找了一些优化教程,最后实验下来,最有效的终极方案是Opcache+Memcached+WP Rocket组合,加上用Relevanssi Search建立搜素索引。
如果是宝塔,直接在后台安装Opcache和Memcached即可,简单。以下以军哥的lnmp为例。
Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
安装
进入lnmp解压后的目录,执行:./memcached.sh
回车确认后就会自动安装memcache php扩展和memcached。
开启Memcached后需要将PHP Memcached 扩展object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/。
可以参看这篇文章:https://blog.wpjam.com/article/wordpress-memcached/
Opcache
opcache是php代码层缓存,memcached是数据层缓存。
此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。
安装
进入lnmp解压后的目录,执行:./opcache.sh
回车确认后就会自动安装opcache。
最后是安装WP Rocket,网上有相关的破解版。
Relevanssi Search
2022.5.15 update:文章量级超过百万了,Relevanssi Search也不能满足了,直接上Elasticsearch解决wordpress搜索难题。
直接在wordpress后台搜素Relevanssi Search插件并且启用设置。
这个组合,对于文章量级比较大的wordpress站点,优化效果非常明显。
关于宝塔面板安装Opcache+Memcached
宝塔会经常容易漏掉Memcached的PHP扩展。有人说要先安装Memcached的PHP扩展,再安装Memcached,否则不起作用,我没有验证过。正确保险的安装顺序是:
- 宝塔软件商店中,找到已经安装的PHP7.4 – – – 安装扩展,安装Opcache和Memcached
- 软件商店中安装Memcached
- 将object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/
另外,如果同台服务器有多个wordpress站点,应该怎么同时使用 Memcached?参考:https://m.wpjam.com/m/memcached-for-sites-in-same-host/
参考:https://www.dazhuanlan.com/2020/01/17/5e213a18be00e/
WordPress其他优化技巧:https://tlanyan.pp.ua/wordpress-performance-optimization/