打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

帮助:MediaWiki 安装:修订间差异

来自陋室
删除的内容 添加的内容
Maintenance script留言 | 贡献
更新安装指南为通用步骤
Maintenance script留言 | 贡献
按当前站点实际配置更新更新与依赖
第15行: 第15行:


=== 更新与依赖 ===
=== 更新与依赖 ===
根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + MySQL),建议按以下方式更新与安装依赖:
在安装前先更新软件包并安装基本依赖:<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo apt update && sudo apt upgrade -y
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
sudo apt install nginx mysql-server php8.2-fpm php8.2-cli php8.2-mysql php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-intl php8.2-apcu unzip git -y
# 多媒体与差异对比工具
sudo apt install ffmpeg poppler-utils imagemagick php-wikidiff2 -y
</syntaxhighlight>
</syntaxhighlight>
如需 HTTPS,可同时安装 certbot/openssl 等工具,稍后用于申请证书或配置自签名证书。


如需启用 Lua/时间线/乐谱等扩展,可按需补充:
<syntaxhighlight lang="bash">
# Scribunto
sudo apt install php-luasandbox -y
# EasyTimeline/Score 等
sudo apt install perl ploticus lilypond ghostscript -y
</syntaxhighlight>

说明:本站使用 Nginx,如需 Apache 请改用对应包与配置;PHP-FPM 请确保与 Nginx 配置匹配。
== 安装步骤 ==
== 安装步骤 ==
=== 1. 下载 MediaWiki ===
=== 1. 下载 MediaWiki ===

2026年1月12日 (一) 23:00的版本

说明 本指南结合 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)纳入后续目录权限管理。

更新与依赖

根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + MySQL),建议按以下方式更新与安装依赖:

sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server php8.2-fpm php8.2-cli php8.2-mysql php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-intl php8.2-apcu unzip git -y
# 多媒体与差异对比工具
sudo apt install ffmpeg poppler-utils imagemagick php-wikidiff2 -y

如需启用 Lua/时间线/乐谱等扩展,可按需补充:

# Scribunto
sudo apt install php-luasandbox -y
# EasyTimeline/Score 等
sudo apt install perl ploticus lilypond ghostscript -y

说明:本站使用 Nginx,如需 Apache 请改用对应包与配置;PHP-FPM 请确保与 Nginx 配置匹配。

安装步骤

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)加速页面与消息
  • 启用 wgMainCacheTypewgParserCacheType 等缓存参数
  • 定期运行维护脚本:
    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)及正确的数据库主机