Discuz! X 是国内历史最悠久、社区最成熟的开源论坛程序,至今仍是搭建中文社区论坛的首选方案之一。本文基于 Discuz! X3.5(官方版),在 Debian/Ubuntu + Nginx + MySQL + PHP 环境下,完整演示从下载到论坛上线的全流程,并附常见报错解决方案。
本文要点
- LNMP 环境准备与 PHP 扩展安装
- 下载并上传 Discuz 源码
- 配置 Nginx 虚拟主机与伪静态
- 完成 Discuz 安装向导
- 基础安全设置与 SEO 优化
- 常见报错与解决方法
环境准备
Discuz X3.5 对环境的要求:
| 组件 | 最低版本 | 推荐 |
|---|---|---|
| PHP | 7.4 | 8.1 / 8.2 |
| MySQL | 5.7 | 8.0 |
| PHP 扩展 | gd, curl, mbstring, xml | 全部安装 |
| 内存 | 256MB | 512MB+ |
安装必要的 PHP 扩展:
apt install -y php8.1-gd php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip php8.1-mysql
systemctl restart php8.1-fpm创建数据库
mysql -u root -p
CREATE DATABASE discuz DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dzuser'@'localhost' IDENTIFIED BY '此处填强密码';
GRANT ALL PRIVILEGES ON discuz.* TO 'dzuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;下载并部署 Discuz
从官方 Gitee 仓库获取 Discuz X3.5:
mkdir -p /var/www/discuz
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git /tmp/discuz_src
cp -r /tmp/discuz_src/upload/* /var/www/discuz/
chown -R www-data:www-data /var/www/discuz注意 upload 目录
Discuz 压缩包解压后有 upload/ 和 readme/ 两个子目录,Web 服务器根目录应指向 upload/ 里面的内容,不要将整个项目目录作为网站根目录。
配置 Nginx 虚拟主机
nano /etc/nginx/sites-available/discuz填入以下配置(包含 Discuz 专用伪静态规则):
server {
listen 80;
server_name your-domain.com www.your-domain.com;
root /var/www/discuz;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* /(data|uc_server/data)/{ deny all; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# Discuz 伪静态
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=viewthread&tid=$1&extra=page=$3 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=forumdisplay&fid=$1&page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /home.php?mod=space&$1=$2 last;
rewrite ^/([a-z]+[a-z0-9_]*)-([a-z0-9_]+)\.html$ /plugin.php?id=$1:$2 last;
}ln -s /etc/nginx/sites-available/discuz /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx运行安装向导
在浏览器访问 http://你的IP/install/,进入 Discuz 安装向导:
- 同意协议,检查目录权限(确保全部为绿色可写状态)
- 选择"全新安装"
- 填写数据库信息(服务器
localhost,库名discuz,用户名dzuser) - 设置表前缀(建议改为自定义,如
dz2024_) - 设置管理员账号、密码、邮箱
- 点击下一步,等待安装完成
安装完成后,删除 install 目录:
rm -rf /var/www/discuz/install安装后必须删除 install 目录
install 目录不删除,任何人都可以重新安装并覆盖你的论坛数据。安装向导完成后请立即执行删除命令。
开启伪静态(SEO 友好链接)
登录 Discuz 后台 → 全局 → SEO 设置,在"伪静态"选项卡中,开启论坛伪静态,选择 Nginx 模式。Nginx 规则已在上面的配置中写入,保存后刷新论坛验证链接格式是否变更为 /thread-xxx-1-1.html。
常见报错与解决
| 报错 | 原因 | 解决方法 |
|---|---|---|
| 安装时目录权限显示红色 | 目录所有者非 www-data | chown -R www-data /var/www/discuz,然后刷新页面 |
| 数据库连接失败 | 用户名/密码/库名错误 | 核对 MySQL 用户权限,用命令行测试连接 |
| 上传附件失败 | data/attachment 目录无写权限 | chmod -R 775 /var/www/discuz/data/attachment |
| 论坛帖子 URL 404 | 伪静态规则未生效 | 确认 Nginx 重写规则已加载,nginx -t 检查语法 |
开启注册防护
Discuz 新论坛务必开启注册验证码(后台 → 用户 → 注册)和发帖频率限制,否则极易被垃圾注册机器人刷帖。建议同时安装防灌水插件。
小结
- Discuz 安装向导完成后立即删除 install 目录
- Nginx 伪静态规则配置稍复杂,但对 SEO 有重要价值
- 开启注册验证码和发帖频率限制是防垃圾的基础设置
- 备份策略:数据库每日备份 + 文件每周备份
常见问题
Discuz X3.5 支持 PHP 8.x 吗?
官方版 Discuz X3.5 已适配 PHP 8.1/8.2,但部分第三方插件可能与 PHP 8 存在兼容问题,建议逐个测试插件。
安装 Discuz 需要多大的 VPS?
小型社区(日活百人以内)512MB 内存基本够用;中型社区(日活千人)建议 1–2GB 内存,并配置 Redis 缓存数据库查询。
Discuz 后台地址是什么?
默认后台地址为 /admin.php,使用安装时设置的管理员账号登录。
Discuz 能和微信公众号对接吗?
可以通过 UCCenter 和第三方插件实现微信登录和公众号绑定,具体配置参考 Discuz 官方文档的开放平台接入说明。