200字
「WordPress」轻量部署:Caddy&云数据库
2025-11-27
2025-11-27

这一次我们来尝试些不一样的,有没有设想过如果你有一台配置较低的VPS例如1C0.5G,这时候如果想体验完整的WordPress,光是安装MySQL就有可能压垮这台VPS,而近年来Aiven又提供了免费的MySQL数据库,为了使配置及占用简单到极致,我们还可以将Nginx换成Caddy。当然最适合低配VPS的还是hexo、hugo等静态站点,写本文纯粹是为了折腾和验证这套方案的可行性,玩玩就行,可千万不要作为实际生产哦!

部署后内存(含系统)占用200mb,迷你小鸡也可以尝试 WordPress !

Caddy 2+WordPress+Aiven (MySQL)+Redis 极简部署指南

核心优势

  • 极低负载:VPS 不需要运行最吃内存的 MySQL 进程,1C1G 的机器跑 PHP-FPM + Caddy 绰绰有余。

  • Caddy 加持:配置比 Nginx 简单十倍,自动续签 HTTPS。

前置准备

  1. 服务器:Debian 11或其他主流Linux发行版

  2. 域名:已解析到服务器 IP。

  3. Aiven 账号

    • 注册并创建一个 Free Tier MySQL 服务。

    • 获取连接信息:Host (地址), Port (端口), User (通常是 avnadmin), Password, Database (通常是 defaultdb)。

    • 注意:Aiven 强制要求 SSL 连接,WordPress 需要开启相关配置(下文会讲)。


WordPress本体安装

第一步:系统更新与基础环境

首先确保系统干净且最新。

apt update && apt upgrade -y
apt install -y git curl unzip gnupg2

第二步:安装 PHP 及 MySQL 驱动

推荐使用 PHP 8.2,它比旧版本性能更好且支持现代特性(Debian 12 默认源即包含此版本)。安装 php8.2-mysql 以连接数据库。由于没有本地数据库,PHP 及其扩展占用的资源非常少,同时安装 php-redis 备用。

  1. 添加 PHP 8.2 软件源 首先安装必要的依赖并添加 GPG 密钥和仓库地址:

    # 更新系统并安装添加源所需的工具
    apt update && apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
    
    # 添加 Sury PHP 源
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
    
    # 导入 GPG 密钥
    curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
    
    # 更新源列表
    apt update
  2. 安装 PHP 8.2 及其必要扩展 现在可以直接指定版本号进行安装:

    # 安装 PHP 及其必要扩展
    apt install -y php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-imagick php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl php-redis
  1. 关键检查: 确认 PHP-FPM 运行状态及 Socket 路径(Caddy 需要用):

    ls /run/php/php8.2-fpm.sock
    # 输出应显示:/run/php/php8.2-fpm.sock

第三步:安装 Caddy 2 Web 服务器

Caddy 会自动为你申请和续期 SSL 证书。

# 添加官方源
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list

# 安装
apt update
apt install caddy

第四步:部署 WordPress

# 创建目录
mkdir -p /var/www/wordpress
cd /var/www/wordpress

# 下载并解压
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz --strip-components=1
rm latest.tar.gz

第五步:配置 wp-config.php 连接 Supabase

这是最关键的一步。Aiven 是远程数据库,且强制 SSL,我们需要配置 WordPress 以支持 SSL 连接。

  1. 复制配置样本

    cd /var/www/wordpress
    cp wp-config-sample.php wp-config.php
  2. 编辑配置文件

    nano wp-config.php
  3. 填入 Aiven 信息: 找到数据库定义部分,替换为以下内容(请对照 Aiven 控制台填写):

    // --- Aiven MySQL 配置开始 ---
    define( 'DB_NAME', 'defaultdb' ); // Aiven 免费版默认库名通常是 defaultdb
    define( 'DB_USER', 'avnadmin' );  // 默认用户名
    define( 'DB_PASSWORD', '你的Aiven强密码' );
    
    // 注意:端口通常不是 3306,请仔细检查 Aiven 提供的 Host 和 Port
    define( 'DB_HOST', 'mysql-xxxxxxxx.aivencloud.com:端口号' );
    
    define( 'DB_CHARSET', 'utf8' );
    define( 'DB_COLLATE', '' );
    
    // --- 关键:开启 SSL 连接 ---
    // Aiven 强制 SSL,这一行必须加,否则连不上
    define( 'MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL );
    // --- 配置结束 ---
    
    // --- Redis 配置 (预埋,如果使用了Redis插件) ---
    define('WP_CACHE', true);
  1. 生成安全密钥: 访问 WordPress Salt Generator,将生成的内容覆盖配置文件中的 AUTH_KEY 等部分。

  2. 保存并退出 (Ctrl+O -> Enter -> Ctrl+X)。

第六步:权限修正

这步如果不做,你将无法上传图片,也无法安装插件。

chown -R www-data:www-data /var/www/wordpress
chmod -R 755 /var/www/wordpress

第七步:配置 Caddy 站点

编辑 Caddy 配置文件:

nano /etc/caddy/Caddyfile

清空原内容,填入以下内容(替换你的域名):

blog.example.com {
    # 网站根目录
    root * /var/www/wordpress

    # 启用 Gzip 压缩
    encode gzip

    # PHP 处理
    php_fastcgi unix//run/php/php8.2-fpm.sock

    # 静态文件服务
    file_server

    # 简单的日志
    log {
        output file /var/log/caddy/wordpress.log
    }
}

重启 Caddy:

systemctl reload caddy

现在,打开浏览器访问你的域名,你应该能直接看到 WordPress 的语言选择界面。

配置 Redis 本地缓存

因为数据库在云端(虽然 Aiven 很快,但毕竟有网络延迟),每次打开网页都要去云端查数据太慢了。Redis 能把查到的数据缓存在 VPS 本地内存里,下一个人访问时直接从本地内存读,速度会有质的飞跃。

为了防止 Redis 把内存吃光导致死机,需要进行一点“微调”。

第一步:安装 Redis 服务端

虽然我们在第一步里安装了 php-redis(这是 PHP 和 Redis 对话的驱动),但我们还没安装 Redis 本体

apt update
apt install redis-server -y

第二步:配置 Redis(防爆内存关键步骤)

这一步非常重要! 默认的 Redis 可能会吃光你的内存。要限制它最多只能用一小部分内存(比如 128MB,对 WordPress 对象缓存绰绰有余)。

编辑配置文件:

nano /etc/redis/redis.conf

Ctrl + W 搜索配置项,修改(或在文件末尾添加)以下两行:

  1. 限制内存: 找到 maxmemory(默认通常是被注释的),去掉 # 并改为:

    maxmemory 128mb

    (对于 0.5G 内存的 VPS,给 Redis 128MB 足够缓存成千上万个对象了)

  2. 设置淘汰策略: 当内存满了怎么办?我们要让它自动删除最旧的缓存。找到 maxmemory-policy,改为:

    maxmemory-policy allkeys-lru

保存并退出 (Ctrl+O -> Enter -> Ctrl+X)。

第三步:重启 Redis 并开机自启

systemctl restart redis-server
systemctl enable redis-server

检查是否运行正常(应该显示 Active: active (running)):

systemctl status redis-server

(按 q 退出查看)

第四步:在 WordPress 中启用缓存

现在后端准备好了,我们需要告诉 WordPress 去使用它。推荐使用业内最标准的插件:Redis Object Cache

  1. 登录 WordPress 后台。

  2. 进入 插件 -> 安装插件

  3. 搜索 Redis Object Cache (作者是 Till Krüss)。

  4. 安装并启用。

  5. 关键一步:启用后,点击插件界面的 "Enable Object Cache" 按钮。

第五步:验证是否生效

  1. 看状态: 在 WordPress 后台,点击 设置 -> Redis。 你应该看到 Status: Connected,并且下面的 KeyMemory 数据应该会有变化(不再是 0)。

  2. 看速度: 随意点击几个后台页面或前台文章。你会发现,第一次点可能稍微卡顿(因为在写入缓存),但第二次点击同样的页面,几乎是秒开,因为此时不需要去 Aiven 远程读数据库了,直接从本地内存读取。

「WordPress」轻量部署:Caddy&云数据库
作者
Liebesfreud
发表于
2025-11-27
License
CC BY-NC-SA 4.0