使用筆記/開始篇
你好。
想必點進來的你對維基百科、萌娘百科、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對手機也太不友好了。
在接下來的篇目中,這些問題將會被一一解答。
接下來的篇目
主要頁面 | |
---|---|
正文 | |
外部連結 |