本頁使用了標題或全文手工轉換

使用筆記/開始篇

From Project Archive by Lakejason0
該頁面的編輯正在進行中。

請幫助我們擴充或改進這篇文章。

你好。

想必點進來的你對維基百科、萌娘百科、Minecraft Wiki等這樣的維基站點很感興趣,自己也想做一個吧?

這個頁面將從最開始介紹,接著往下看吧。

從零開始,但不用完全從零開始[edit | edit source]

建立一個wiki站點(本文在以下場合除特殊情況一律使用小寫的wiki)並不需要完全從頭開始。如果你沒有任何網頁伺服器相關的經驗,你可以考慮在已有的wiki farm(維基農場)上建立一個站點。這些wiki站點屬於這些農場,後端和部分關鍵權限都屬於他們自己,但站點的頁面內容完全由你(和他們與你之間的條款)決定。

Fandom[edit | edit source]

說到使用人數相當多的wiki farm,那就不得不提Fandom了。Fandom原名Wikia,是一個很老牌的wiki農場。你可能已經聽說過Minecraft Wiki了——自從它所屬的Gamepedia被Fandom收購之後,他就成了體量相當大的Fandom wiki之一。

Fandom的問題也很明顯——只有一款外觀,很多基礎功能都得自己申請甚至完全不提供,限制很大。但是Fandom面向的就是新手,嘗試一下也未嘗不可。而且Fandom的SEO(搜尋引擎最佳化)做的相當不錯,是別的農場無法比擬的。

Miraheze[edit | edit source]

另一個更像理想中的wiki farm的就是Miraheze。這是一個完全開源的wiki farm,而且非營利,自由程度很高,可以體驗到相當原汁原味的MediaWiki。如果你有一定的動手能力,先去那裡看看也不錯。

問題也很明顯,他們的SEO做的就很差。

自代管[edit | edit source]

最好的選項,也是最麻煩的,就是自代管。自代管(Self-hosted),就是說自己開一個wiki站點。

你開過WordPress部落格嗎?就是從WordPress.org上面自己下載的那種?有的話就太棒了,至少你應該擁有過一台免費空間/虛擬主機/伺服器,對吧?

據我所知,大部分人的第一個自代管網站大多都是一個部落格。除了靜態的以外,大部分會選擇WordPress。開一個MediaWiki站點也是差不多的操作——下下來,傳上去,然後就好了,你想。

但是,WordPress有完整的網頁版安裝精靈,MediaWiki……則沒有那麼完整的。

我是說,MediaWiki的安裝精靈也很完備,但是和其他軟體有些不同,沒那麼方便和智慧型。

下面,我們開始介紹如何開始搭建自代管MediaWiki。

安裝伺服器[edit | edit source]

該段落尚未完成。你可以幫助我們擴充關於該主題的更多資訊。
原因:缺失一個具體的安裝教學

一款基於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需要使用AUR。其他的發行版則應該還可以找到PHP 7.4的包。

以下以在一個已經成功安裝的Arch Linux上搭建LNMP為例。一般來說,如果你是購買的伺服器,那麼內建的系統肯定不是Arch,因此也請根據你所使用的作業系統的實際來檢視以下內容。

安裝軟體包[edit | edit source]

初始化

在安裝軟體包之前,我們先來滾動更新一下:

$ sudo pacman -Syy

如果你有安裝額外的AUR Helper,也可以用它們來更新,比如yay

$ yay
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 nginx
$ sudo systemctl start 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 mariadb
$ sudo systemctl start 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 7和PHP 8是兩種語言‌[來源請求],所以MediaWiki暫時沒有辦法馬上遷移到PHP 8,但Arch Linux已經把php包版本升級到8了,所以這裡我們需要手動選擇PHP 7的版本。

下面開始安裝PHP-FPM。

$ sudo pacman -S php7-fpm

安裝完畢後,需要啟用和執行PHP-FPM服務。

$ sudo systemctl enable php-fpm
$ sudo systemctl start 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-fpm7

為了確保PHP-FPM的正確運作,我們在伺服器目錄下新建以下檔案:

$ sudo vim /usr/share/nginx/html/info.php

內容為:

<?php
phpinfo();
?>

在瀏覽器內存取這個頁面。注意,這個頁面會暴露伺服器的很多資訊,請在檢視完畢後刪除這個檔案。

至此,最基本的LNMP就安裝完了。你也可以選擇安裝phpmyadmin這款資料庫前端,畢竟在命令行裡面操作表不是很好受。以下假定你會基礎的SQL語法雖然我不會,或假定你有一款足夠好用的資料庫管理軟體。

打開MediaWiki官網[edit | edit source]

按照網上的教學安裝好之後,接下來則是打開MediaWiki官網了。

作為一個MediaWiki站長,應該關注MediaWiki官網上的資訊。其首頁的右下角有新聞,可以看到近期發布的新聞(通常是版本更新)。如果需要,你也可以按照網站上的指示關注他們的郵寄清單。

MediaWiki官網有什麼呢?沒錯,不止下載,幾乎所有MediaWiki相關的大大小小的資訊都在上面,比如本地設定(LocalSettings.php,你接下來就知道了)的專案、擴充程式(也稱擴充套件或擴充功能)、外觀、實用工具等在上面都有介紹。

首先,我們找到官網上的下載連結,點進去。

頁面上會出現一個語言選擇框,還會出現一個下載圖示。此處我們按照一般順序,點擊圖示對應的連結,下載這個zip壓縮檔。

安裝MediaWiki[edit | edit source]

解壓與第一次測試[edit | edit source]

在上一步你應該已經測試完你的網頁伺服器了。此處假設你網頁伺服器在瀏覽器內的存取位址是localhost(在本地測試則確實是),在伺服器硬碟上對應的目錄位址是/www/wwwroot/mediawiki(且此目錄尚未建立)(這個目錄與上面的不一樣,請自行參照修改)。這個目錄的名稱很重要,我們下面再說為什麼。

把壓縮檔解壓到wwwroot裡面。你應該會看到一個叫做「mediawiki-1.xx.xx」的目錄。重新命名到mediawiki。存取你伺服器的位址。

此時,不出意外,你應該能看到一個MediaWiki的提示。如果這個提示包含一個指向mw-config的連結,恭喜你,離站點安裝成功只剩下最後一步了。如果報錯,則按照上面的指示,修復錯誤。比如,若缺少intl,則按照對應的PHP安裝方法去啟用這個PHP擴充程式。比如,若是在系統內建包管理中安裝的PHP,則也在包管理裡面找到對應的intl包。若是使用面板,則在對應的PHP設定中打開或安裝intl。

如果遇到了一些沒有辦法解決的問題,記得官網,下載頁面上也提供了他們所撰寫的MediaWiki安裝指南。參考這些資料也很有價值。

初組態MediaWiki[edit | edit source]

點擊上述的連結後,你大概就能看到一個很像維基百科(假設你在維基百科用的是Vector外觀)的組態介面了。

選擇站點語言
選擇站點語言。

對於中文使用者來說,這一步其實很重要——MediaWiki的一項殺手級特性,繁簡轉換,只有在站點語言設定為「中文 (zh)」時才會啟用。關於繁簡轉換到底如何運作,我們將在以後的篇目裡提到。

組態資料庫

在你之前組態資料庫軟體的時候,應該已經有一個root帳戶了。如果是面板或者使用了一些資料庫管理軟體,建立資料庫可能會隨新資料庫附帶一個帳戶,使用這個帳戶即可。否則,你需要參考網上關於資料庫的教學,新建一個給MediaWiki用的庫,並設定好帳戶權限。把所使用的資料庫名稱與資料庫使用者名稱、資料庫密碼填入。若有必要設定資料庫字首,請按照需求設定。無特殊需求勾選使用與安裝程式相同的帳戶。

設定站點基本資訊
設定站點基本資訊。

你需要設定站點的名稱和你站點的第一個帳戶。如果你的站點語言是zh,請注意,目前沒有什麼很好的方法對系統資訊中使用的站點名稱進行繁簡轉換,也就是只能用簡體或繁體。

站點的第一個帳戶可以就是你自己的——當然,也存在第一個帳戶作為非自然人帳戶使用的(也就是命名為站點名稱,自己再建立一個自己名字的帳戶)。這裡都沒什麼關係,但是第一個帳戶設定成你自己的會方便一點。

站點的Project空間可以選擇站點名稱,沒有問題,但是站點語言設定為zh時,你需要在後續處理一下命名空間顯示名的繁簡轉換,所以直接設定為Project也不錯。

選擇「多問我一些問題吧」以執行下面的步驟。否則會跳過下一步直接開始安裝。

使用者權限、外觀與擴充程式

使用者權限取決於你wiki的性質——也就是說,如果你希望別人能匿名編輯能匿名註冊,或者不希望,那麼按照自己的意願去設定。檔案上傳開啟與否也是一樣。

外觀和擴充程式我會放在另外兩篇裡面去說,就安裝教學這裡,如果顯示了有擴充程式和外觀,就都選上即可。如果沒有外觀(有的安裝方式會出現這種情況),你需要去官網搜尋Vector外觀(或者其他的)並放入站點對應的目錄裡,否則站點就會出現一個很醜的fallback提示。

上傳LocalSettings.php

在安裝完畢後,和其他的軟體不一樣,你需要把程式生成的LocalSettings.php檔案自己上傳到站點目錄裡。這麼做看似繁瑣了一些,但也可以避免對伺服器後台沒有實際操作權限的人透過mw-config對站點設定進行更多的變更。

在上傳對位置後,存取你的MediaWiki站點。

順利的話,你就會看見類似於這樣的首頁了:

下一步[edit | edit source]

到此,MediaWiki的安裝就結束了。這個站點已經可以運作了。

但是這個空空如也的站點,並不足夠你去好好發揮,也上不了台面。如果你是某個wiki的編者,你所思念的擴充程式、模板、模組、CSS、JS們也不在這裡。

此外,使用手機存取的時候,整個頁面好像不太對勁——Vector對手機也太不友好了。

在接下來的篇目中,這些問題將會被一一解答。

接下來的篇目[edit | edit source]