docker部署mediawiki核心是容器隔离、外部数据持久化与初始化配置落地;推荐单容器(sqlite)开发或多容器(mysql)生产,需挂载数据目录、配置localsettings.php并重启生效。

用 Docker 部署 MediaWiki 很直接,核心是“容器隔离 + 外部数据持久化 + 初始化配置落地”,不需要编译安装 PHP 或手动配 Apache/Nginx。官方镜像开箱即用,重点在于数据库联动和配置文件保存。
准备基础环境
确保系统已安装 Docker(20.10+)和 docker-compose(v2.0+)。CentOS/RedHat 可用:
curl -fsSL https://get.docker.com | sh;Ubuntu/Debian 之后执行 sudo systemctl enable --now docker。
验证运行状态:
docker info 和 docker compose version 均应返回有效输出。
选择部署方式:单容器(SQLite) or 多容器(MySQL)
开发或轻量使用推荐 SQLite 方案,无需额外数据库容器,配置极简:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 新建目录如 ~/mediawiki,创建 docker-compose.yml
- 内容含 mediawiki 服务,挂载 ./data:/var/www/data(SQLite 文件存此处)和 ./uploads/images:/var/www/html/images(上传文件)
- 启动:docker compose up -d,访问 http://localhost 进入安装向导
生产环境建议 MySQL 方案,更稳定、支持并发与扩展:
- 在 compose 文件中增加 mysql 服务,设置 MYSQL_ROOT_PASSWORD 和 MYSQL_DATABASE=wikidb
- MediaWiki 服务通过 depends_on 依赖 MySQL,并用 environment 指定 MEDIAWIKI_DB_HOST=mysql、MEDIAWIKI_DB_NAME=wikidb 等参数
- MySQL 数据目录必须挂载(如 ./mysql-data:/var/lib/mysql),否则重启后数据丢失
完成安装并固化配置
首次访问会进入 Web 安装界面,按提示操作即可:
- 语言选中文,环境检查通过后进入数据库配置页
- SQLite 用户直接点“继续”;MySQL 用户填 数据库名 wikidb、用户名 root、密码(与 mysql 容器一致)、主机名 mysql
- 设置站点名称、管理员账号密码
- 最后一步点击“安装”,成功后页面会提供 LocalSettings.php 下载链接
- 把下载的文件放到 compose 目录下,并在 yml 中取消注释挂载行:./LocalSettings.php:/var/www/html/LocalSettings.php
- 重启容器:docker compose down && docker compose up -d,配置即永久生效
可选但实用的优化项
让 Wiki 更好用、更安全:
- 启用 HTTPS:配合 Traefik 或 Nginx 反代,在 compose 中加 labels 或 proxy 配置,自动处理证书
- 美化 URL:编辑 LocalSettings.php,加入 $wgScriptPath = ""; 和 $wgArticlePath = "/$1";,再配 Web 服务器重写规则
- 上传限制:修改 php.ini(可通过挂载自定义 ini 文件)调高 upload_max_filesize 和 post_max_size
- 扩展安装:把扩展目录(如 extensions/Cite)挂载进容器 /var/www/html/extensions,再在 LocalSettings.php 中启用










