跳至內容

說明:MediaWiki安裝指南

出自陋室
Maintenance script​(留言 | 貢獻)2025年12月26日 (五) 21:10的修訂 (更新安装指南为通用步骤)

說明 本指南結合 MediaWiki 官方文檔與實際部署經驗,概述典型的安裝流程。請始終以 官方安裝指南 為權威來源,並根據自己的環境調整命令與路徑。

環境準備

系統與組件

確保服務器運行受支持的 Linux 發行版,例如 Debian 11/12、Ubuntu 22.04 及以上版本,或其他受 MediaWiki 官方支持的發行版。

  • 查看系統版本:
    cat /etc/os-release
    
  • 檢查 PHP、MySQL 與 HTTP 服務器版本:
    php -v
    mysql --version
    apachectl -v
    

建議使用 PHP 8.1/8.2、MySQL 8.0 或 MariaDB 10.6+,並將 Web 服務器的用戶(如 www-data、apache)納入後續目錄權限管理。

更新與依賴

在安裝前先更新軟件包並安裝基本依賴:

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mysql-server php php-cli php-mysql php-gd php-mbstring php-xml php-curl php-json php-zip unzip git -y

如需 HTTPS,可同時安裝 certbot/openssl 等工具,稍後用於申請證書或配置自簽名證書。

安裝步驟

1. 下載 MediaWiki

從官方 https://releases.wikimedia.org 下載當前穩定版本。示例命令:

cd /var/www
wget https://releases.wikimedia.org/mediawiki/1.44/mediawiki-1.44.0.tar.gz
tar -xzvf mediawiki-1.44.0.tar.gz
mv mediawiki-1.44.0 mediawiki

部署後可將目錄權限授予 Web 用戶,例如:chown -R www-data:www-data /var/www/mediawiki。

2. 創建數據庫與用戶

登錄 MySQL 創建專用數據庫與賬號:

CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost';
FLUSH PRIVILEGES;

建議使用長密碼、避免寫入命令歷史(可在 .mysql_history 中禁用)並定期更換憑據。

3. 運行安裝嚮導

在瀏覽器打開 http://<你的域名或IP>/mediawiki/mw-config/,安裝嚮導會依次要求填寫環境檢測、數據庫信息、站點名稱、管理員賬號、上傳目錄等。 在「數據庫」步驟中填寫上一步創建的數據庫信息。按照提示完成後會生成 LocalSettings.php,請下載到本地後上傳到 MediaWiki 根目錄。

4. 完成安裝與安全加固

上傳 LocalSettings 後即可通過 http://<域名>/mediawiki 訪問。

  • 刪除或鎖定安裝目錄:chmod -R 700 /var/www/mediawiki/mw-config
  • 確保 LocalSettings.php 權限為 600,Web 服務器可讀。
  • 關閉 config 目錄的寫權限:
    chmod a-w /var/www/mediawiki/config
    

後續依賴與擴展

php-wikidiff2

改善差異顯示,安裝命令:

sudo apt install php-wikidiff2 -y

配置:

$wgDiffEngine = 'wikidiff2';
$wgDiff3 = '/usr/bin/diff3';

php-luasandbox 與 Scribunto

安裝 Lua 沙箱:

sudo apt install php-luasandbox -y

啟用擴展:

wfLoadExtension('Scribunto');
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024;

多媒體工具

  • ffmpeg:sudo apt install ffmpeg -y
  • poppler-utils(PDF 處理):sudo apt install poppler-utils -y
  • Composer(依賴管理):curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
  • EasyTimeline/Score/PdfHandler 等擴展可根據需要分別安裝 ploticus、perl、lilypond、ghostscript、imagemagick 等依賴。

HTTPS 與短鏈接

配置 Apache 使其同時支持短鏈接與 https,可在虛擬主機中加入:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|less)$ [NC]
RewriteCond %{REQUEST_URI} !^/load.php [NC]
RewriteCond %{REQUEST_URI} !^/api.php [NC]
RewriteCond %{REQUEST_URI} !^/images/ [NC]
RewriteRule ^w/(.*)$ /mediawiki/index.php?title=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mediawiki/index.php [L,QSA]

配合以下 LocalSettings:

$wgScriptPath = '/mediawiki';
$wgArticlePath = '/w/$1';
$actions = [ 'view','edit','history','delete','purge','info','watch','unwatch','protect','rollback'];
foreach ($actions as $action) {
    $wgActionPaths[$action] = '/w/' . $action . '/$1';
}
$wgActionPaths['view'] = $wgArticlePath;

性能與維護

  • 使用緩存(APCu/Redis)加速頁面與消息
  • 啟用 wgMainCacheType、wgParserCacheType 等緩存參數
  • 定期運行維護腳本:
    php maintenance/run.php update.php
    php maintenance/run.php rebuildrecentchanges.php
    php maintenance/run.php refreshLinks.php
    php maintenance/run.php rebuildtextindex.php
    php maintenance/run.php runJobs.php
    

建議將常用腳本加入 cron,如每日凌晨自動執行,以減輕手動干預。

故障排查

  • 頁面渲染成 WikiText:檢查 PHP-FPM/Apache 是否正常、LocalSettings 是否可讀
  • 安裝嚮導無法完成:檢查文件夾權限,確保 mw-config 可寫且臨時可執行
  • 文件上傳失敗:核實 images/ 權限、PHP 限制與 $wgFileExtensions 設置
  • 數據庫連接出錯:確認憑據、字符集(utf8mb4)及正確的數據庫主機