适用场景
本指南适用于以下场景:
你有一台云服务器,操作系统为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 操作步骤
登录1Panel面板
在左侧菜单栏,点击 “容器” → “配置”
找到 “镜像加速” 输入框
将默认的加速地址替换为以下任一可用地址:
https://docker.1panel.live
https://docker.m.daocloud.io
https://docker.mirrors.ustc.edu.cn
点击 “确认” 保存
在页面左上角点击 “重启” 按钮,重启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
在1Panel左侧菜单,点击 “应用商店”
在搜索框中输入 redis
找到Redis应用,点击 “安装”
在安装弹窗中,系统会自动生成一个密码。请务必保存好这个密码 ,后续配置需要用到
点击 “确认” 开始安装
4.2 安全配置(重要!)
Redis安装完成后,请立即执行以下操作 :
在云服务器的安全组/防火墙中,删除或关闭 允许6379端口入站的规则
在1Panel的Redis参数配置中,将 “端口外部访问” 开关关闭
为什么要这样做? Redis默认没有强身份验证机制,如果6379端口暴露在公网,任何人都可以尝试连接你的Redis服务,存在严重的安全风险,可能导致数据被窃取或服务器被入侵。
4.3 验证Redis是否正常运行
在1Panel的 “应用商店” → “已安装” 列表中,确认Redis的状态显示为 “已启动” 。如果状态为”失败”,点击查看日志排查问题。
第五部分:安装WordPress
5.1 在应用商店安装WordPress
在1Panel左侧菜单,点击 “应用商店”
搜索 wordpress
找到WordPress应用,点击 “安装”
填写安装信息:
端口 :保持默认(如8964),或自定义一个未被占用的端口
数据库 :可以选择已有数据库,或让系统自动创建新的数据库
管理员账号 :设置WordPress管理员的用户名和密码(请妥善保存)
点击 “确认” 开始安装
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中创建网站
在1Panel左侧菜单,点击 “网站” → “网站”
点击 “创建网站” 按钮
在创建页面中:
配置项 填写内容 说明 类型 “运行环境” 不要选”反向代理”或其他类型 分组 Default 保持默认 主域名 [你的域名]填入你已解析到服务器IP的域名 PHP运行环境 选择 “PHP8” 选择第三部分创建的那个环境
点击 “确认” 创建网站
6.2 配置反向代理
我们不需要在网站目录中重新安装WordPress,而是将域名请求反向代理到已有的WordPress容器。
在网站列表中找到刚创建的网站,点击 “配置” 按钮
进入 “反向代理” 选项卡
点击 “创建” 或 “添加” 按钮
填写代理信息:
配置项 填写内容 说明 前端请求路径 /匹配所有请求 后端代理地址 http://[WordPress容器名]:80注意是用80端口,不是宿主机映射的端口
点击 “确认” 保存,然后点击 “保存并重载” 让配置生效
6.3 验证反向代理是否成功
在浏览器中访问 http://[你的域名],如果能看到WordPress页面,说明反向代理配置成功。
常见问题排查:
现象 可能原因 解决方法 502 Bad Gateway 后端代理地址端口写错了 改为容器内部端口80,而非宿主机映射端口 ERR_SSL_PROTOCOL_ERROR 用HTTPS访问但没有配置证书 先用HTTP访问测试,后续再配置SSL Connection refused WordPress容器未启动 检查WordPress容器状态
第七部分:在WordPress容器中安装Redis扩展
WordPress容器自带PHP环境,但这个环境里没有安装Redis扩展 。我们需要进入容器内部,手动安装。
7.1 进入WordPress容器终端
在1Panel左侧菜单,点击 “容器”
在容器列表中找到WordPress容器(名称中包含 wordpress)
点击该容器最右侧的 “终端” 按钮
进入终端后,会看到命令提示符(通常是 # 或 $)
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后台启用缓存
进入WordPress管理后台(http://[你的域名]/wp-admin)
在左侧菜单点击 “插件” → “安装插件”
搜索 “Redis Object Cache” ,安装并启用
安装完成后,进入 “设置” → “Redis”
点击 “启用对象缓存” 按钮
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插件状态
进入WordPress后台
点击左侧菜单 “设置” → “Redis”
查看以下信息:
检查项 正常状态 说明 Status 已连接 表示WordPress已成功连接到Redis Redis Version 显示具体版本号(如8.10.1) 表示连接正常且读取到了Redis信息 PhpRedis 显示版本号(如6.3.0) 表示PHP Redis扩展已加载 Client PhpRedis (v6.x.x) 表示正在使用PhpRedis客户端 Drop-in Valid 表示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官方文档或相关技术社区获取帮助。