适用场景
本指南适用于以下场景:
- 你有一台云服务器,操作系统为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.livehttps://docker.m.daocloud.iohttps://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输出rediswp-config.php中已配置WP_REDIS_HOST、WP_REDIS_PORTobject-cache.php文件中已定义Redis连接常量- WordPress后台Redis插件状态显示”已连接”
- Redis插件诊断信息中
PhpRedis显示为已加载状态
以上就是从零开始搭建WordPress并配置Redis对象缓存的完整操作指南。按照本指南的步骤操作,每一步都有验证方法,确保你始终走在正确的轨道上。如果在实践过程中遇到本指南未涵盖的问题,欢迎查阅1Panel官方文档或相关技术社区获取帮助。