LNMP + Redis 部署 Discuz 5.0X 指南
测试环境部署指南
- 操作系统:openEuler 24.03
- Web 服务器:Nginx
- 数据库:MySQL Server
- PHP 版本:PHP + PHP-FPM
- 缓存服务:Redis
- 论坛系统:Discuz! X 5.0
文档说明
本指南基于 测试环境 编写,提供在 openEuler 24.03 操作系统上快速部署 LNMP + Redis + Discuz 5.0 的完整操作步骤。
前提条件
- openEuler 24.03 系统(已安装基础环境)
- 具有 root 权限
- 可访问互联网(用于 yum 安装软件包)
测试环境说明
- 本指南为测试环境部署,不涉及生产环境的安全加固
- 防火墙和 SELinux 配置已省略
- 开机自启配置为可选项目
一、系统准备
1.1 设置主机名
bash
hostnamectl set-hostname lnmp && bash
执行后,主机名将从默认名称更改为 lnmp,并自动刷新当前 shell 会话。
说明 :
&& bash表示设置完主机名后立即启动一个新的 bash shell,使新主机名在当前终端生效。如果不起作用,可以手动执行bash或重新登录系统。
二、安装 LNMP 环境
2.1 安装软件包
使用 yum(dnf)安装 Nginx、MySQL、PHP 及相关组件:
bash
yum install -y lrzsz mysql-server nginx redis php php-fpm php-mysqlnd php-xml
注意:openEuler 24.03 默认使用 dnf 包管理器,yum 命令会自动转发到 dnf,两者等效。
2.2 安装说明
| 软件包 | 说明 |
|---|---|
mysql-server |
MySQL 数据库服务器(openEuler 24.03 自带 MySQL 8.0) |
nginx |
Web 服务器 |
php |
PHP 解释器 |
php-fpm |
PHP FastCGI 进程管理器 |
php-mysqlnd |
MySQL Native Driver(PHP MySQL 驱动) |
php-xml |
PHP XML 扩展 |
redis |
Redis 服务器 |
lrzsz |
文件传输工具(支持 rz/sz 拖拽上传) |
2.3 验证安装
bash
# 查看已安装的软件版本
nginx -v
php -v
mysql --version
redis-server --version
三、启动服务
3.1 启动 Nginx 和 PHP-FPM
bash
systemctl start nginx php-fpm
3.2 验证服务状态
检查 Nginx 进程:
bash
netstat -anptu | grep nginx
输出示例:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx: master
检查 PHP-FPM 进程:
bash
ps aux | grep php-fpm
四、环境验证
4.1 创建 phpinfo 测试页面
bash
cd /usr/share/nginx/html/
rm -rf *
vim index.php
index.php 内容:
php
<?php
phpinfo();
?>
保存文件后,通过浏览器访问 http://服务器IP/index.php,应显示 PHP 信息页面。
4.2 创建 MySQL 连接测试页面
在 /usr/share/nginx/html/ 目录下创建 mysql_con.php:
bash
vim mysql_con.php
mysql_con.php 内容:
php
<?php
$servername = "localhost";
$username = "root";
$password = "";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "MySQL 连接成功!";
echo "<br>MySQL 版本: " . mysqli_get_server_info($conn);
?>
保存后,通过浏览器访问 http://服务器IP/mysql_con.php,应显示 "MySQL 连接成功!" 及版本信息。
五、部署 Discuz 5.0
5.1 启动 MySQL 服务
bash
systemctl start mysqld
5.2 上传 Discuz 安装包
使用 rz 命令或拖拽上传 upload.zip 安装包到 /usr/share/nginx/html/ 目录。
5.3 解压安装包
bash
cd /usr/share/nginx/html/
unzip upload.zip
5.4 进入 Discuz 目录
bash
cd /usr/share/nginx/html/upload
注意:具体目录名称取决于安装包的版本,解压后请确认目录结构。
六、Web 安装向导
6.1 设置目录权限(具体权限看安装包的版本,5.0可省略此步)
首先查看 PHP-FPM 运行用户:
bash
ps aux | grep php-fpm
输出示例(通常为 apache 用户):
root 1234 0.0 0.2 ... php-fpm: master process
apache 1235 0.0 0.1 ... php-fpm: pool www
apache 1236 0.0 0.1 ... php-fpm: pool www
设置目录权限:
bash
chown apache:apache ./ -R
6.2 执行安装
- 打开浏览器,访问:
http://服务器IP/upload/install/ - 按照安装向导逐步操作:
- 阅读并同意许可协议
- 环境检测(应全部通过)
- 配置数据库信息(库名、管理员密码等)
- 设置论坛管理员账户和密码
- 安装完成后,修改管理员密码等信息
6.3 安装向导详细说明
步骤 1:许可协议
直接点击"我同意"继续。
步骤 2:环境检测
系统会自动检测以下项目,确保全部显示绿色通过:
| 检测项 | 要求 |
|---|---|
| PHP 版本 | PHP 8.0+ |
| MySQL 连接 | 可用 |
| 目录权限 | 可写 |
| PHP 扩展 | xml、mysqlnd、gd 等 |
步骤 3:数据库配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
| 数据库服务器 | localhost | 本机安装保持默认 |
| 数据库端口 | 3306 | 默认端口 |
| 数据库名 | cz | 自定义,建议简短 |
| 数据库用户名 | root | 测试环境可用 root |
| 数据库密码 | 空 | 测试环境 root 默认无密码 |
| 表前缀 | pre_ | 建议保持默认 |
步骤 4:管理员设置
| 配置项 | 说明 |
|---|---|
| 管理员账号 | 自定义,默认 admin |
| 管理员密码 | 设置强密码 |
| 管理员邮箱 | 填写有效邮箱 |
步骤 5:完成安装
安装成功后,系统会提示删除 install 目录(测试环境可忽略)。
提示 :安装完成后,可通过
http://服务器IP/upload/访问论坛前台,通过http://服务器IP/upload/admin.php访问后台管理中心。
七、验证安装
7.1 检查配置文件
bash
cd /usr/share/nginx/html/upload/config
vim config_global.php
说明:所有在网页上修改的配置内容都会保存在此文件中。
7.2 数据库验证
在服务器上登录 MySQL,验证论坛数据是否正确写入:
bash
mysql -u root -p
sql
USE cz; -- 库名与安装时设置的库名一致
SHOW TABLES; -- 显示论坛数据表
SELECT * FROM pre_common_member; -- 查看注册用户列表
SELECT * FROM pre_common_member\G; -- 以详细格式查看用户信息
7.3 用户注册测试
- 在论坛前台页面注册一个新账号
- 返回 MySQL 执行查询,确认新用户已写入数据库
八、配置 Redis 缓存
8.1 修改 Redis 配置
bash
vim /etc/redis.conf
找到并修改以下配置:
conf
protected-mode no
说明:
- 默认值是
protected-mode yes- 改为
no后允许非本地连接访问 Redis- 测试环境可以关闭,生产环境建议保持开启并配置密码
快速修改命令:
bash
# 备份配置文件
cp /etc/redis.conf /etc/redis.conf.bak
# 修改配置
sed -i 's/^protected-mode yes/protected-mode no/' /etc/redis.conf
8.2 启动 Redis 服务
bash
systemctl start redis
8.3 验证 Redis 服务
bash
# 检查 Redis 状态
systemctl status redis
# 测试 Redis 连接
redis-cli ping
# 应该返回:PONG
# 查看 Redis 信息
redis-cli info
8.4 配置 Discuz Redis 连接
编辑 Discuz 配置文件:
bash
vim /usr/share/nginx/html/upload/config/config_global.php
找到 $_config['memory'] 段,配置 Redis 连接参数:(仅该为本机ip地址为步骤即可)
php
$_config['memory']['redis']['server'] = '127.0.0.1';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 0;
$_config['memory']['redis']['timeout'] = 1;
$_config['memory']['redis']['password'] = '';
$_config['memory']['redis']['serializer'] = 1;
将内存驱动改为 Redis:(此步骤可省略)
php
$_config['memory']['driver'] = 'redis';
九、安装 PHP Redis 扩展
9.1 安装编译工具和依赖
bash
yum install -y php-devel php-pear gcc make
9.2 使用 PECL 安装 Redis 扩展
bash
pecl install redis
安装过程中会提示配置选项,直接按回车使用默认值即可(共 4-5 个选项)。
一键自动安装:如果不想手动按回车,可以使用:
bashyes "" | pecl install redis
9.3 启用 Redis 扩展
bash
echo "extension=redis.so" >> /etc/php.ini
9.4 重启 PHP-FPM
bash
systemctl restart php-fpm
9.5 验证 Redis 扩展
bash
# 方法一:命令行检查
php -m | grep redis
# 方法二:访问 phpinfo 页面
# 浏览器访问 http://服务器IP/index.php
# 在页面中搜索 "redis",应该能看到 redis 扩展信息
注意 :如果
php -m | grep redis没有输出,请检查/etc/php.ini是否正确添加了extension=redis.so。
十、验证 Redis 集成
10.1 使用 redis-cli 验证
bash
redis-cli keys *
执行后应显示 Discuz 缓存在 Redis 中的所有键值,证明 Redis 与 Discuz 集成成功。
10.2 验证项汇总
| 验证项 | 预期结果 |
|---|---|
http://IP/index.php |
显示 PHP 信息页面 |
http://IP/mysql_con.php |
显示 "MySQL 连接成功!" |
http://IP/upload/install/ |
Discuz 安装向导可正常访问 |
mysql 查询 |
可查看到论坛数据表和用户信息 |
redis-cli keys * |
显示 Redis 中的缓存数据 |
附录
附录 A:常用命令汇总
服务管理
bash
systemctl start nginx # 启动 Nginx
systemctl start php-fpm # 启动 PHP-FPM
systemctl start mysqld # 启动 MySQL
systemctl start redis # 启动 Redis
systemctl restart nginx # 重启 Nginx
systemctl restart php-fpm # 重启 PHP-FPM
systemctl restart mysqld # 重启 MySQL
systemctl restart redis # 重启 Redis
systemctl status nginx # 查看 Nginx 状态
systemctl status php-fpm # 查看 PHP-FPM 状态
systemctl status mysqld # 查看 MySQL 状态
systemctl status redis # 查看 Redis 状态
文件操作
bash
cd /usr/share/nginx/html/ # 进入网站目录
chown apache:apache ./ -R # 设置文件所有者
unzip upload.zip # 解压安装包
ls -la # 查看目录内容
数据库操作
bash
mysql -u root -p # 登录 MySQL
SHOW DATABASES; # 显示所有数据库
USE 库名; # 选择数据库
SHOW TABLES; # 显示数据表
SELECT * FROM 表名; # 查询表数据
Redis 操作
bash
redis-cli # 进入 Redis 客户端
redis-cli keys * # 查看所有键
redis-cli flushall # 清空所有数据
附录 B:关键文件路径
| 用途 | 路径 |
|---|---|
| 网站根目录 | /usr/share/nginx/html/ |
| Discuz 安装目录 | /usr/share/nginx/html/upload/ |
| Discuz 配置文件 | /usr/share/nginx/html/upload/config/config_global.php |
| Nginx 配置 | /etc/nginx/ |
| Redis 配置 | /etc/redis.conf |
| PHP 配置 | /etc/php.ini |
附录 C:常见问题
Q1:PHP-FPM 无法连接 MySQL
解决 :确认已安装 php-mysqlnd 包,并重启 PHP-FPM 服务。
Q2:Redis 连接失败
解决:
- 确认 Redis 服务已启动:
systemctl start redis - 确认
protected-mode no已配置 - 检查
config_global.php中的 Redis 地址是否正确
Q3:页面显示 502 Bad Gateway
解决:
- 检查 PHP-FPM 是否运行:
ps aux | grep php-fpm - 检查 Nginx 错误日志:
tail -f /var/log/nginx/error.log - 重启 PHP-FPM 和 Nginx
Q4:目录权限不足
解决:
bash
chown apache:apache /usr/share/nginx/html/upload/ -R
chmod 755 /usr/share/nginx/html/upload/ -R
附录 D:生产环境注意事项
以下内容仅供学习参考,生产环境部署时请额外注意:
-
安全加固
- 设置 MySQL root 强密码
- 配置防火墙规则(iptables/firewalld)
- 配置 SELinux
- 使用 HTTPS
-
性能优化
- 配置 Nginx 缓存
- 优化 MySQL 配置参数
- 配置 Redis 持久化
- 设置服务开机自启
-
数据备份
- 定期备份 MySQL 数据库
- 备份 Discuz 配置文件和上传文件
附录 E:一键部署脚本
以下脚本可在新系统中快速完成 LNMP 环境部署:
bash
#!/bin/bash
# LNMP + Redis 环境一键部署脚本(测试环境)
# 适用于 openEuler 24.03
# 使用方法:chmod +x deploy_lnmp.sh && ./deploy_lnmp.sh
set -e # 遇到错误立即退出
echo "===== 设置主机名 ====="
hostnamectl set-hostname lnmp
echo "===== 安装软件包 ====="
yum install -y lrzsz mysql-server nginx redis php php-fpm php-mysqlnd php-xml
echo "===== 启动服务 ====="
systemctl start nginx php-fpm mysqld redis
echo "===== 创建测试页面 ====="
rm -rf /usr/share/nginx/html/*
cat > /usr/share/nginx/html/index.php << 'EOF'
<?php
phpinfo();
?>
EOF
cat > /usr/share/nginx/html/mysql_con.php << 'EOF'
<?php
$conn = new mysqli("localhost", "root", "");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "MySQL 连接成功!<br>版本: " . mysqli_get_server_info($conn);
?>
EOF
echo "===== 配置 Redis ====="
# 备份原配置文件
cp /etc/redis.conf /etc/redis.conf.bak
# 修改 protected-mode
sed -i 's/^protected-mode yes/protected-mode no/' /etc/redis.conf
systemctl restart redis
echo "===== 安装 PHP Redis 扩展 ====="
yum install -y php-devel php-pear gcc make
# 自动应答 pecl install redis 的所有问题(全部使用默认值)
yes "" | pecl install redis
echo "extension=redis.so" >> /etc/php.ini
systemctl restart php-fpm
echo ""
echo "===== 部署完成 ====="
echo "请访问: http://服务器IP/index.php"
echo "请上传 upload.zip 到 /usr/share/nginx/html/ 并解压"
echo ""
echo "验证命令:"
echo " php -m | grep redis # 检查 Redis 扩展"
echo " redis-cli ping # 测试 Redis 连接"
使用方法:
bash
# 1. 保存脚本到文件
vim deploy_lnmp.sh
# 粘贴上述内容,保存退出
# 2. 添加执行权限
chmod +x deploy_lnmp.sh
# 3. 执行脚本
./deploy_lnmp.sh
# 4. 执行完成后刷新 shell(使主机名生效)
bash
说明:
yes "" | pecl install redis会自动应答所有问题,使用默认配置set -e确保任何命令失败时脚本立即停止- 脚本执行后需要手动上传
upload.zip并解压
附录 F:验证检查清单
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| Nginx 运行 | systemctl status nginx |
active (running) |
| PHP-FPM 运行 | systemctl status php-fpm |
active (running) |
| MySQL 运行 | systemctl status mysqld |
active (running) |
| Redis 运行 | systemctl status redis |
active (running) |
| Nginx 监听 | `netstat -anptu | grep :80` |
| PHP 信息 | 浏览器访问 /index.php |
显示 PHP 信息表格 |
| MySQL 连接 | 浏览器访问 /mysql_con.php |
显示连接成功 |
| Redis 连接 | redis-cli ping |
PONG |
| Redis 扩展 | `php -m | grep redis` |
| Discuz 安装 | 浏览器访问 /upload/install/ |
安装向导页面 |
| Redis 缓存 | redis-cli keys * |
显示缓存键 |
附录 G:快速命令参考
bash
# ===== 服务管理 =====
systemctl start nginx php-fpm mysqld redis # 启动所有服务
systemctl restart nginx php-fpm mysqld redis # 重启所有服务
systemctl status nginx php-fpm mysqld redis # 查看所有服务状态
# ===== 查看日志 =====
tail -f /var/log/nginx/error.log # Nginx 错误日志
tail -f /var/log/mysqld.log # MySQL 日志
tail -f /var/log/redis/redis.log # Redis 日志
# ===== 测试连接 =====
mysql -u root -e "SHOW DATABASES;" # 测试 MySQL
redis-cli ping # 测试 Redis
php -r "echo phpversion();" # 测试 PHP
# ===== 文件权限 =====
chown -R apache:apache /usr/share/nginx/html/upload/ # 设置权限
find /usr/share/nginx/html/upload/ -type d -exec chmod 755 {} \; # 目录权限
find /usr/share/nginx/html/upload/ -type f -exec chmod 644 {} \; # 文件权限
文档信息
| 项目 | 内容 |
|---|---|
| 文档类型 | 测试环境部署指南 |
| 操作系统 | openEuler 24.03 |
| 论坛系统 | Discuz! X 5.0 |
| 最后更新 | 2026年4月13日 |
本指南根据实际部署操作流程编写,适用于测试环境验证。