使用筆記/開始篇
你好。
想必點進來的你對維基百科、萌娘百科、Minecraft Wiki等這樣的維基站台很感興趣,自己也想做一個吧?
這個頁面將從最開始介紹,接着往下看吧。
從零開始,但不用完全從零開始
建立一個wiki站台(本文在以下場合除特殊情況一律使用小寫的wiki)並不需要完全從頭開始。如果你沒有任何網頁伺服器相關的經驗,你可以考慮在已有的wiki farm(維基農場)上建立一個站台。這些wiki站台屬於這些農場,後端和部分關鍵權限都屬於他們自己,但站台的頁面內容完全由你(和他們與你之間的條款)決定。
Fandom
說到使用人數相當多的wiki farm,那就不得不提Fandom了。Fandom原名Wikia,是一個很老牌的wiki農場。你可能已經聽說過Minecraft Wiki了⸺自從它所屬的Gamepedia被Fandom收購之後,他就成了體量相當大的Fandom wiki之一。
Fandom的問題也很明顯⸺只有一款外觀,很多基礎功能都得自己申請甚至完全不提供,限制很大。但是Fandom面向的就是新手,嘗試一下也未嘗不可。而且Fandom的SEO(搜尋引擎優化)做的相當不錯,是別的農場無法比擬的。
還有一個地方是Telepedia,風格可能有些類似。
Miraheze
另一個更像理想中的wiki farm的就是Miraheze。這是一個完全開源的wiki farm,而且非營利,自由程度很高,可以體驗到相當原汁原味的MediaWiki。如果你有一定的動手能力,先去那裡看看也不錯。
問題也很明顯,他們的SEO做的就很差。
Miraheze因各種原因將會關站,不再作為推薦。部分成員可能成立了其他平台(WikiForge、WikiTide等)。
自託管
最好的選項,也是最麻煩的,就是自託管。自託管(Self-hosted),就是說自己開一個wiki站台。
你開過WordPress網誌嗎?就是從WordPress.org上面自己下載的那種?有的話就太棒了,至少你應該擁有過一台免費空間/虛擬主機/伺服器,對吧?
據我所知,大部分人的第一個自託管網站大多都是一個網誌。除了靜態的以外,大部分會選擇WordPress。開一個MediaWiki站台也是差不多的操作⸺下下來,傳上去,然後就好了,你想。
但是,WordPress有完整的網頁版安裝嚮導,MediaWiki……則沒有那麼完整的。
我是說,MediaWiki的安裝嚮導也很完備,但是和其他軟件有些不同,沒那麼方便和智慧。
下面,我們開始介紹如何開始搭建自託管MediaWiki。
安裝伺服器
此段落尚未完成。你可以幫助我們擴充關於該主題的更多資訊。
原因:缺失一個具體的安裝教學
一款基於PHP的軟件並不一定完全需要在一個真正的伺服器上才能運轉⸺只需要一個叫做「網頁伺服器」的軟件和PHP環境即可。
如果你的伺服器操作系統是Linux發行版,那就太好了,網路上有各種各樣的LAMP/LNMP的安裝教學。
LAMP就是Linux+Apache+MariaDB(MySQL)+PHP。LNMP則是把Apache換成Nginx。Apache和Nginx是兩款最常用的網頁伺服器軟件,有了它們你才可以用瀏覽器造訪你所搭建的站台。MariaDB/MySQL(在使用上基本沒什麼區別)是數據庫軟件,對於MediaWiki這種需要數據庫儲存數據的軟件來說是必要的。
對於Windows,我們也有XAMPP等。
如果你的「伺服器」只有一個網頁面板,那麼請諮詢你的託管商關於你面板的使用。大多數情況下這類自帶的面板已經自帶了網頁伺服器和數據庫軟件的安裝,甚至有某種應用商店一樣的東西(比如可能是Softaculous)。
如果是只有終端一樣的東西,那麼請打開搜尋引擎,輸入你伺服器的操作系統,然後跟上你要安裝的軟件,比如Nginx、MariaDB和PHP。不同的操作系統會有不同的安裝方法,比如Linux各個發行版有各個發行版的包管理(甚至沒有),每個包管理的版本更新策略也有所不同。以Arch Linux為例,他們的官方源裡面已經預設是PHP 8了,其他的發行版可能不同,但應該都還可以找到PHP 7.4的包。
以下以在一個已經成功安裝的Arch Linux上搭建LNMP為例。一般來說,如果你是購買的伺服器,那麼自帶的系統肯定不是Arch,因此也請根據你所使用的操作系統的實際來查看以下內容。
部分發行版的軟件源可能提供MediaWiki。此處不講。如有需要使用,參見對應的文件。
安裝軟件包
- 初始化
在安裝軟件包之前,我們先來滾動更新一下:
$ sudo pacman -Syu
如果你有安裝額外的Pacman wrapper,也可以用它們來更新,比如yay
或者paru
:
$ yay
$ paru
- Nginx
Nginx於2005年編寫,是一個免費、開源、高性能的HTTP伺服器軟件。雖然MediaWiki的開發團隊似乎用的是Apache,但是Nginx的支持也做得很不錯。
在Arch Linux的官方源裡面,有兩個軟件包:nginx
(穩定版本)和nginx-mainline
(主線版本)。沒有特殊情況時,使用nginx-mainline
即可。但官方源內的Nginx模塊都是依賴於nginx
的,依賴於nginx-mainline
的模塊則需要使用AUR。
那麼開始安裝吧。
$ sudo pacman -S nginx-mainline
安裝完畢後,需要啟用和執行Nginx服務。
$ sudo systemctl enable --now nginx
確保Nginx服務的執行狀態,可以輸入:
$ sudo systemctl status nginx
然後,在瀏覽器內輸入伺服器的地址。若是在本地,則直接造訪localhost
。
就本示例,Nginx預設在localhost
頁面服務的頁面是/usr/share/nginx/html/index.html
。如果使用了面板或自己使用了額外的配置,目錄可能會存在差異。
- MariaDB
MariaDB是一個可靠的、高性能的、功能全面的數據庫,是一款免費且可取代Oracle MySQL的數據庫服務。
那麼開始安裝吧。
$ sudo pacman -S mariadb
安裝完以後,初始化MariaDB數據目錄,並建立系統表。
$ sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
安裝完畢後,需要啟用和執行MariaDB服務。
$ sudo systemctl enable --now mariadb
用下面這個命令啟動數據庫級別的安全配置助手,來配置一些必要的安全選項:
$ sudo mysql_secure_installation
這個安全配置助手將引導設定數據庫下的root密碼(這一步會提示root帳號已經有保護了,可以輸入n,但是由於潛在的問題,這一步我們依然選擇輸入y,然後重新設定),移除匿名帳號,停用遠程root登入,移除測試數據庫和重載權限表。除了root帳號這裡要輸入一個新密碼以外,這些選項全y即可。
要存取數據庫,輸入:
$ mysql -u root -p
然後輸入你設定的root帳號密碼。
- PHP
PHP是一種廣泛使用的通用腳本語言,特別適合於Web開發,可嵌入到HTML中。WordPress和MediaWiki都使用PHP。
下面開始安裝PHP-FPM。
$ sudo pacman -S php-fpm
安裝完畢後,需要啟用和執行PHP-FPM服務。
$ sudo systemctl enable --now php-fpm
由於我們使用的是Nginx,所以此處為了讓PHP-FPM處理來自Nginx的請求,我們需要修改Nginx的配置。
使用編輯器編輯以下檔案(以vim
為例):
$ sudo vim /etc/nginx/nginx.conf
在vim裡查找php有關的行,輸入/php
。找到類似於以下的行,並取消它們的注釋:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /usr/share/nginx/html;
include fastcgi.conf;
}
然後修改預設文件,加入一個index.php
:
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
重載以下服務以生效:
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm
為了確保PHP-FPM的正確運作,我們在伺服器目錄下新建以下檔案:
$ sudo vim /usr/share/nginx/html/info.php
內容為:
<?php
phpinfo();
?>
在瀏覽器內造訪這個頁面。注意,這個頁面會暴露伺服器的很多資訊,請在查看完畢後刪除這個檔案。
至此,最基本的LNMP就安裝完了。你也可以選擇安裝phpmyadmin
這款數據庫前端,畢竟在命令行裡面操作表不是很好受。以下假定你會基礎的SQL語法雖然我不會,或假定你有一款足夠好用的數據庫管理軟件。
打開MediaWiki官網
按照網上的教學安裝好之後,接下來則是打開MediaWiki官網了。
作為一個MediaWiki站長,應該關注MediaWiki官網上的資訊。其首頁的右下角有新聞,可以看到近期發布的新聞(通常是版本更新)。如果需要,你也可以按照網站上的指示關注他們的郵件列表。
MediaWiki官網有什麼呢?沒錯,不止下載,幾乎所有MediaWiki相關的大大小小的資訊都在上面,比如本地設定(LocalSettings.php
,你接下來就知道了)的項目、擴展程序(也稱擴充套件或擴充功能)、外觀、實用工具等在上面都有介紹。
首先,我們找到官網上的下載連結,點進去。
頁面上會出現一個語言選擇框,還會出現一個下載圖示。此處我們按照一般順序,點擊圖示對應的連結,下載這個zip壓縮包。
安裝MediaWiki
解壓與第一次測試
在上一步你應該已經測試完你的網頁伺服器了。此處假設你網頁伺服器在瀏覽器內的地址是localhost
(在本地測試則確實是),在伺服器硬盤上對應的目錄地址是/www/wwwroot/mediawiki
(且此目錄尚未建立)(這個目錄與上面的不一樣,請自行參照修改)。這個目錄的名稱很重要,我們下面再說為什麼。
把壓縮包解壓到wwwroot
裡面。你應該會看到一個叫做「mediawiki-1.xx.xx」的目錄。重新命名到mediawiki
。前往你伺服器的地址。
此時,不出意外,你應該能看到一個MediaWiki的提示。如果這個提示包含一個指向mw-config
的連結,恭喜你,離站台安裝成功只剩下最後一步了。如果報錯,則按照上面的指示,修復錯誤。比如,若缺少intl,則按照對應的PHP安裝方法去啟用這個PHP擴展程序。比如,若是在系統自帶包管理中安裝的PHP,則也在包管理裡面找到對應的intl包。若是使用面板,則在對應的PHP設定中打開或安裝intl。
如果遇到了一些沒有辦法解決的問題,記得官網,下載頁面上也提供了他們所撰寫的MediaWiki安裝指南。參考這些資料也很有價值。
初配置MediaWiki
點擊上述的連結後,你大概就能看到一個很像維基百科(假設你在維基百科用的是Vector外觀)的配置介面了。
- 選擇站台語言
對於中文使用者來說,這一步其實很重要⸺MediaWiki的一項殺手級特性,繁簡轉換,只有在站台語言設定為「中文 (zh)」時才會啟用。關於繁簡轉換到底如何運作,我們將在以後的篇目裡提到。
- 配置數據庫
在你之前配置數據庫軟件的時候,應該已經有一個root帳號了。如果是面板或者使用了一些數據庫管理軟件,建立數據庫可能會隨新數據庫附帶一個帳號,使用這個帳號即可。否則,你需要參考網上關於數據庫的教學,新建一個給MediaWiki用的庫,並設定好帳號權限。把所使用的數據庫名稱與數據庫使用者名稱、數據庫密碼填入。若有必要設定數據庫前綴,請按照需求設定。無特殊需求勾選使用與安裝程序相同的帳號。
- 設定站台基本資訊
你需要設定站台的名稱和你站台的第一個帳號。如果你的站台語言是zh,請注意,目前沒有什麼很好的方法對系統資訊中使用的站台名稱進行繁簡轉換,也就是只能用簡體或繁體。
站台的第一個帳號可以就是你自己的⸺當然,也存在第一個帳號作為非自然人帳號使用的(也就是命名為站台名稱,自己再建立一個自己名字的帳號)。這裡都沒什麼關係,但是第一個帳號設定成你自己的會方便一點。
站台的Project空間可以選擇站台名稱,沒有問題,但是站台語言設定為zh時,你需要在後續處理一下命名空間顯示名的繁簡轉換,所以直接設定為Project也不錯。
選擇「多問我一些問題吧」以執行下面的步驟。否則會跳過下一步直接開始安裝。
- 使用者權限、外觀與擴展程序
使用者權限取決於你wiki的性質⸺也就是說,如果你希望別人能匿名編輯能匿名註冊,或者不希望,那麼按照自己的意願去設定。檔案上傳開啟與否也是一樣。
外觀和擴展程序我會放在另外兩篇裡面去說,就安裝教學這裡,如果顯示了有擴展程序和外觀,就都選上即可。如果沒有外觀(有的安裝方式會出現這種情況),你需要去官網搜尋Vector外觀(或者其他的)並放入站台對應的目錄裡,否則站台就會出現一個很醜的fallback提示。
- 上傳
LocalSettings.php
在安裝完畢後,和其他的軟件不一樣,你需要把程序生成的LocalSettings.php
檔案自己上傳到站台目錄裡。這麼做看似繁瑣了一些,但也可以避免對伺服器後台沒有實際操作權限的人透過mw-config
對站台設定進行更多的變更。
在上傳對位置後,查看你的MediaWiki站台。
順利的話,你就會看見類似於這樣的首頁了:
下一步
到此,MediaWiki的安裝就結束了。這個站台已經可以運作了。
但是這個空空如也的站台,並不足夠你去好好發揮,也上不了台面。如果你是某個wiki的編者,你所思念的擴展程序、模板、模塊、CSS、JS們也不在這裡。
此外,使用手機查看的時候,整個頁面好像不太對勁⸺Vector對手機也太不友好了。
在接下來的篇目中,這些問題將會被一一解答。
接下來的篇目
主要頁面 | |
---|---|
正文 | |
外部連結 |