在试着试用插件 w3 total cache 来给网站加一点基础的缓存,优化下访问速度. 后来发现, 官方的 wordpress image, 默认是不包含 php 的redis和memcached extension的, 导致网站无法与部署 redis 或者 memcached container 真正通信. 想要开启这些 extension,就需要自定义一个 image. 刚好, 我前一段研究过.最终的 Dockerfile 如下:

FROM wordpress:latest
USER root
 
# 安装 php extension. ref: https://github.com/mlocati/docker-php-extension-installer
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
 
RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions redis memcached

私有image托管, 我目前用的是 Github 提供的 免费镜像服务器. 私有, 免费, 足够满足我的需要了. 如果只是自用的话, 可以参照这里配置下:

剩下的就是: 在 compose.yaml 中, 将 WP 的image 改成自己的image, 然后把 redis 和 memcached 添加上, 就可以了:

services:
  redis:
    image: 'redis:alpine'
    restart: always
    expose:
      - 6379
    volumes:
      - redis:/data
  # memcached 是内存存储, 不需要设置volumes
  memcached:
    image: 'memcached:alpine'
    restart: always
    expose:
      - 11211

插件配置完, 记得还需要去设置页, 改下 host 地址. 我们是container, 直接用对应的容器名就行.

引导页的 测试结果, 仅供参考. 因为我发现在刚开始根本就没配置好 redis 和 memcached的时候, 它也能给一个结果. 我推测: 大概率是基于某种规则, 直接给出的数据,并不是真正进行了测试.

暂时只用基础版. 不想太折腾. PC版本, 效果很明显; 手机端, 略有提升. 不过我主要是用PC, 手机端暂时先不管了.

如果以后后续进一步优化, 应该会参考这个 Google的页面速度分析工具. 目前初步看, 手机端可能和我用的 博客主题, 有某种关联.

整个过程中, 倒也没有很繁杂的点. 给我印象最深的是: 为了解决docker中 安装 php extension 过于繁杂的问题, 竟然有人专门做了一个脚本, 真的是帮了我大忙.想加什么扩展, 加个参数,重新打包image 部署下就可以了.