Discuz! X 是国内历史最悠久、社区最成熟的开源论坛程序,至今仍是搭建中文社区论坛的首选方案之一。本文基于 Discuz! X3.5(官方版),在 Debian/Ubuntu + Nginx + MySQL + PHP 环境下,完整演示从下载到论坛上线的全流程,并附常见报错解决方案。

本文要点

  • LNMP 环境准备与 PHP 扩展安装
  • 下载并上传 Discuz 源码
  • 配置 Nginx 虚拟主机与伪静态
  • 完成 Discuz 安装向导
  • 基础安全设置与 SEO 优化
  • 常见报错与解决方法

环境准备

Discuz X3.5 对环境的要求:

组件最低版本推荐
PHP7.48.1 / 8.2
MySQL5.78.0
PHP 扩展gd, curl, mbstring, xml全部安装
内存256MB512MB+

安装必要的 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 安装向导:

  1. 同意协议,检查目录权限(确保全部为绿色可写状态)
  2. 选择"全新安装"
  3. 填写数据库信息(服务器 localhost,库名 discuz,用户名 dzuser
  4. 设置表前缀(建议改为自定义,如 dz2024_
  5. 设置管理员账号、密码、邮箱
  6. 点击下一步,等待安装完成

安装完成后,删除 install 目录:

rm -rf /var/www/discuz/install

安装后必须删除 install 目录

install 目录不删除,任何人都可以重新安装并覆盖你的论坛数据。安装向导完成后请立即执行删除命令。

开启伪静态(SEO 友好链接)

登录 Discuz 后台 → 全局SEO 设置,在"伪静态"选项卡中,开启论坛伪静态,选择 Nginx 模式。Nginx 规则已在上面的配置中写入,保存后刷新论坛验证链接格式是否变更为 /thread-xxx-1-1.html

常见报错与解决

报错原因解决方法
安装时目录权限显示红色目录所有者非 www-datachown -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 官方文档的开放平台接入说明。