Discuz 容器化部署
Discuz 容器化部署
🛠 环境准备
确保系统已安装 Docker 和 Docker Compose。以RockyLinux 8.10为例,
1
2
# 安装 Podman & Podman-Compose
dnf install -y podman podman-compose
📁 目录结构
本例子以 ~/discuz 作为工作目录。在工作目录下创建 html 和 mysql 两个子目录:
1
mkdir -p ~/discuz/html ~/discuz/mysql
从 https://www.discuz.vip/download 下载的 Discuz_X3.5_SC_UTF8_20250205.zip ,解压后复制 upload 目录中的所有文件到 html 目录:
1
2
unzip Discuz_X3.5_SC_UTF8_20250205.zip
cp -r upload/* ~/discuz/html/
🐳 Dockerfile 配置
在 html 目录下创建 Dockerfile,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用官方 PHP 镜像作为基础镜像
FROM php:8.2-apache
# 安装 PHP 扩展和依赖
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli \
&& a2enmod rewrite
# 设置文档根目录
COPY . /var/www/html
# 设置工作目录
WORKDIR /var/www/html
📦 Docker Compose 配置
在工作目录下创建 docker-compose.yml,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: '3'
services:
web:
build: ./html
container_name: discuz_web
ports:
- "8080:80"
volumes:
- ./html:/var/www/html
depends_on:
- mysql
mysql:
image: mysql:8.0
container_name: discuz_mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=ultrax
- MYSQL_USER=discuz
- MYSQL_PASSWORD=discuz
volumes:
- ./mysql:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "discuz", "-pdiscuz"]
interval: 5s
timeout: 5s
retries: 5
🚀 启动服务
在工作目录下执行以下命令启动服务:
1
2
cd ~/discuz
docker-compose up -d
此命令会启动 Discuz! 的 Web 服务和 MySQL 数据库服务。
🌐 访问安装界面
在浏览器中访问 http://<服务器 IP="">:8080/install,即可进入 Discuz! 的安装界面。服务器>
📝 安装步骤
阅读并同意授权协议:点击“我同意”继续。
环境检测:系统会自动检查环境配置,确保满足安装要求。
选择安装类型:选择“全新安装 Discuz! X3.5(含 UCenter Server)”。
配置数据库信息:
- 数据库服务器地址:mysql
- 数据库名:ultrax
- 数据库用户名:root
- 数据库密码:root
设置管理员账号:填写管理员用户名和密码。
开始安装:点击“安装”按钮,系统会自动完成安装过程。
完成安装:安装完成后,系统会提示安装成功。
部分截图如下:
✅ 安装完成
安装完成后,您可以通过 http://<服务器 IP="">:8080 访问您的 Discuz! 论坛。服务器>
🔐 安全建议
- 删除安装目录:安装完成后,为了安全起见,建议删除 install 目录。
- 设置文件权限:确保论坛目录的权限设置正确,避免出现权限问题。
- 定期备份:定期备份数据库和论坛文件,以防数据丢失。
如有疑问,欢迎留言。
This post is licensed under CC BY 4.0 by the author.