使用 Docker 搭建你的Wiki(MediaWiki)

蘇洋發表於2019-01-28

本文使用「署名 4.0 國際 (CC BY 4.0)」許可協議,歡迎轉載、或重新修改使用,但需要註明來源。 署名 4.0 國際 (CC BY 4.0)

本文作者: 蘇洋

建立時間: 2019年01月28日 統計字數: 1746字 閱讀時間: 4分鐘閱讀 本文連結: soulteary.com/2019/01/28/…


使用 Docker 搭建你的Wiki(MediaWiki)

前面介紹了三款不同的 RSS 系統的快速搭建使用,接下來我將演示幾種不同的 Wiki 系統,同樣是藉助 Docker 和 Traefik 進行快速搭建,本篇是第一篇,MediaWiki。

如果你有閱讀過我之前寫的文章,那麼參考本篇文章將文章搭建起來,應該只需要3分鐘或者更少,如果你沒有看過,那麼可以點選本文相關的文章標籤,閱讀過往的文章。

關於 MediaWiki

MediaWiki 是一款開源並且支援免費使用的軟體,由PHP編寫,被廣泛使用在各種知識社群內,我們熟悉的維基百科就是執行在這套程式上的。

在開源生態裡,MediaWiki 的周邊生態十分龐大,各種工具和機器人資源相當豐富。

時刻四個月,2019年1月,它更新了 1.32 版,本文基於此版本撰寫。

MediaWiki 預設安裝介面

私以為 Wiki 和 常規的筆記類軟體最大不同在於內容是經過精心校對的,並且能夠直觀呈現樹型結構形式之外的知識內容,文章內自動關聯,搭配標籤系統可以很容易的形成知識網路。

話不多說,開始實戰。

使用 Compose 可以一鍵啟動一個使用 SQLite 作為資料儲存的 MediaWiki ,配置很簡單,不到30行程式碼。

version: "3"

services:
  # 如果你使用資料庫,可以參考下面的地址,或者我文章中標記有 Docker 的歷史文章
  # https://docs.docker.com/samples/library/mediawiki/
  mediawiki:
    restart: always
    image: mediawiki:1.32
    labels:
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:mediawiki.lab.io"
      - "traefik.frontend.passHostHeader=true"
      - "traefik.frontend.entryPoints=http,https"
    networks:
      - traefik
    expose:
      - 80
    volumes:
      # 預設上傳位置
      - ./uploads/images:/var/www/html/images
      # 預設 SQLite 儲存位置
      - ./data:/var/www/data
      # 當初始化安裝完畢之後,將配置檔案下載並儲存到下面的位置,
      # 並去掉註釋,重啟應用
      # - ./LocalSettings.php:/var/www/html/LocalSettings.php

networks:
  traefik:
    external: true
複製程式碼

第一次使用該配置啟動程式,會引導你進行安裝,主要是進行應用常規配置,以及初始化資料庫。

MediaWiki 安裝結束

當你進行到最後一步的時候,程式會自動儲存你所有操作,並生成一個配置檔案。將該檔案儲存並移動到 docker-compose.yml 同級目錄下,並使用 Compose 重啟應用,安裝就完成了。

MediaWiki 正式使用

連結展示優化

安裝完畢之後,如果覺得預設的連結不夠優雅,希望能夠去掉URL連結中的 /index.php/ 內容,可以修改 LocalSettings.php 檔案內容。

替換 $wgScriptPath = ""; 為下面的配置內容即可。

$wgScriptPath = "";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
複製程式碼

最後

如果你對本文聊到的 Docker 、Traefik 、Compose 還不是很熟悉,歡迎閱讀我的以往文章,補全對上述技術的認識,希望我的文章可以對你有幫助。

接下來我會繼續介紹幾種不同的 Wiki 系統的安裝配置、魔改,如果你也在考慮如何維護一套讓自己用起來舒服的知識管理工具,可以繼續關注,下回再見。

— EOF


我現在有一個小小的折騰群,裡面聚集了一些喜歡折騰的小夥伴。

在不發廣告的情況下,我們在裡面會一起聊聊軟體、HomeLab、程式設計上的一些問題,也會在群裡不定期的分享一些技術沙龍的資料。

喜歡折騰的小夥伴歡迎掃碼新增好友。(請註明來源和目的,否則不會通過稽核)

關於折騰群入群的那些事

相關文章