我只是想做一个大家都能访问的wiki,用于成员间共享和维护一些文档。找到了docker的mediawiki,这里记录一下我怎么搭的吧。

首先,如果你在一个局域网里,有公用的可以访问的服务器,那可以直接在那上面搭建,比如我们实验室的服务器,只要在校园网下,都可以访问。不过这篇博客是在我的阿里云的服务器上实现的,我租的是阿里云轻量应用型服务器,原因是便宜。

mediawiki需要有一些mysql数据库的知识和php的知识,为此我还花了一天学习了这两个东西。我是在菜鸟教程的网站学习的。如果只是想简单操作,其实学习起来并不难。

1、ssh登录服务器(服务器是ubuntu16.04)

2、为服务器安装docker环境

网上教程一大堆,我安装的是docker-ce,使用的是这个教程:https://blog.csdn.net/bingzhongdehuoyan/article/details/79411479

3、下载mysql和mediawiki镜像

去docker hub上找一下这两个镜像

MySQL:https://hub.docker.com/_/mysql

media:https://hub.docker.com/_/mediawiki

然后选择合适的版本,我使用的是这两个:

所以根据命令pull下来:

docker pull mysql:5.7
docker pull mediawiki:stable

4、安装mysql容器(涉及一点mysql知识,最好先学习一下)

docker run --name mysql_wiki -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

解释一下上面的命令:

MYSQL_ROOT_PASSWORD=123456 表示生成的容器里的root账户密码是123456

-p 表示端口映射,mysql默认端口是3306,然后你要远程连接docker内部的mysql,所以需要把docker内部的3306端口映射到服务器的某个端口,我自己随便映射到了服务器的3307端口了。

mysql:5.7 表示你的镜像,写成镜像id也可。

然后进入你的mysql的容器,配置远程连接

docker exec -it mysql_wiki bash

注意这里进入并不能attach命令进入,我一attach,终端就卡死了,我也不知道为啥,你知道的话,可以留个言。

进入容器后,登录root

mysql -u root -p

进入mysql数据库

use mysql

创建一个可以远程连接的root账户

grant all privileges on *.*  to 'root'@'%';

刷新一下权限

flush privileges;

查看一下是否生效

SELECT User,Host FROM mysql.user;

上面可以看到有两个root,一个是localhost,用于本地连接,一个是%,则是用于远程连接。

然后将你的阿里云服务器的防火墙的3307端口打开

即添加一个自定义的3307端口

最后在自己的电脑上远程连接一下你阿里云上的mysql(自己的电脑要先装好mysql环境)

mysql -h xxx.xxx.xxx.xxx -P 3307 -u root -p

xxx.xxx.xxx.xxx表示你的服务器的ip地址

-P 表示映射的端口

连接成功,说明的mysql的环境已经搞好了。

5、安装mediawiki容器

docker run --name mywiki --link mysql_wiki:mysql -p 999:80 -d mediawiki:stable

--link mysql_wiki:mysql  表示mywiki这个容器将会和mysql_wiki这个容器进行通信,并以mysql为别称。

当然别忘了开放你的端口,我使用的是999端口。

6、使用浏览器登录

在浏览器直接输入

xxx.xxx.xxx.xxx:999

7、点击图上的set up the wiki, 进行mediawiki的安装

先选择语言(我选择中文)

然后检查环境

因为用的docker,所有环境都已经装好了

连接数据库

xxx.xxx.xxx.xxx是你的服务器ip,3307是刚刚设置的mysql端口

之后按照它的提示设置安装就好了

最后的样子

接着将下载的LocalSetting.php上传服务器,然后再拷贝进入mywiki容器中的/var/www/html/ 文件夹下(上传服务器使用scp命令,docker传文件使用docker cp)

然后你再在浏览器中输入xxx.xxx.xxx.xxx:999,就可以看到你的页面了。。。

8、配置mediawiki

更改左上角的logo

刚刚的LocalSetting.php中

这里的resources文件夹就在/var/www/html/文件下

我们自己上传一个135*135的三通道图像,png格式,然后放在assets文件夹下,然后更改LocalSetting.php的这个wgLogo变量,指向自己的logo图片

然后重新打开网页,就发现logo已经更改。

右上角登录刚刚设置的管理员账号

设置游客不能编辑,注册用户可以编辑

LocalSetting.php添加这两行

添加上传文件功能

这个功能很重要,比如你在文章中要添加图片时,要先上传图片,然后添加

将这个变量改成true即可

设置上传文件大小限制

在上传文件页面中,我们发现最大上传只有2M。所以要改,我们改成1G

这里我是参考这个教程的:https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/zh

首先我们去更改php.ini文件

在容器中输入 php --ini命令,去查找php.ini在哪

不过似乎并没找到在哪,但是我们可以在/usr/local/etc/php/文件夹下找到这些东西

按照官网的说法: https://www.php.net/manual/zh/install.windows.legacy.index.php

所以我们直接 cp php.ini-production php.ini

然后编辑php.ini文件

按照上面的教程: https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/zh 修改两个变量

然后LocalSetting.php添加这两行

注意这里的单位是字节,1073741824=1024*1024*1024

至于更改web服务器apache,我们并不需要更改,保持默认就好,因为 https://httpd.apache.org/docs/2.4/mod/core.html 解释道

即默认是无限制大小

最后 service apache2 restart 重启web服务

可能会掉出容器,再start一下容器就好了

这时候再登陆wiki页面,上传文件就可以有1G了

使用docker mediawiki,搭建网页wiki的更多相关文章

  1. Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

    一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储.索引日志, logstash —— 可用于日志传输.转换,kibana —— WebUI,将日志可视化),发现最新版已到7 ...

  2. 【架构】docker环境搭建mysql主从

    序 本文主要研究怎么在docker上搭建mysql的主从.因为在单机搭建mysql多实例然后再配主从,感觉太痛苦了,环境各有不同,配置各不大相 同,从网上找搭建方法,试了半天也没成功,最后也没耐心调试 ...

  3. docker中搭建jenkins环境

    想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...

  4. CentOS7搭建Confluence Wiki

    前言 在艾佳生活实习时,有三款团队协作系统特别喜欢:Wiki.Jira和Jenkins.对于Jenkins的搭建,之前<自动部署工具Jenkins>有过记录.这次,搭建一个Wiki,作为知 ...

  5. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  6. docker快速搭建几个常用的第三方服务

    本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...

  7. Docker Machine搭建并加入节点

    对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...

  8. centos7系统下 docker 环境搭建

    运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...

  9. Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh

    本文将介绍如何使用Docker Compose搭建Istio.Istio号称支持多种平台(不仅仅Kubernetes).然而,官网上非基于Kubernetes的教程仿佛不是亲儿子,写得非常随便,不仅缺 ...

随机推荐

  1. 常用DOS命令及其用法

    md ​ 1.作用:建立子目录 ​ 2.用法:md [盘符:] [路径名] ①盘符:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器: ②路径名:要建立的子目录的上级目录名,若缺省则建在当前目 ...

  2. hibernate+spring+tomcat启动报错Not supported by BasicDataSource

    最近使用hibernate+spring+jsp的小项目制作过程中出现一些错误,例如: java.lang.UnsupportedOperationException: Not supported b ...

  3. phpstorm如何设置字体

    最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个"√",始终无法去掉,这个勾限制了字体系列 ...

  4. UI的管理

    游戏的UI系统往往会比较复杂,工作量比较庞大,需要多人协作完成,为了开发和维护方便,有必要对UI系统进行管理. 一.制作预制件 将UI的各个不同的功能面板制作为预制件,放入Resources目录下,方 ...

  5. Codeforces Round #664 (Div. 2) D. Boboniu Chats with Du

    传送门:cf1395D 题意 给定一个长度为n的数组a[i]为当天说话的有趣值,如果a[i]>m,那么在 i 之后有d天不能说话.否则可以每天都说话.找到一个排列使得n天有趣值总和最大,问有趣值 ...

  6. HDU5739 Fantasia【点双连通分量 割点】

    HDU5739 Fantasia 题意: 给出一张\(N\)个点的无向图\(G\),每个点都有权值\(w_i\),要求计算\(\sum_{i=1}^{N}i\cdot G_i % 1e9+7\) 其中 ...

  7. Redis 事务 & 消息队列

    Redis 消息队列介绍 什么是消息队列 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠传递,消息生产者只管把消息发布到消息队列中而不 ...

  8. Kubernets二进制安装(14)之flannel之SNAT规则优化

    flannel之SNAT规则优化的目的是由于在K8S中的容器内,访问不同宿主机中的容器的资源的时候,日志文件会记录为宿主机的IP地址,而不是记录为容器本身自己的IP地址,建议在不同的宿主机上的容器互访 ...

  9. C# 类(3)

    方法重载 和python类似,在调用函数的时候可以指定默认参数,car("Jeep",color="red") 方法重载就是 可以定义几个同名的函数,然后带有不 ...

  10. webpack4.0源码解析之打包后js文件分析

    首先,init之后创建一个简单的webpack基本的配置,在src目录下创建两个js文件(一个主入口文件和一个非主入口文件)和一个html文件,package.json,webpack.config. ...