分类: 教程

  • 在1Panel上搭建WordPress并配置Redis对象缓存:完整操作指南

    适用场景

    本指南适用于以下场景:

    • 你有一台云服务器,操作系统为Ubuntu 20.04 LTS或更高版本
    • 你已经在服务器上安装了1Panel面板
    • 你想在1Panel上搭建WordPress博客,并配置Redis缓存来提升网站性能

    本指南将从头到尾带你完成每一步操作,并在关键步骤后提供验证方法,确保你走在正确的路上。

    第一部分:准备工作

    1.1 确保服务器环境就绪

    在开始之前,请确认以下条件:

    • 你的域名已解析到服务器的公网IP地址(如果还没有域名,可以先使用服务器IP地址进行测试)
    • 服务器安全组/防火墙已开放80和443端口(用于HTTP/HTTPS访问)
    • 你已通过SSH或1Panel内置终端连接到服务器
    • 1Panel面板已安装并可以正常访问

    1.2 了解本文的约定

    本文中,以下约定请知悉:

    • 凡是出现 [你的域名] 的地方,请替换为你自己的实际域名
    • 凡是出现 [随机后缀] 的地方,表示该名称是系统自动生成的,每次安装都不同
    • 凡是涉及密码的地方,统一用 [你的密码] 代替,请根据实际情况填写

    第二部分:配置Docker镜像加速

    为什么这一步很重要? 1Panel的所有应用(OpenResty、MySQL、PHP、Redis、WordPress等)都是通过Docker拉取镜像来安装的。如果Docker镜像加速地址配置不当,会导致所有应用安装失败。这一步务必优先完成。

    2.1 操作步骤

    1. 登录1Panel面板
    2. 在左侧菜单栏,点击 “容器” → “配置”
    3. 找到 “镜像加速” 输入框
    4. 将默认的加速地址替换为以下任一可用地址:
      • https://docker.1panel.live
      • https://docker.m.daocloud.io
      • https://docker.mirrors.ustc.edu.cn
    5. 点击 “确认” 保存
    6. 在页面左上角点击 “重启” 按钮,重启Docker服务

    2.2 验证是否配置成功

    在服务器终端执行以下命令:

    docker info | grep -A 1 "Registry Mirrors"

    如果输出中显示了你配置的镜像加速地址,说明配置成功。

    常见问题: 如果保存后仍然拉取失败,可以尝试在终端手动拉取一个测试镜像来验证:

    docker pull hello-world

    如果能成功拉取,说明镜像加速配置已生效。

    第三部分:创建PHP运行环境

    WordPress需要PHP环境来运行。1Panel支持创建多个独立的PHP运行环境,我们可以创建一个专门用于WordPress的环境,并预先配置好所需扩展。

    3.1 进入PHP管理页面

    在1Panel左侧菜单,点击 “网站” → “运行环境”,然后点击 “创建运行环境” 按钮。

    3.2 填写基础信息

    配置项填写内容说明
    名称PHP8必须填写清晰规范的名称,不要填”Redis”或其他容易混淆的名称
    来源应用商店保持默认
    镜像1panel-php:8.4.6选择8.4.x版本,较新且稳定
    PHP扩展源根据网络环境选择国内服务器建议选阿里云或中国科学技术大学镜像源

    3.3 选择扩展模板

    在 “扩展模版” 下拉菜单中,选择 “WordPress”。系统会自动推荐适合WordPress的扩展组合。

    3.4 勾选PHP扩展(关键步骤)

    在 “扩展” 列表中,勾选以下扩展:

    扩展名是否必须说明
    opcache✅ 必须PHP脚本加速,大幅提升执行效率
    redis✅ 必须用于连接Redis缓存(后续配置)
    imagick✅ 推荐图片处理,比GD效果更好
    igbinary✅ 推荐高效的序列化器,配合Redis使用
    bcmath⚠️ 可选某些高级插件(如WooCommerce)需要
    exif⚠️ 可选图片元数据处理
    intl⚠️ 可选国际化支持
    pdo_mysql✅ 必须数据库连接(WordPress核心依赖)
    mysqli✅ 必须数据库连接(WordPress核心依赖)
    gd⚠️ 可选基础图片处理(如果选了imagick,可不选)

    注意事项:

    • redis 扩展是后续配置Redis缓存的基础,务必勾选
    • 选择的扩展越多,构建镜像的时间越长,建议只勾选必要的扩展
    • 如果列表中没有 redis,可以手动输入 redis 然后从下拉列表中选择

    3.5 确认创建

    检查所有配置无误后,点击 “确认” 按钮。系统会开始构建PHP镜像,这个过程需要几分钟时间。

    3.6 验证是否创建成功

    创建完成后,在PHP运行环境列表中,应该能看到刚创建的PHP环境,状态列显示为 “正常”。

    如果状态显示为 “失败”,点击 “日志” 按钮查看具体错误信息。常见问题通常是镜像拉取失败,请返回第二部分检查镜像加速配置。

    第四部分:安装Redis服务

    4.1 在应用商店安装Redis

    1. 在1Panel左侧菜单,点击 “应用商店”
    2. 在搜索框中输入 redis
    3. 找到Redis应用,点击 “安装”
    4. 在安装弹窗中,系统会自动生成一个密码。请务必保存好这个密码,后续配置需要用到
    5. 点击 “确认” 开始安装

    4.2 安全配置(重要!)

    Redis安装完成后,请立即执行以下操作:

    1. 在云服务器的安全组/防火墙中,删除或关闭允许6379端口入站的规则
    2. 在1Panel的Redis参数配置中,将 “端口外部访问” 开关关闭

    为什么要这样做? Redis默认没有强身份验证机制,如果6379端口暴露在公网,任何人都可以尝试连接你的Redis服务,存在严重的安全风险,可能导致数据被窃取或服务器被入侵。

    4.3 验证Redis是否正常运行

    在1Panel的 “应用商店” → “已安装” 列表中,确认Redis的状态显示为 “已启动”。如果状态为”失败”,点击查看日志排查问题。

    第五部分:安装WordPress

    5.1 在应用商店安装WordPress

    1. 在1Panel左侧菜单,点击 “应用商店”
    2. 搜索 wordpress
    3. 找到WordPress应用,点击 “安装”
    4. 填写安装信息:
      • 端口:保持默认(如8964),或自定义一个未被占用的端口
      • 数据库:可以选择已有数据库,或让系统自动创建新的数据库
      • 管理员账号:设置WordPress管理员的用户名和密码(请妥善保存)
    5. 点击 “确认” 开始安装

    5.2 等待安装完成

    安装过程需要几分钟,期间会创建数据库、下载WordPress文件、配置Web服务器。安装完成后,状态会显示为 “已启动”。

    5.3 记录容器名称

    在1Panel的 “容器” 列表中,找到刚安装的WordPress容器。记录下它的完整名称(例如 1Panel-wordpress-[随机后缀]),后续配置中会用到。

    5.4 验证WordPress是否正常运行

    在浏览器中访问 http://[服务器IP]:[WordPress端口](例如 http://123.45.67.89:8964),如果能看到WordPress的安装向导或登录页面,说明WordPress已成功安装。

    第六部分:配置域名与反向代理

    6.1 在1Panel中创建网站

    1. 在1Panel左侧菜单,点击 “网站” → “网站”
    2. 点击 “创建网站” 按钮
    3. 在创建页面中:
    配置项填写内容说明
    类型“运行环境”不要选”反向代理”或其他类型
    分组Default保持默认
    主域名[你的域名]填入你已解析到服务器IP的域名
    PHP运行环境选择 “PHP8”选择第三部分创建的那个环境
    1. 点击 “确认” 创建网站

    6.2 配置反向代理

    我们不需要在网站目录中重新安装WordPress,而是将域名请求反向代理到已有的WordPress容器。

    1. 在网站列表中找到刚创建的网站,点击 “配置” 按钮
    2. 进入 “反向代理” 选项卡
    3. 点击 “创建” 或 “添加” 按钮
    4. 填写代理信息:
    配置项填写内容说明
    前端请求路径/匹配所有请求
    后端代理地址http://[WordPress容器名]:80注意是用80端口,不是宿主机映射的端口
    1. 点击 “确认” 保存,然后点击 “保存并重载” 让配置生效

    6.3 验证反向代理是否成功

    在浏览器中访问 http://[你的域名],如果能看到WordPress页面,说明反向代理配置成功。

    常见问题排查:

    现象可能原因解决方法
    502 Bad Gateway后端代理地址端口写错了改为容器内部端口80,而非宿主机映射端口
    ERR_SSL_PROTOCOL_ERROR用HTTPS访问但没有配置证书先用HTTP访问测试,后续再配置SSL
    Connection refusedWordPress容器未启动检查WordPress容器状态

    第七部分:在WordPress容器中安装Redis扩展

    WordPress容器自带PHP环境,但这个环境里没有安装Redis扩展。我们需要进入容器内部,手动安装。

    7.1 进入WordPress容器终端

    1. 在1Panel左侧菜单,点击 “容器”
    2. 在容器列表中找到WordPress容器(名称中包含 wordpress)
    3. 点击该容器最右侧的 “终端” 按钮
    4. 进入终端后,会看到命令提示符(通常是 # 或 $)

    7.2 安装编译工具和依赖

    在容器终端中依次执行以下命令:

    # 更新软件包列表
    apt-get update
    
    # 安装编译所需的工具
    apt-get install -y gcc make autoconf
    
    # 安装PECL(PHP扩展管理工具)
    apt-get install -y php-pear

    7.3 编译安装Redis扩展

    pecl install redis

    执行后,系统会下载Redis扩展源码并进行编译。编译过程中会询问一些配置选项:

    enable igbinary serializer support? [no] :
    enable lzf compression support? [no] :
    enable zstd compression support? [no] :
    enable msgpack serializer support? [no] :
    enable lz4 compression? [no] :
    use system liblz4? [yes] :

    全部直接按回车键,使用默认值即可。

    编译过程需要1-3分钟,CPU占用会短暂上升,属正常现象。

    如果一切顺利,最终会看到如下输出:

    Build process completed successfully
    Installing ... redis.so
    install ok: channel://pecl.php.net/redis-6.3.0

    7.4 启用Redis扩展

    # 创建配置文件,启用redis扩展
    echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini
    
    # 验证扩展是否安装成功
    php -m | grep redis

    如果输出 redis,说明扩展已成功加载。

    7.5 重启Apache

    service apache2 restart

    重启后,Apache会加载新安装的Redis扩展。执行此命令后终端可能会断开连接(这是正常的,因为Apache重启会中断当前进程),重新连接即可。

    第八部分:配置Redis连接

    Redis扩展安装完成后,WordPress还需要知道如何连接到Redis服务器。

    8.1 获取Redis容器的名称

    在1Panel的 “容器” 列表中,找到Redis容器,记录它的完整名称(例如 1Panel-redis-[随机后缀])。

    8.2 获取Redis密码

    在1Panel的 “应用商店” → “已安装” → 找到Redis → 点击 “参数”,查看或复制Redis密码。

    8.3 编辑wp-config.php文件

    在WordPress容器终端中执行:

    cd /var/www/html

    然后用以下命令查看 wp-config.php 文件的内容,找到 /* That's all, stop editing! Happy publishing. */ 这行注释:

    cat wp-config.php

    在这行注释之前,添加以下配置:

    # 在容器终端中执行以下命令,将配置插入到文件末尾(在注释之前)
    cat >> wp-config.php << 'EOF'
    define('WP_REDIS_HOST', '1Panel-redis-[随机后缀]');
    define('WP_REDIS_PORT', 6379);
    define('WP_REDIS_PASSWORD', '[你的Redis密码]');
    EOF

    请将 1Panel-redis-[随机后缀] 替换为实际的Redis容器名称,将 [你的Redis密码] 替换为实际的Redis密码。

    8.4 验证配置是否写入

    执行以下命令,确认配置已正确写入:

    grep WP_REDIS /var/www/html/wp-config.php

    应该能看到类似输出:

    define('WP_REDIS_HOST', '1Panel-redis-[随机后缀]');
    define('WP_REDIS_PORT', 6379);
    define('WP_REDIS_PASSWORD', '********');

    第九部分:处理object-cache.php文件

    这是确保Redis缓存正常工作的最关键一步。

    9.1 在WordPress后台启用缓存

    1. 进入WordPress管理后台(http://[你的域名]/wp-admin)
    2. 在左侧菜单点击 “插件” → “安装插件”
    3. 搜索 “Redis Object Cache”,安装并启用
    4. 安装完成后,进入 “设置” → “Redis”
    5. 点击 “启用对象缓存” 按钮

    9.2 启用后报错的解决方法

    点击”启用对象缓存”后,网站可能会报错(显示”Error establishing a Redis connection”)。这是正常的,因为生成的 object-cache.php 文件未能正确读取 wp-config.php 中的配置。

    解决方法: 直接在 object-cache.php 文件中定义连接常量。

    在WordPress容器终端中执行:

    cd /var/www/html
    
    # 先恢复网站访问(删除有问题的文件)
    rm -f wp-content/object-cache.php
    service apache2 restart

    然后在 object-cache.php 文件的开头插入常量定义:

    # 让WordPress重新生成object-cache.php
    # 回到WordPress后台,再次点击"启用对象缓存"
    # 网站会再次报错,然后执行以下命令

    或者直接手动创建完整的配置:

    cat > wp-content/object-cache.php << 'EOF'
    <?php
    /**
     * Redis Object Cache Drop-in
     */
    
    // 定义Redis连接参数(如果wp-config.php中已定义则不会覆盖)
    if ( ! defined( 'WP_REDIS_HOST' ) ) {
        define( 'WP_REDIS_HOST', '1Panel-redis-[随机后缀]' );
    }
    if ( ! defined( 'WP_REDIS_PORT' ) ) {
        define( 'WP_REDIS_PORT', 6379 );
    }
    if ( ! defined( 'WP_REDIS_PASSWORD' ) ) {
        define( 'WP_REDIS_PASSWORD', '[你的Redis密码]' );
    }
    
    // 加载插件本身的object-cache逻辑
    // 这个文件会被WordPress自动加载,无需额外代码
    EOF
    
    service apache2 restart

    9.3 一键修复方案

    如果你希望用最简洁的方式修复,可以在容器终端执行以下命令组合:

    cd /var/www/html
    
    # 备份原文件
    cp wp-content/object-cache.php wp-content/object-cache.php.bak 2>/dev/null || true
    
    # 在文件开头插入常量定义
    sed -i '/^<?php/a \
    if ( ! defined( "WP_REDIS_HOST" ) ) {\
        define( "WP_REDIS_HOST", "1Panel-redis-[随机后缀]" );\
    }\
    if ( ! defined( "WP_REDIS_PORT" ) ) {\
        define( "WP_REDIS_PORT", 6379 );\
    }\
    if ( ! defined( "WP_REDIS_PASSWORD" ) ) {\
        define( "WP_REDIS_PASSWORD", "[你的Redis密码]" );\
    }' wp-content/object-cache.php
    
    service apache2 restart

    第十部分:验证最终结果

    10.1 检查网站是否正常访问

    在浏览器中访问 http://[你的域名],确保网站可以正常打开。

    10.2 检查Redis插件状态

    1. 进入WordPress后台
    2. 点击左侧菜单 “设置” → “Redis”
    3. 查看以下信息:
    检查项正常状态说明
    Status已连接表示WordPress已成功连接到Redis
    Redis Version显示具体版本号(如8.10.1)表示连接正常且读取到了Redis信息
    PhpRedis显示版本号(如6.3.0)表示PHP Redis扩展已加载
    ClientPhpRedis (v6.x.x)表示正在使用PhpRedis客户端
    Drop-inValid表示object-cache.php文件有效

    10.3 检查缓存是否生效

    在 “设置” → “Redis” 页面中:

    • 点击 “指标” 选项卡,查看缓存命中率
    • 如果看到 Cache Hits 和 Cache Misses 的数据,说明缓存正在工作

    10.4 快速验证缓存是否工作

    打开浏览器的隐身模式或无痕模式,访问网站首页几次,然后回到Redis指标页面,观察 Cache Hits 的数字是否在增长。如果增长,说明缓存确实在发挥作用。

    10.5 完整的诊断信息示例

    一个正常工作的Redis缓存,其诊断信息应该类似于:

    Status: 已连接
    Client: PhpRedis (v6.3.0)
    Drop-in: Valid
    PhpRedis: 6.3.0
    PHP Version: 8.3.33
    Redis Version: 8.10.1
    WP_REDIS_HOST: "1Panel-redis-[随机后缀]"
    WP_REDIS_PORT: 6379
    WP_REDIS_PASSWORD: ••••••••

    第十一部分:常见问题速查

    Q1:PHP环境创建失败,状态显示”失败”

    可能原因: Docker镜像拉取失败
    解决方法: 检查镜像加速配置(第二部分),更换可用的加速地址,然后重新创建

    Q2:创建网站时找不到之前创建的PHP环境

    可能原因: 创建PHP环境时名称填写不规范,或选错了创建入口
    解决方法: 在”网站”→”运行环境”中创建,名称填写清晰(如PHP8),不要填”Redis”等应用名称

    Q3:反向代理配置后出现502错误

    可能原因: 后端代理地址端口写错了
    解决方法: 将端口从宿主机映射端口改为容器内部端口(通常是80)

    Q4:Redis扩展安装失败,提示找不到phpize

    解决方法: 先安装 php-dev 包:

    apt-get install -y php8.3-dev

    Q5:启用Redis缓存后网站打不开

    解决方法: 删除 object-cache.php 文件恢复网站:

    rm -f /var/www/html/wp-content/object-cache.php
    service apache2 restart

    然后检查 wp-config.php 中的Redis连接配置是否正确,再重新启用。

    Q6:Redis连接失败,提示”NOAUTH Authentication required”

    解决方法: 在 wp-config.php 或 object-cache.php 中添加 WP_REDIS_PASSWORD 常量定义。

    附录:完整的检查清单

    在结束之前,请逐项确认:

    • Docker镜像加速已配置并生效
    • PHP运行环境已创建,状态为”正常”
    • PHP环境中已勾选 redis、opcache 等必需扩展
    • Redis服务已安装并启动
    • Redis的6379端口未暴露到公网
    • WordPress已通过应用商店安装并运行
    • 域名网站已创建,类型为”运行环境”
    • 反向代理已配置,后端代理地址使用了正确的容器内部端口
    • 域名可以正常访问WordPress
    • WordPress容器中已通过PECL安装Redis扩展
    • php -m | grep redis 输出 redis
    • wp-config.php 中已配置 WP_REDIS_HOST、WP_REDIS_PORT
    • object-cache.php 文件中已定义Redis连接常量
    • WordPress后台Redis插件状态显示”已连接”
    • Redis插件诊断信息中 PhpRedis 显示为已加载状态

    以上就是从零开始搭建WordPress并配置Redis对象缓存的完整操作指南。按照本指南的步骤操作,每一步都有验证方法,确保你始终走在正确的轨道上。如果在实践过程中遇到本指南未涵盖的问题,欢迎查阅1Panel官方文档或相关技术社区获取帮助。