1.3 下载、安装与目录权限配置

从下载到装完,把权限和报错一次性理顺。

1.3.1 去哪儿下载

官网下载页在同一站点挂的开放平台 open.dismall.com,交流社区 dismall.com,应用中心(插件、模板市场)addon.dismall.com。开源仓库在 gitee 的 Discuz/DiscuzX,但默认分支是 X3.5,要 X5.0 请去官网下载页拿正式包。压缩包里有两个关键项:upload 目录(要上传到网站根目录的全部文件)和 X5.0.sh 脚本。

1.3.2 两种安装方式

方式一:手工上传,最稳。 把 upload 目录里面的文件(不是 upload 目录本身)上传到网站根目录,然后用浏览器访问站点域名,安装向导会自动出现。

方式二:X5.0.sh 自动脚本,适合有 SSH 权限的站长。 它的机制是自动下载 X5.0 程序并安装到你的网站目录,省掉手工传文件、传漏文件的问题:

# 1) 下载脚本到网站目录
cd /www/wwwroot/your-site
wget https://www.discuz.vip/X5.0.sh

# 2) 先看一遍脚本内容再执行,别盲跑网上下载的 sh
cat X5.0.sh

# 3) 授权并执行
chmod +x X5.0.sh
./X5.0.sh

执行前必须先做完这些,否则脚本会中断或装出问题:网站目录建好、数据库已创建、PHP 已装且版本在 8.0 以上。脚本跑完会提示安装页地址,浏览器打开继续走向导。

1.3.3 安装向导六步

步骤 页面 要填什么 容易踩的坑
1 授权协议 勾选同意 版本号和手上的包对不上就别继续
2 环境检测 一般无需操作 PHP 版本与扩展(gd、mysqli 等)缺失要在这里补上
3 数据库配置 服务器地址、库名、库用户、库密码、表前缀 库用户权限要给足
4 管理员设置 管理员账号、密码、邮箱 邮箱填真实的,找回密码靠它
5 安装完成 提示清理安装锁 / 进入后台 别忘了这步的清理提示
6 登录后台 访问 admin.php 首次进入先改站点名和默认模板

表前缀顺手解释一句:Discuz! 所有数据表都带前缀,安装时默认 cdb_,实际可以改。作用是让你在同一台服务器的同一个数据库里装多个站而不冲突。没别的站就保持默认,有的话改成 mybbs_ 之类。

1.3.4 目录权限:Linux 与 Windows 的差别

这是新手最容易卡住的一段。核心概念只有一句:Discuz! 有一部分目录需要在运行期被 PHP 写入,PHP 进程对不上写权限就会报 500 或"目录不可写"。

Linux 下权限属于 www-data(或 nginx/apache 用户)这个系统用户,chmod 就是改文件对某类用户的读写执行权限。Windows 下没有 Unix 那套模型,通常用「文件夹属性 → 安全 → 高级 → 更改文件夹内容的所有者」把所有者改成 IIS 匿名用户 IIS_IUSRS,或干脆给 Everyone 完全控制——图省事的小站可以直接这么做。

安装向导本身会做一次写入自检,逐个探测哪些目录写不进去并明确报出来。以向导的检测结果为准,别自己瞎猜。

1.3.5 哪些目录需要可写

路径 用途 是否需要可写
config/ 存放 config_global.php 等全局配置 需要,安装时写入
data/ 缓存、日志、附件 需要
data/cache/ 模板编译缓存、数据缓存 需要
data/log/ 运行日志 需要
data/attachment/ 用户上传的附件与图片 需要,且要留足空间
data/plugindata/ 插件数据、插件语言包 需要
source/plugin/ 插件安装目录 需要,装插件时会写文件
upload/ 上传目录 安装后一般不再写入
template/ 模板目录 一般不需要,改模板走后台上传
source/ 等代码目录 程序文件 不需要,保持只读更安全

Linux 下的一次性处理命令(以宝塔 / /www/wwwroot 布局为例):

cd /www/wwwroot/your-site

# 需要写的目录统一给权限
chmod -R 755 config data source/plugin
chmod -R 777 data data/cache data/log data/plugindata data/attachment config

# 确认 PHP 进程用户,避免 chown 错对象
ps -eo user,comm | grep php

# 确认当前属主与权限
ls -ld data data/cache

755 是"其他人可读可执行、属主可写",777 是"所有人可写"。生产环境用 777 属于权宜之计——跑顺之后应把目录属主改成 PHP 进程用户、再收到 755,安全得多。面板环境另有一套规则,别把上面的命令硬套上去。

1.3.6 常见报错速查

报错现象 原因 处理
打开域名 500,无任何提示 目录不可写,或 PHP 版本 < 8.0 查 PHP 版本;按上表放开 config、data 权限
提示数据库连接失败 地址/库名/账号密码错,或库用户无权限 用命令行连一次验证;给库用户授全部权限
提示数据库版本不支持 MySQL < 5.7 或 MariaDB < 10.2 升级数据库,别降 PHP 去迁就数据库
表已存在 / 数据库不是空 之前装过没清干净 换库名或换表前缀
提示 data/ 不可写 权限或磁盘满 chmod;顺便 df -h 看磁盘是否已满
后台能进,首页白屏 模板缓存编译失败 后台 → 界面 → 更新缓存,清 data/cache
附件上传失败 data/attachment 不可写或 PHP 禁了上传 放权限;检查 upload_max_filesize
中文显示成问号 库和表字符集不是 utf8mb4 重建库,指定 utf8mb4

排查顺序有个小技巧:先看 PHP 错误日志,再看访问日志,最后才怀疑程序。 Nginx 日志一般在 /var/log/nginx/error.log,或 PHP 配置里 error_log 指向的位置。Discuz! 自己的运行日志在 data/log/ 下,也是重要线索。

1.3.7 安装后必做的五件事

  1. 改管理员密码。 安装时设的密码不进加密就落在库里了,这条不是客套话。
  2. 做一份完整备份再动手。 后面装插件、改模板全靠这份备份回滚。备份要含数据库 + 网站目录两部分,只备一个都不够。
  3. 关闭调试、把开发模式收回。 config/config_global.php 里检查开发者模式开关,生产站不该开着。
  4. 设置伪静态。 不配的话 URL 是一长串 forum.php?mod=viewthread&tid=123,难看、不利于 SEO,见 1.4.1。
  5. 配置邮箱(SMTP)。 X5.0 的邮件发送改由插件接管,先把 SMTP 插件配上,再去后台配发信服务器;不然注册验证邮件发不出去,这是新站最常见的"第一天就卡住"的点。

这五件事按顺序做完站点才算能用。顺序别调换:备份永远在前,改密码永远在能进后台之后。