简介
MediaWiki 是 Wikipedia 使用的网站解决方案的开源版,以个人观点来看,Wiki 在这个时代显得不够时尚,且不支持 MarkDown 等新兴的标记语言,另外页面的组织方式采用了自己的一套管理语言,上手需要一定的学习成本。不过经典总归是经典。
MediaWiki 也提供了官方的 Docker image,这就节省了不少安装环境的工作量,接下来就来看看私有 MediaWiki 站点是如何搭建起来的吧。
环境说明
操作系统:Debian 10.2 64bit
配置:1核2G
Docker管理器:3.9.1
PHP:7.4.30
本文采用docker部署一套MediaWiki
安装docker
请查看 官网
安装mysql
mkdir -p /data
mkdir -p /data/mediawiki
mkdir -p /data/mysql
docker pull mysql:5.7
docker run -itd -p 3306:3306 --name wiki-mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always --restart=on-failure:1 --oom-score-adj -1000 --privileged=true --log-opt max-size=10m --log-opt max-file=1 -v /data/mysql:/var/lib/mysql mysql:5.7
创建数据库以及用户,并开启远程连接权限
# docker exec -it wiki-mysql /bin/bash
root@4a6eaab770c5:/# mysql -p123456
mysql> create database my_wiki;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'wikiuser'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on my_wiki.* to 'wikiuser'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
root@4a6eaab770c5:/# exit
安装MediaWiki
MediaWiki 需要依赖于 MySQL,所以要先启动 MySQL,再启动 MediaWiki,不然启动会失败。
docker pull mediawiki:1.31.1
docker run -itd --name mywiki -p 8080:80 --privileged=true --restart=always --link wiki-mysql:mysql mediawiki:1.31.1
初始化配置
打开浏览器
http://IP+端口/mediawiki/index.php
开始初始化配置
语言设置
环境检查
选择mysql,注意:修改ip地址为mysql的容器IP,使用 'docker inspect [容器id或名称]' 进行查看容器IP。数据库用户:wikiuser,密码:123456
选择数据库引擎为InnoDB,新版本可不用选择
设置全局名称和添加管理员
密码:必须8位以上,且符合复杂性要求
正式安装
安装完成
注意:页面会自动下载一个 LocalSettings.php
注意:先不要点击 进入您的wiki,还查一个步骤,否则会出错的。
登录到服务器,将 LocalSettings.php
上传到服务器,比如:/tmp目录
将 LocalSettings.php
复制到容器中的wiki根目录
docker cp LocalSettings.php mywiki:/var/www/html/
点击 上图中的 进入您的wiki
它会调转链接
http://IP:端口/index.php/首页
效果如下:
网页持久化配置
目前的php代码在容器里面,一旦重启,数据就丢失了。
复制网页目录
docker cp mywiki:/var/www/html /data/mediawiki/
杀掉docker,以新的方式启动。
docker rm -f mywiki
docker run -itd --name mywiki -p 8080:80 -v /data/mediawiki/html:/var/www/html --privileged=true --restart=always --link wiki-mysql:mysql mediawiki:1.31.1
再次刷新页面,效果同上!