若要利用已存在的 MySQL 容器和本地的 MediaWiki 镜像来安装 MediaWiki,可以按照以下步骤操作:
- 已经有一个正在运行的 MySQL 容器,并且你知道该容器的相关信息,如数据库名称、用户名、密码、主机地址和端口。
- 本地已经有 MediaWiki 镜像。你可以通过
docker images 命令查看是否存在该镜像。
启动workbench连接数据库,然后创建新的mediawiki所用的数据库,并建立用户和权限
CREATE DATABASE mediawiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'hans'@'%' IDENTIFIED BY 'hans';
GRANT ALL PRIVILEGES ON mediawiki.* TO 'hans'@'%';
FLUSH PRIVILEGES;
sudo docker start mysql-container
为了让 MediaWiki 容器和 MySQL 容器能够更好地通信,建议创建一个自定义的 Docker 网络:
sudo docker network connect mediawiki_network <mysql_container_name>
其中 <mysql_container_name> 是你的 MySQL 容器的名称,可以通过 docker ps 命令查看。
使用以下命令运行 MediaWiki 容器,并将其连接到自定义网络(如果创建了的话):
sudo docker run -d \
--name mediawiki \
-p 8080:80 \
-v mediawiki_images:/var/www/html/images \
--network mediawiki_network \
mediawiki
--name mediawiki:为 MediaWiki 容器指定一个名称。
-p 8080:80:将容器的 80 端口映射到主机的 8080 端口,这样你就可以通过浏览器访问 http://localhost:8080 来访问 MediaWiki。
-v mediawiki_images:/var/www/html/images:创建一个名为 mediawiki_images 的数据卷,并将其挂载到容器内的 /var/www/html/images 目录,用于持久化存储 MediaWiki 的图片。
--network mediawiki_network:将容器连接到之前创建的自定义网络。
mediawiki:使用本地的 MediaWiki 镜像。
注意:皮肤选择时一定不能选择第一个MinervaNeue,这个皮肤不能用,第二个皮肤MonoBook已测试可以用,请选择这个
- 打开浏览器,访问
http://localhost:8080,你将看到 MediaWiki 的安装向导页面。
- 按照安装向导的提示进行操作,填写数据库相关信息:
- 数据库主机:填写 MySQL 容器的名称或者 IP 地址。
- 数据库名称:填写之前创建的数据库名称。
- 数据库用户名和密码:填写用于连接 MySQL 数据库的用户名和密码。
- 完成安装后,点击 “安装” 按钮,MediaWiki 将自动完成数据库表的创建和配置。
- 安装完成后,下载生成的
LocalSettings.php 文件,并将该文件放在F盘根目录下,下面重新挂载的时候会用到
为了使 MediaWiki 能够使用新的配置文件,你需要将下载的 LocalSettings.php 文件挂载到 MediaWiki 容器中。首先停止并删除之前运行的 MediaWiki 容器:
sudo docker stop mediawiki
sudo docker rm mediawiki
然后重新运行容器,并挂载 LocalSettings.php 文件:
sudo docker run -d \
--name mediawiki \
-p 8080:80 \
-v mediawiki_images:/var/www/html/images \
-v /mnt/f/LocalSettings.php:/var/www/html/LocalSettings.php \
--network mediawiki_network \
mediawiki
再次打开浏览器,访问 http://localhost:8080,如果看到 MediaWiki 的主页,则说明安装成功。
- 确保 MySQL 容器的防火墙允许来自 MediaWiki 容器的连接。
- 如果需要将 MediaWiki 暴露到公网,建议使用 HTTPS 协议,可以使用 Nginx 或 Apache 等反向代理服务器来实现。