建站/MediaWiki

出自Wired
跳至導覽 跳至搜尋
流程已由 1.40.01.41.11.42.31.43.0 版本验证,无需为符合本文创作环境而刻意避免最新版本,只需注意相关文件或路径的版本号差异。

我需要做什麼?

按照#安裝框架操作,然後享受Mediawiki。

 

安裝框架

框架文件

※ 官網:https://www.mediawiki.org/

下載框架:

cd /var/www/html # 进入网站根目录
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.zip #下载框架压缩包,如果国内服务器下不动可以本地下载好通过ftp传输
#建议下载最新版本:https://www.mediawiki.org/wiki/Download

解壓文件(具體文件名請看自己下載的版本,下同):

unzip mediawiki-1.41.1.zip # 解压文件,若没有unzip,则运行该命令安装:apt install unzip

移動框架文件到網站資源目錄下:

  • 如果僅此一個站點:
    • mv mediawiki-1.41.1/* ./ # 将 mediawiki-1.41.1 文件夹内的所有文件和文件夹移动到当前目录(即 html 目录)。
      
  • 如果是多站點(記得一併修改apache2配置文件):
    • mv mediawiki-1.41.1 mediawiki # mv {原文件夹名称} {新文件夹名称} 注意,若新文件夹存在,则会放置于新文件夹内而非覆盖/合并。
      

安裝需要的PHP依賴(參考:安裝要求/PHP配置安裝WEB環境時已經裝了就不用再重複了)

sudo apt-get install php php-apcu php-common php-intl php-json php-mbstring php-xml libapache2-mod-php php-mysql php-curl -y

重啟apache2:

systemctl reload apache2

初始化設置

安装好后访问ip就能看到引导页了,若要通过url访问请先设置好域名解析
如果您不习惯纯文本介绍,我在建新站时特意保留了一份截图:语言环境检查连接到数据库数据库设置数据库设置(假若用其他账户)WIKI名称及管理员账户扩展等更多选项(与本文推荐的略有出入)结束配置根据配置创建环境生成配置文件
所有配置都会写入LocalSettings.php配置文件中,均随时可修改;未提及的为无需变动/修改/添加的设置,直接下一步即可

基礎信息

數據庫信息:

  • 数据库名称:自定義即可,不存在的話會創建個新的;
  • 数据表前缀:就是 xxx_实际表名 多個服務共用數據庫可設置,否則建議留空;
  • 填寫數據庫的root账户密码

站點信息:

  • 站点名称管理员用户名密码邮箱(無需真實);

進階設置

用戶權限配置文件仅限授权编辑者,遊客只能瀏覽、無法註冊賬戶,管理員可後台建立賬戶;

電子郵件設置:私人wiki取消勾選即可,如果需要郵件推送功能,需要配置郵件SMTP伺服器;

皮膚VectorMonoBook 比較舒服,後者雖信息利用率更高,但功於窄點的側邊欄與小點的字體,且ui太古老,所以我設前者為默認;

  • 目前默認啟用的還是 Vector 2010,也是截圖示例的樣子,設置里可以啟用2022版本的(維基百科新的默認皮膚是這個),諸如側邊欄支持摺疊的目錄等挺好,但不好看。

拓展程序:具體用途見選項旁的「更多信息」或於官網搜索,這裏只說必要安裝的,根據需求可選的(具體見建站/WIKI功能)。

  • 特殊頁面
    • ReplaceText特殊:替换文本|全局批量替換):以整個wiki為單位進行替換內容;
      • 執行速度可能沒那麼快,確認勾選了显示编辑记录的話可以到特殊:最近更改查看進度;
      • 默認的搜索無法查詢到url,可以用它替代搜索功能,但這個頁面僅限有權限的用戶使用。
  • 編輯器
    • VisualEditor(可視化編輯):mediawiki的靈魂;
      • 沒typora我就不會用markdown,沒它我也不會用mediawiki,原始碼編輯器及模板/模塊/拓展等功能是它的上限,而可視化編輯器就是它的下限,上限極高、下限極低,對於文本創作,可視化編輯器足矣。
      • 另外兩個是增強原始碼編輯器體驗的工具,建議一併啟用,如果要編輯表格的樣式或使用模板等還是要用到的。
  • 解析器鈎子
    • 不一定會用,但複雜點的功能幾乎離不開的;
      • ParserFunctions(函數解析器):詳見官方文檔,裝上以防萬一。
      • TemplateData(模板):創建具有固定格式的內容框架(文本/表格/信息框)。
      • Scribunto(模塊):可以嵌入lua語言代碼,以實現很多高級功能,要想使用還請參考#模塊配置權限。
    • Cite(腳註):詳見官網,不支持換行(可以輸入四個橫線渲染出分割線實現換行)!一般都是引用連結而不是填寫信息;如果有引用,默認會渲染到文末,可以在原始碼編輯器下用「 <references />」指定插入的位置;配合#鼠標懸浮顯示引用文本體驗更佳。
  • 垃圾預防ConfirmEdit(防垃圾郵件):主要是防止惡意猜密碼登陸的行為,但驗證碼比較簡單,要自定義見官網。也可以參考AbuseFilterSpamBlacklistTitleBlacklist

圖像和文件上傳

  • 勾選启用文件上传,已刪除文件目錄可以留空,默認在 /网站根目录/images/deleted 文件夾中,如果要刪除無用文件也別動這個文件夾,用建站/WIKI功能提到的維護工具;
  • 即时共享资源類似於跨wiki連結,可以引用維基共享資源的內容,具體見:#嵌入外部WIKI的圖片

個性化:圖標與側邊欄標誌可以先記住位置以後再更換圖像(可以修改路徑、也支持jpg/png等常用格式);


接着不斷繼續即可,最後會下載「LocalSettings.php」文件,將其放置於mediawiki框架的根目錄下,便大功告成了!

  • 除了ftp傳輸外,也可以複製裏面的內容,並通過ssh訪問伺服器,在網站根目錄下:nano LocalSettings.php 並粘貼內容(ctrl+shift+v)、保存(ctrl+s)、退出(ctrl+x)。

可能的問題

不能將上傳內容存儲至暫存處

沒有上傳文件夾(./images/)的寫入權限,在網站根目錄下運行:

sudo chown -R www-data:www-data ./images/
sudo chmod -R 755 ./images/

網站跳轉IP/http而非域名/https

初始化設置的時候是用的IP或未配置ssl,在配置文件(LocalSettings.php)修改成你想要的地址,如:

$wgServer = "https://wiki.scio.icu";

添加了拓展文件後,無法訪問頁面

檢查拓展文件夾(./extensions)權限,在網站根目錄下運行(分別是給設定的目錄下的文件夾755權限、文件644權限)

find ./extensions -type d -exec chmod 755 {} \;
find ./extensions -type f -exec chmod 644 {} \;

※ 給文件授予權限時,建議精準到文件夾,如 ./extensions/目标扩展 直接給所有文件授權不止緩慢,還有可能打亂需要特定權限的設置(如 #代碼塊#模塊)。

文件上傳大小限制:

默認有文件最大不能上傳2MB的限制,修改配置文件:nano /etc/php/8.1/apache2/php.ini ,修改為需要的體積限制(之後記得重啟apache2:systemctl reload apache2):

post_max_size = 20M
upload_max_filesize = 20M

※ 這兩行在配置文件幾百行開外,善用nano的查找(ctrl+w)功能。

其他可能問題

 

打破隔閡

可視化編輯器無限降低了Mediawiki的編輯下限,而原始碼編輯器及各種附加擴展功能使其上限又很高,兩者不是衝突而是共存的,可以在編輯時隨意切換。因此我不認為「我不會使用medaiwiki編輯內容」會阻擋你前進,我想它的本質應該是「我不知道從何下手」,畢竟我們對wiki框架的刻板印象已久,一時或許想不到自己的應用場景。

創建頁面:

您可以先把您的首頁編輯掉,當作其他博客框架的「關於我」頁面,介紹下您與您的站點,並適當的索引站內其他文章。

您可以先行索引一些不存在的文章,比如:不存在的文章(示例用),它會顯示為紅色,我們保存頁面後可以點擊它(也可以直接修改url的標題部分),會提示「本頁面目前沒有內容」並詢問是否「創建本頁面」,我們就可以着手寫我們的第一個文章。但當「不存在的文章(示例用)」頁面發佈後,首頁的索引文本或許還是紅色,因為伺服器端#刷新頁面緩存需要一定的時間。

可視化編輯器:

※ 官網用戶指南見:Help:VisualEditor/User_guide/zh

可視化編輯器就像word、typora這類編輯器一般,編輯與渲染在相同的地方,知乎等主流社區的編輯功能亦是如此,區別只是其支持的功能。您可以隨意的嘗試,以便於了解它們都有什麼效果與樣式,如果您曾經寫了其他文章,也可以重新利用可視化編輯器進行排版並發表。

可視化編輯器適用於文本創作,對於模板等高級功能支持效果並不理想,但對於一般的wikitex語法和部分高級樣式,都可以通過複製粘貼的形式嵌入,它會解析部分內容,直接渲染出結果,而不必切換到原始碼編輯視圖下。

分類與頁面:

您可以參考我對wiki的文章的管理機制:wiki:SCIO系列站點WIKI章程,您可以先按照自己的思路去維護索引頁,讓其隨着內容的增多而根據需求慢慢的調成,這是一個過程。

不論單獨創建一個索引頁, 還是把首頁當作索引頁,亦或者其他方式,我們沒必要考慮的太過深遠,未來的事誰也說不準,只要它能滿足當下的需求,我們都可以慢慢的進行調整。

編輯功能的缺陷:

參考:建站/框架#劣勢,了解下編輯的缺陷與應對方案。

不要管功能,去創作:

您是否也有一些系列文章想要編輯,比如您建站的歷程?您所喜好的事物?您的待辦事項與媒體推薦列表?您的學習筆記?您的心境及想法?這些都是不錯的題材,哪怕您目前沒有系統的內容可寫,就算是一些線索,也總要給其一個機會。這也是系列站點的歷程,我也不知道要寫什麼, 但給自己與線索一些寬容,它們或許會給我們一些驚喜。

Mediawiki有很大的操作空間,但這是我們所需要的嗎?不是,只是單純的用於文字創作,可視化編輯器足矣。我們可以當作那些複雜的功能不存在,先靜心於創作,在這個過程中熟悉它所提供的基礎功能及界面,當急切的需求某個功能時,再去對症下藥。