目录

Xiuno 论坛搭建 - Docker 篇:快速部署指南

一、概述

Xiuno 论坛是一款轻量、高效、易用的 PHP 开源论坛程序,适合个人开发者、小型团队快速搭建专属社区。

而 Docker 作为主流的容器化技术,能有效解决环境依赖复杂、部署繁琐、跨环境一致性差等问题,让 Xiuno 论坛的部署过程更简单、可复用。

本文将从零基础出发,一步步引导大家完成 Docker 环境下 Xiuno 论坛的搭建,包括 Docker 与 Docker Compose 的安装、Xiuno 镜像拉取、容器创建与配置、数据持久化设置等核心步骤。

最后,针对搭建过程中可能遇到的常见问题给出解决方案,帮助大家避开坑点,顺利完成部署。

这是我搭建的 xiuno 论坛,大家可以体验一下:五岁资源站

二、前期准备

(一)环境要求

  • 服务器:推荐 2 核 2G 及以上配置,操作系统为 CentOS 7/8、Ubuntu 18.04+ 等主流 Linux 发行版(本文以 Centos 7 为例);

  • 网络:服务器需开放 80 端口(HTTP)、443 端口(HTTPS,可选),确保能正常访问外网以拉取 Docker 镜像;

  • 权限:需拥有服务器 root 权限或 sudo 权限,用于执行安装和配置命令;

  • 依赖工具:Docker 19.03+、Docker Compose 2.0+(用于简化多容器管理,Xiuno 需搭配 MySQL 数据库,推荐使用)。

(二)Docker 与 Docker Compose 安装

具体安装步骤参考文章:Linux Centos、OpenCloud OS 安装 docker 教程 - 五岁博客

三、Docker 搭建 Xiuno 论坛

(一)下载仓库

下载 docker 版 xiuno 仓库,基于修罗/xiunoBBS的docker方案

GitHub - rayfalling/xiuno-docker: 基于修罗/xiunoBBS的docker方案

可以直接下载然后解压,也可以执行以下命令

git clone https://github.com/wanghaiwei/xiuno-docker.git

(二)初始化配置

进入代码仓库

cd xiuno-docker

解压官方包m解压目录为 xiuno

#如若修改了解压目录
#请对应修改docker-compose.yml中的目录映射
unzip xiunobbs-4.0.4.zip -d xiuno

解压后的目录名称为 xiuno ,这个很关键,千万别出错

创建环境变量

mv .env.example .env

修改对应配置项

vim .env

#如果修改了MYSQL_USER请同步修改 mysql/init-xiuno.sql
#数据库名在init-xiuno.sql中定义
#安装时需保持一直
#否则可能会导致数据库库读写权限问题

这里主要是 mysql、nginx 的一些配置

配置参考如下

环境变量名称 默认值 说明
NGINX_PORT 8018 nginx 暴露端口
DOCKER_NET 10.10.0.1/16 Docker 内部网段
MYSQL_SERVER_ADDRESS 10.10.100.1 MySQL 服务器地址
MYSQL_ROOT_PASSWORD 123456 MySQL root 密码
MYSQL_USER xiuno MySQL 普通用户名
MYSQL_PASSWORD 123456 MySQL 普通用户密码

(三)启动部署

目录下有个 docker-compose.yml 文件,通过这个文件会启动三个容器:

  • nginx : 用来接收外部请求,转发请求到 php-fpm

  • php-fpm:接收来自 nginx 的请求,执行 php 代码的处理

  • mysql:xiuno 论坛数据存储

执行以下命令启动部署:

docker-compose up -d

如果提示 docker-compose 命令不存在,则用 docker compose

等待启动完成即可

如果你不需要部署 mysql,已经有了 mysql,那么启动部署之前,可以做以下操作:

删除 docker-compose.yml 文件 中 mysql 的部署描述

删除代码块如下:

    mysql:
        build: ./mysql
        image: mysql:fixed-auth-latest
        expose:
            - "3306"
        # 环境变量
        environment:
            # mysql密码
            - MYSQL_ROOT_PASSWORD
            - MYSQL_USER
            - MYSQL_PASSWORD
        volumes:
            - "$PWD/mysql/data:/var/lib/mysql"
        networks:
            xiuno_net:               
                ipv4_address: $MYSQL_SERVER_ADDRESS
        container_name: "xiuno-mysql"

注意别删错了

然后执行命令启动部署即可。

(四)初始化数据库

启动部署成功之后,需要再初始化数据库(即便是已经存在的数据库也是需要的)

登录数据库

mysql -h 127.0.0.1 -P 3306 -uroot -p test
  • -P(大写):指定 MySQL 端口,默认 3306(小写-p是密码,不要混淆);
  • -u:指定用户名称,.env 里的 MYSQL_USER
  • -p:密码,.env 里的 MYSQL_PASSWORD

执行以下命令(创建数据库以及给 xiuno 用户授权)

# 删除已经存在的数据库(谨慎操作),如果你是重新部署,这个操作会导致之前论坛的数据丢失
DROP database IF EXISTS `xiuno4`;

# 创建数据库
create database `xiuno4` default character set utf8 collate utf8_general_ci; 


# 给用户授权,这里的 xiuno 就是 .env 里MYSQL_USER
GRANT ALL PRIVILEGES ON xiuno4.* to 'xiuno'@'%';

(五)启动访问

浏览器访问: ip:port/install/index.php

注意:port 是 .env 里的 NGINX_PORT 值,服务器的防火墙需要开发此端口,要不然访问会失败

比如我这里是在本机进行部署,就直接访问:127.0.0.1:8018/install/index.php

会出现一些启动初始化界面:

1. 安装向导

/img/xiuno-docker-install/guide-0001.png
xiuno安装向导

2. 基础授权协议

/img/xiuno-docker-install/guide-0002.png
xiuno授权协议

3. 安装环境检测

这里我的根目录是 xiunobbs,是因为我下载代码库后将 xiuno-docker 改为了 xiunobbs

/img/xiuno-docker-install/guide-0003.png
xiuno安装环境检测

如果出现检测不通过,一般都是目录权限不足,执行 chmod -R 777 【目录】 即可

然后重新检测,通过后才能进行下一步

4. 数据库设置

/img/xiuno-docker-install/guide-0004.png
xiuno数据库设置

5. 安装完成

安装完成后,会弹出一个提示:

恭喜,安装成功!为了安装请删除 install 目录

按照提示进行删除即可。

提示:以上的安装向导最终会在根目录下的 xiuno 目录下生成一个 conf/conf.php 文件,

所有的配置设置都在这里,后续如果需要修改可以通过后台管理系统进行修改,也可以通过修改这个文件。

到这里,xiuno 就基本安装完成了,赶紧体验一下吧~~~

这是我搭建的 xiuno 论坛,大家可以体验一下:五岁资源站

常见问题

Q1. xiuno 论坛完成安装向导后,想要修改配置怎么办?

安装向导最终会在根目录下的 xiuno 目录下生成一个 conf/conf.php 文件,

所有的配置设置都在这里,不过建议登录后台管理系统进行修改配置,当然也可以通过修改这个文件。

Q2. 已经安装了 docker,为什么 docker-compose 提示不存在?

执行以下命令:

[root@VM# docker compose version
Docker Compose version v2.27.0


[root@VM# docker-compose version
Docker Compose version v2.27.0

docker 最新版本会自动安装 docker compose,命令不再是 docker-compose,而是 docker compose;

执行上面两个命令,哪个有正常输出版本,哪个就是可以用的。

Q3. xiuno 论坛部署完成后如何删除重新部署?

在 xiuno-docker 目录下,也就是 docker-compose.yml 文件的位置,执行以下命令:

# 一键清理:停止容器 → 删除容器/网络/卷 → 清理构建缓存(容错处理,报错忽略)
docker-compose down -v --rmi all && docker network rm xiuno_xiuno_net 2>/dev/null && docker builder prune -f

如果 docker-compose 命令不存在,则用 docker compose

Q4. xiuno 论坛安装完成后,用户上传文件/头像提示失败?

这一般都是目录以及目录权限存在问题;

可以参考文章解决:xiuno 论坛常见问题之文件或头像上传失败解决方法 - 五岁博客

Q5. xiuno 论坛常用的插件都有些?

xiuno 论坛搭建完成后,其实是很简陋的,需要很多插件来丰富网站,最流行的便是【修罗轻鸿主题】;

各种各样的插件大家可以自行搜索下载安装。

也可以在 五岁资源站 搜索关键词:xiuno

Q6. xiuno 论坛后台插件卸载不成功怎么办?

在后台安装插件/卸载插件,界面虽然提示成功,但是一刷新,插件的状态依旧没变,还是处于修改前的状态。

可以参考文章解决方法:xiuno 论坛常见问题之后台插件卸载不成功 - 五岁博客

Q7. xiuno 论坛后台配置修改提示成功但是实际没有成功?

可以参考文章解决方法:xiuno 论坛常见问题之后台设置提示成功但是实际没有成功 - 五岁博客

Q8. xiuno 论坛如何设置帖子快捷回复?

下载安装插件 lh_quick_reply_message

不过这个插件是适配知乎蓝主题的,如果你是别的主题,可以参考文章设置: xiuno 论坛常见问题之设置帖子快捷回复 - 五岁博客

Q9. xiuno 论坛发帖成功后不会自动跳转?

这是 xiuno 论坛默认的设置,如果需要跳转,请参考文章进行设置: xiuno 论坛常见问题之发帖成功后不会自动跳转 - 五岁博客

Q10. xiuno 论坛常见问题之邮箱发送失败

下载安装 STMP 修复插件:nt_stmp

具体配置解决方法请参考文章:xiuno 论坛常见问题之邮箱发送失败 - 五岁博客

Q11. xiuno 论坛常见问题之管理员移动主题提示消息错误?

这是安装了消息插件之后存在的问题,从 A 版块移动帖子到 B 版块,结果提示的消息是移动到了 A 版块(实际应该是 B 版块);

参考方法:xiuno 论坛常见问题之管理员移动主题提示消息错误 - 五岁博客

Q12. xiuno 论坛常见问题之后台如何添加插件菜单

将插件的配置到后台的菜单入口上,更加方便进入插件配置: xiuno 论坛常见问题之后台如何添加插件菜单 - 五岁博客

Q13. xiuno 论坛常见问题之安装插件失败重启失败?

安装插件失败 / 修改文件导致网站启动失败自救方法: xiuno 论坛常见问题之安装插件失败重启失败 - 五岁博客

Q14. xiuno 论坛常见问题之如何查看日志信息

日志查看对于网站站长来说非常重要,查看方法如下:

xiuno 论坛常见问题之如何查看日志信息 - 五岁博客

Q15. xiuno 论坛问题排查报错自救指南

任何问题都可以参考此自救指南:xiuno 论坛问题排查报错自救指南 - 五岁博客

总结

本文通过 Docker Compose 实现了 Xiuno 论坛的快速搭建,相比传统部署方式,简化了环境配置和依赖管理,同时通过数据卷挂载保证了数据的安全性以及稳定性。

整个搭建过程的核心步骤可概括为:准备 Docker 环境 → 规划目录结构 → 启动容器并初始化 Xiuno 。

其中,数据库配置、端口映射、目前权限是关键环节,需注意配置的一致性和正确性。

通过本文的教程,相信大家能够顺利完成 Xiuno 论坛的 Docker 部署。

如果大家对 Xiuno 论坛的 Docker 部署还有哪些不清楚的地方,或者在搭建过程中遇到了其他问题,欢迎大家在评论区交流~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/xiuno-docker-install/

备用原文链接: https://blog.fiveyoboy.com/articles/xiuno-docker-install/