在稳定可靠的 CentOS 服务器上部署 Discuz! X3.4 论坛系统,是许多站长和社区管理者的首选方案,CentOS 以其卓越的稳定性和安全性,为 Discuz! 提供了一个理想的运行环境,本文将详细介绍如何在 CentOS 系统上,通过搭建 LNMP(Linux, Nginx, MySQL, PHP)环境来完整部署 Discuz! X3.4,涵盖从环境准备、程序安装到后续优化的全过程,旨在提供一份清晰、实用且结构化的部署指南。

环境准备:LNMP 栈的搭建
在开始安装 Discuz! 之前,必须确保服务器上已经正确配置了 LNMP 环境,这是所有后续工作的基础。
系统与核心组件版本建议
- 操作系统: CentOS 7.x 或 8.x(推荐使用较新的稳定版)
- Web 服务器: Nginx 1.18+
- 数据库: MySQL 5.7+ 或 MariaDB 10.3+
- 脚本语言: PHP 7.3 或 7.4(Discuz! X3.4 对 PHP 8 的兼容性可能不完全,建议使用 7.x 系列)
PHP 扩展要求
Discuz! 运行需要依赖一系列 PHP 扩展,安装前务必检查并启用它们,可以使用 php -m 命令查看已安装的扩展。
| 扩展名称 | 作用描述 |
|---|---|
mysqli |
用于连接 MySQL 数据库 |
gd |
用于图像处理,如验证码、头像缩放 |
curl |
用于支持远程数据获取和API通信 |
openssl |
用于支持 HTTPS 和加密功能 |
mbstring |
用于处理多字节字符串(如中文) |
json |
用于支持 JSON 格式数据交换 |
fileinfo |
用于更好地获取文件信息(MIME类型) |
exif |
用于读取图片的 EXIF 信息 |
可以使用 yum 或 dnf 包管理器一键安装,yum install php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-curl php74-php-openssl php74-php-mbstring php74-php-json php74-php-fileinfo。
Discuz! X3.4 详细安装步骤
环境准备就绪后,我们就可以开始正式安装 Discuz! 论坛程序了。
下载与解压程序
从 Discuz! 官方网站获取最新的 X3.4 版本程序包(通常为 Discuz_X3.4_SC_UTF8.zip),通过 wget 命令下载至服务器,然后解压到 Nginx 的网站根目录(通常为 /usr/share/nginx/html 或 /var/www/html)。
# 下载程序包 wget http://example.com/path/to/Discuz_X3.4_SC_UTF8.zip # 解压 unzip Discuz_X3.4_SC_UTF8.zip -d /usr/share/nginx/html/
解压后,会在网站根目录下生成一个 upload 文件夹,该文件夹包含了 Discuz! 的所有核心文件,为了方便访问,可以将其重命名或将其内的文件移动到根目录。
配置文件与目录权限
这是安装过程中最关键的一步,权限配置不正确将导致安装向导无法写入配置文件和数据,需要将 Discuz! 程序目录的所有者设置为 Nginx 的运行用户(通常是 nginx 或 www-data),并设置特定的目录为可写状态。

# 假设网站根目录为 /usr/share/nginx/html,且程序文件在其中 chown -R nginx:nginx /usr/share/nginx/html
需要将以下目录设置为 777 权限,以确保 Web 服务器进程拥有读写权限。
| 目录名称 | 所需权限 | 命令示例 |
|---|---|---|
config/ |
777 | chmod 777 config/ |
data/ |
777 | chmod 777 data/ |
uc_client/ |
777 | chmod 777 uc_client/ |
uc_server/ |
777 | chmod 777 uc_server/ |
template/ |
777 | chmod 777 template/ |
创建数据库与用户
为了安全起见,不建议使用 root 用户直接连接数据库,应为 Discuz! 创建一个独立的数据库和用户。
登录到 MySQL 命令行:mysql -u root -p
然后执行以下 SQL 命令:
CREATE DATABASE discuz_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'discuz_user'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON discuz_db.* TO 'discuz_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
请将 your_strong_password 替换为一个足够安全的密码。
Web 服务器配置(Nginx)
配置 Nginx 使其能够正确解析 Discuz! 的 URL 和处理 PHP 请求,在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,如 discuz.conf。
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或IP
root /usr/share/nginx/html; # 网站根目录
index index.php index.html index.htm;
# URL 重写规则,对 Discuz! 伪静态至关重要
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP 处理
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000; # 或 unix:/run/php-fpm/www.sock,根据你的PHP-FPM配置
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置完成后,使用 nginx -t 检查语法,无误后重载 Nginx:systemctl reload nginx。
运行 Web 安装向导
在浏览器中访问你的域名或服务器 IP,系统会自动跳转到安装向导页面(http://your_domain.com/install/index.php),按照页面提示,依次完成:

- 环境检查:确认所有目录权限和 PHP 扩展都检测通过。
- 设置运行环境:选择全新安装。
- 数据库配置:填入刚才创建的数据库名、用户名和密码。
- 管理员设置:创建论坛的超级管理员账号。
完成安装后,系统会提示你删除 install 目录,请务必执行此操作,以消除安全隐患。
rm -rf /usr/share/nginx/html/install
至此,你的 Discuz! X3.4 论坛已成功在 CentOS 服务器上部署完成。
相关问答 (FAQs)
安装过程中,目录权限检查失败怎么办?
解答:这是最常见的问题,请确认你已经使用 chown -R 命令将整个网站目录的所有者修改为 Nginx 运行用户(如 nginx),请仔细核对上文中列出的需要设置为 777 权限的目录(config/, data/, uc_client/, uc_server/, template/),确保它们确实拥有读写执行权限,可以使用 ls -ld 目录名 命令查看权限详情,如果问题依旧,请检查 SELinux 是否处于 Enforcing 模式,可以尝试临时关闭(setenforce 0)再进行安装,若成功则需配置 SELinux 策略而非完全关闭。
论坛安装完成后,部分页面无法打开,或者显示 404 Not Found 错误,是什么原因?
解答:这通常是 Nginx 的 URL 重写规则配置不当导致的,请检查你的 Nginx 配置文件(discuz.conf)中的 location / { ... } 部分,确保 try_files 指令正确配置,本文提供的 try_files $uri $uri/ /index.php?$query_string; 是一个通用且有效的规则,如果仍然无效,可以查看 Nginx 的错误日志(通常位于 /var/log/nginx/error.log),日志中会提供更详细的错误信息,帮助你定位问题所在,确保在 Discuz! 后台的全局->SEO设置中,正确勾选并提交了对应的伪静态规则。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!