天天看點

非Docker方法在威聯通上安裝Mediawiki

作者:什麼值得買

本内容來源于@什麼值得買APP,觀點僅代表作者本人 |作者:蜘蛛抱蛋

這兩天把用了兩年的wiki程式從瓦工伺服器遷到了NAS上,簡單做個記錄,以備日後參考。

Mediawiki是基于php語言開發的知識協作和共享軟系統,維基百科wikipedia用的就是它,自誕生已有20餘年曆史,至今仍在積極更新疊代,是以也被無數人用作知識/資訊管理工具。之前部署在瓦工上的版本隻升到1.38,這次除了要更新到最新的1.4,還要整體遷移到威聯通的機器上。

非Docker方法在威聯通上安裝Mediawiki

剛到手不久的TS-464C已經更新到5.1最新版系統,一開始考慮的是docker安裝,也找到了一個活躍維護的版本bitnami/mediawiki,然而看完大幾十頁的安裝文檔直接勸退。威聯通的QTS系統就是基于PHP的,何不直接手動安裝呢?簡單搜了下,應該沒有人這樣幹過,但不代表就不行

首先用SSH登入NAS,檢查下已安裝的php版本以及子產品

非Docker方法在威聯通上安裝Mediawiki

内置PHP并不完整

你會發現,連intl擴充都沒有。接下來,去App Center安裝PHP Extensions套件,再次運作,關鍵擴充又回來了

就憑這點給老威點個贊

順手把MariaDB 10和phpMyAdmin套件也裝上,以及第三方的Entware-std (1.03a),後面有用。裝MariaDB的時候完成初始化,記下域套接字的值。

非Docker方法在威聯通上安裝Mediawiki

記下紅框中的值

從浏覽器打開phpMyAdmin,新增使用者賬戶。這裡借鑒了網友安裝NextCloud的經驗,沒有直接建立資料庫,操作下來也沒出現問題。副作用就是使用者名和庫名是一樣的了,其他方法也可嘗試。

非Docker方法在威聯通上安裝Mediawiki

注意紅框中的設定

另外,需要安裝兩個缺失的程式包“diff3”和“git”。預設安裝位置不在QTS環境變量裡,是以軟連結到/usr/bin。目前不清楚這種方式在系統重新開機後會不會被還原,或者利用啟動腳本将/opt/bin加入到$PATH也是可以的。

非Docker方法在威聯通上安裝Mediawiki

然後去網頁控制台開啟web伺服器,端口預設80就好。 在Web檔案夾建立php檔案夾和info.php檔案,用于執行指令。因為想要公網域名通路,在反代中建立一條規則,指向localhost的80端口。然後浏覽器測試,一方面确認apache正常工作,另一方面再次檢查擴充是否安裝成功。

非Docker方法在威聯通上安裝Mediawiki

之後可以下載下傳mediawiki程式了。我這裡隻增加了兩個擴充:PageForms和Cargo,注意下載下傳和主程式對應的版本。需要注意的是,wiki程式的檔案夾名不要用"wiki"(别問為什麼,官方文檔裡寫着)。

非Docker方法在威聯通上安裝Mediawiki

浏覽器打開mediawiki位址(上圖的php替換為w)開始安裝。如果之前操作沒問題的話,你會看到以下資訊

非Docker方法在威聯通上安裝Mediawiki

安裝引導的第二頁

SQLite的警告可以忽略,我們不用它做資料庫。比較糾結的是APCu缺失,應該是相應的php子產品沒有被編譯進去。隻能說威聯通版的LAMP閹割的有點狠

官方論壇有人鼓搗出了手動裝擴充的方法,然而過程不是一般的複雜,無奈放棄。并且緩存主要針對高并發的場景,個人用的話問題應該不大。下一步的資料庫配置,

注意主機名要包含socket值。

非Docker方法在威聯通上安裝Mediawiki

注意主機名

之後的設定基本從舊wiki照搬過來,有點差別的地方是沒有啟用緩存。下載下傳到LocalSettings.php檔案後不急着上傳,先去舊伺服器上備份+打包資料。需要備份的主要有3個東西:資料庫、LocalSettings.php檔案、images檔案夾,依然是SSH指令行操作

非Docker方法在威聯通上安裝Mediawiki

回到NAS控制台,下載下傳并解壓備份檔案後,第一步先恢複資料庫。連接配接資料庫依然要用到socket值,如果報錯就先删庫再導入。

非Docker方法在威聯通上安裝Mediawiki

第二步:移植LocalSettings.php,建議基于新生成的配置檔案對照老的字段值逐一修改,簡單粗暴地上傳舊檔案極有可能出問題。這裡主要關注$wgScriptPath、$wgServer、$wgLogos、wgGroupPermissions系列字段以及擴充啟用情況,确認沒問題之後上傳到w目錄。

最後一步:還原images檔案夾,直接copy過去覆寫就好。這裡還有一個坑,弄好之後你會發現通過連接配接無法通路這裡面的圖檔,浏覽器報500錯誤。經過一番排查,問題出在images目錄下的.htaccess檔案,1.4版mediawiki對應的配置改為

非Docker方法在威聯通上安裝Mediawiki

主要是防嗅探以及遠端執行php的漏洞。然而改完之後還是報錯,進apache的日志看到“htaccess: Header not allowed here”,推測是security相關的php子產品缺失

我的選擇是删掉.htaccess,然後安慰自己,不開放注冊就好

Finally,可以打開浏覽器測試最終效果了!任何頁面幾乎都是秒開,體驗度相比之前瓦工版本有巨大提升

最後一點收尾工作,在Common.js裡修改mw.loader.load函數的路徑,讓自定義js/css腳本能夠工作。

接下來計劃裝個elasticsearch,之前1c1g跑這個實在有點勉為其難,而且新版mediawiki已經支援ver. 7了,記憶體占用顯著降低。

非Docker方法在威聯通上安裝Mediawiki

PS:大媽的新版編輯器簡直巨坑啊,點了個預覽之後幾千字的草稿丢了一大半

咬咬牙還是重寫了一遍

作者聲明本文無利益相關,歡迎值友理性交流,和諧讨論~