一、简介

MediaWiki 是 Wikipedia 使用的网站解决方案的开源版,以个人观点来看,Wiki 在这个时代显得不够时尚,且不支持 MarkDown 等新兴的标记语言,另外页面的组织方式采用了自己的一套管理语言,上手需要一定的学习成本。不过经典总归是经典。

MediaWiki 也提供了官方的 Docker image,这就节省了不少安装环境的工作量,接下来就来看看私有 MediaWiki 站点是如何搭建起来的吧。

环境说明

操作系统:centos 7.6

ip地址:192.168.31.149

配置:1核2G

本文采用单机部署一套MediaWiki

二、安装docker

具体步骤,请参考链接:

https://www.cnblogs.com/xiao987334176/p/11771657.html

三、安装mysql

mkdir -p /data
mkdir -p /data/mediawiki
mkdir -p /data/mysql docker pull mysql:5.7 docker run -itd -p : --name wiki-mysql -e MYSQL_ROOT_PASSWORD= --restart=always --restart=on-failure: --oom-score-adj - --privileged=true --log-opt max-size=10m --log-opt max-file= -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, row affected (0.00 sec) mysql> create user 'wikiuser'@'%' identified by '123456';
Query OK, rows affected (0.00 sec) mysql> grant all privileges on my_wiki.* to 'wikiuser'@'%' with grant option;
Query OK, rows affected (0.01 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec) mysql> exit
root@4a6eaab770c5:/# exit

三、安装MediaWiki

MediaWiki 需要依赖于 MySQL,所以要先启动 MySQL,再启动 MediaWiki,不然启动会失败。

docker pull mediawiki:1.31.
docker run -itd --name mywiki -p : --privileged=true --restart=always --link wiki-mysql:mysql mediawiki:1.31.

四、初始化配置

打开浏览器

http://192.168.31.149:8080/mediawiki/index.php

开始初始化配置

语言设置

环境检查

选择mysql,注意:修改ip地址为服务器ip。数据库用户:wikiuser,密码:123456

选择数据库引擎为InnoDB

设置全局名称和添加管理员

注意:wiki名称,一般为公司名

密码:必须8位以上,且符合复杂性要求

正式安装

安装完成

注意:页面会自动下载一个LocalSettings.php

注意:先不要点击 进入您的wiki,还查一个步骤,否则会出错的。

登录到服务器,将 LocalSettings.php 上传到服务器,比如:/tmp目录

将 LocalSettings.php 复制到容器中的wiki根目录

docker cp LocalSettings.php mywiki:/var/www/html/

点击 上图中的 进入您的wiki

它会调转链接:

http://192.168.31.149:8080/index.php/首页

效果如下:

网页持久化配置

目前的php代码在容器里面,一旦重启,数据就丢失了。

复制网页目录

docker cp mywiki:/var/www/html /data/mediawiki/

杀掉docker,以新的方式启动。

docker rm -f mywiki
docker run -itd --name mywiki -p : -v /data/mediawiki/html:/var/www/html --privileged=true --restart=always --link wiki-mysql:mysql mediawiki:1.31.

再次刷新页面,效果同上!

本文参考链接:

https://www.jianshu.com/p/8de371558ef6
https://blog.51cto.com/13767724/2173885

docker搭建MediaWiki的更多相关文章

  1. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  2. 使用 Docker 搭建 Java Web 运行环境

    黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...

  3. mac下通过docker搭建LEMP环境

    在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...

  4. 转:使用 Docker 搭建 Java Web 运行环境

    原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...

  5. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  6. docker搭建zabbix

    本次使用docker搭建zabbix的组合是mysql+docker+zabix-server 1 先安装数据库mysql docker run --name zabbix-mysql-server ...

  7. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  8. Centos7安装ES 和 Docker搭建ES

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.linux centos7.x安装ES 1.下载java sudo yum instal ...

  9. Docker最全教程之使用Docker搭建Java开发环境(十七)

    前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...

随机推荐

  1. 同步fifo与异步fifo

    参考以下帖子: https://blog.csdn.net/hengzo/article/details/49683707 https://blog.csdn.net/Times_poem/artic ...

  2. android studio学习----通过github的URL怎么导入新的工程

    这一切的前提是你装了git,有了github帐号,之后就很简单,但是导入之后交给android studio 也会发生各种编译错误,这个时候就需要自己去一一解决了,主要还是  引用依赖版本的问题 第一 ...

  3. selenium+python关于页面滚动条滑动到底的问题总结

    1.如果滚动条是针对整个HTML可以用如下方式: js = "var q=document.documentElement.scrollTop=10000" # documentE ...

  4. django 基础进阶ORM 2

    1.多表操作 添加记录: 针对一对多 book_obj=Book.objects.create(title="python葵花宝典",price=100,publishDate=& ...

  5. 201871010132-张潇潇-《面向对象程序设计(java)》第四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  6. vector中erase()与insert()用法

    erase()用法:https://blog.csdn.net/duan19920101/article/details/50717748 注:erase是删除指定位置的元素,不能删除给定元素值.若要 ...

  7. 实现:笑脸_Crack

    直接载入OD,观察发现弹窗可能为MessageBox,那么进行对windows api函数的搜索 跟进反汇编窗口跟随函数,来到这里,直接进行断点操作 运行程序,跑到断点处,如下图 接着发现堆栈窗口有调 ...

  8. c3p0参数

    <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> < ...

  9. LeetCode 896. Monotonic Array

    原题链接在这里:https://leetcode.com/problems/monotonic-array/ 题目: An array is monotonic if it is either mon ...

  10. three.js 添加 图形控制界面 gui

    需要导入这个js: import { GUI } from '/three.js/jsm/libs/dat.gui.module.js'; 局部代码: var params = { color: 0x ...