使用docker mediawiki,搭建網頁wiki


 

我只是想做一個大家都能訪問的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了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM