帮助:MediaWiki 安装:修订间差异
更多操作
Maintenance script(留言 | 贡献) 按当前站点实际配置更新更新与依赖 |
Maintenance script(留言 | 贡献) 基于本站实际配置统一校对安装说明 |
||
| 第1行: | 第1行: | ||
'''说明''' 本指南结合 MediaWiki 官方文档与实际部署经验,概述 |
'''说明''' 本指南结合 MediaWiki 官方文档与实际部署经验,概述通用安装流程,并结合本站(learn.houjue.digital)当前环境给出可直接复用的参数与命令。请始终以 [https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki 官方安装指南] 为权威来源,并根据自己的环境调整命令与路径。 |
||
== 环境准备 == |
== 环境准备 == |
||
=== 系统与组件 === |
=== 系统与组件 === |
||
本站当前运行环境如下(可按需替换为你的实际版本): |
|||
确保服务器运行受支持的 Linux 发行版,例如 Debian 11/12、Ubuntu 22.04 及以上版本,或其他受 MediaWiki 官方支持的发行版。 |
|||
* 操作系统:Debian 12 (bookworm) |
|||
| ⚫ | |||
* Web 服务器:Nginx 1.22.x |
|||
* PHP:8.2.x(PHP-FPM) |
|||
* 数据库:MariaDB 10.11.x |
|||
常用版本检查命令: |
|||
| ⚫ | |||
cat /etc/os-release |
cat /etc/os-release |
||
nginx -v |
|||
| ⚫ | |||
* 检查 PHP、MySQL 与 HTTP 服务器版本:<syntaxhighlight lang="bash"> |
|||
php -v |
php -v |
||
mysql --version |
mysql --version |
||
apachectl -v |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
建议使用 PHP 8.1/8.2、MySQL 8.0 或 MariaDB 10.6+,并将 Web 服务器的用户(如 www-data、apache)纳入后续目录权限管理。 |
|||
=== 更新与依赖 === |
=== 更新与依赖 === |
||
根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + |
根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + MariaDB),建议按以下方式更新与安装依赖: |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
sudo apt update && sudo apt upgrade -y |
sudo apt update && sudo apt upgrade -y |
||
sudo apt install nginx |
sudo apt install nginx mariadb-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 |
sudo apt install ffmpeg poppler-utils imagemagick php-wikidiff2 -y |
||
| 第31行: | 第34行: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
说明:本站使用 |
说明:本站使用 Nginx + PHP-FPM,如需 Apache 请改用对应包与配置;PHP-FPM 请确保与 Nginx 配置匹配。 |
||
== 安装步骤 == |
== 安装步骤 == |
||
=== 1. 下载 |
=== 1. 下载 MediaWiki(通用流程) === |
||
从官方 https://releases.wikimedia.org 下载当前稳定版本。示例命令: |
从官方 https://releases.wikimedia.org 下载当前稳定版本。示例命令: |
||
<syntaxhighlight lang="bash"> |
|||
cd /var/www |
cd /var/www |
||
wget https://releases.wikimedia.org/mediawiki/1. |
wget https://releases.wikimedia.org/mediawiki/1.45/mediawiki-1.45.0.tar.gz |
||
tar -xzvf mediawiki-1. |
tar -xzvf mediawiki-1.45.0.tar.gz |
||
mv mediawiki-1. |
mv mediawiki-1.45.0 mediawiki |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
部署后可将目录权限授予 Web 用户,例如:<code>chown -R www-data:www-data /var/www/mediawiki</code>。 |
|||
本站实际路径:<code>/var/www/mediawiki</code>,Web 用户为 <code>www-data</code>。 |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
<syntaxhighlight lang="sql"> |
|||
CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
||
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY '强密码'; |
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY '强密码'; |
||
| 第49行: | 第56行: | ||
FLUSH PRIVILEGES; |
FLUSH PRIVILEGES; |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
建议使用长密码、避免写入命令历史(可在 <code>.mysql_history</code> 中禁用)并定期更换凭据。 |
|||
本站实际数据库配置(见 <code>/var/www/learn.php</code>): |
|||
=== 3. 运行安装向导 === |
|||
* 数据库:<code>learn</code> |
|||
| ⚫ | |||
* 用户:<code>learn</code> |
|||
| ⚫ | |||
* 主机:<code>localhost</code> |
|||
=== |
=== 3. 运行安装向导(通用流程) === |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
本站实际配置: |
|||
* <code>$wgServer = "https://learn.houjue.digital";</code> |
|||
* <code>$wgScriptPath = "";</code> |
|||
| ⚫ | |||
* 上传目录:<code>/sgcos/images</code>(映射为 <code>/images</code>) |
|||
=== 4. 完成安装与安全加固(通用流程) === |
|||
| ⚫ | |||
| ⚫ | |||
* 确保 <code>LocalSettings.php</code> 权限为 600,Web 服务器可读。 |
* 确保 <code>LocalSettings.php</code> 权限为 600,Web 服务器可读。 |
||
* 关闭 config 目录 |
* 关闭 config 目录写权限: |
||
<syntaxhighlight lang="bash"> |
|||
chmod a-w /var/www/mediawiki/config |
chmod a-w /var/www/mediawiki/config |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第65行: | 第83行: | ||
== 后续依赖与扩展 == |
== 后续依赖与扩展 == |
||
=== php-wikidiff2 === |
=== php-wikidiff2 === |
||
改善差异显示,安装命令: |
改善差异显示,安装命令: |
||
<syntaxhighlight lang="bash"> |
|||
sudo apt install php-wikidiff2 -y |
sudo apt install php-wikidiff2 -y |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
配置: |
配置: |
||
<syntaxhighlight lang="php"> |
|||
$wgDiffEngine = 'wikidiff2'; |
$wgDiffEngine = 'wikidiff2'; |
||
$wgDiff3 = '/usr/bin/diff3'; |
$wgDiff3 = '/usr/bin/diff3'; |
||
| 第74行: | 第94行: | ||
=== php-luasandbox 与 Scribunto === |
=== php-luasandbox 与 Scribunto === |
||
安装 Lua 沙箱: |
安装 Lua 沙箱: |
||
<syntaxhighlight lang="bash"> |
|||
sudo apt install php-luasandbox -y |
sudo apt install php-luasandbox -y |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
启用扩展: |
启用扩展: |
||
<syntaxhighlight lang="php"> |
|||
wfLoadExtension('Scribunto'); |
wfLoadExtension('Scribunto'); |
||
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024; |
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024; |
||
| 第89行: | 第111行: | ||
== HTTPS 与短链接 == |
== HTTPS 与短链接 == |
||
本站使用 Nginx,短链接与 HTTPS 参考: |
|||
配置 Apache 使其同时支持短链接与 https,可在虚拟主机中加入:<syntaxhighlight lang="apache"> |
|||
<syntaxhighlight lang="nginx"> |
|||
RewriteEngine On |
|||
# 强制 HTTPS |
|||
RewriteCond %{HTTPS} off |
|||
return 301 https://$host$request_uri; |
|||
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] |
|||
# MediaWiki 路由(示例,需结合你的站点结构) |
|||
RewriteCond %{REQUEST_URI} !^/load.php [NC] |
|||
location /wiki/ { |
|||
RewriteCond %{REQUEST_URI} !^/api.php [NC] |
|||
try_files $uri $uri/ /index.php?$args; |
|||
RewriteCond %{REQUEST_URI} !^/images/ [NC] |
|||
} |
|||
RewriteRule ^w/(.*)$ /mediawiki/index.php?title=$1 [L,QSA] |
|||
location ~ \.php$ { |
|||
RewriteCond %{REQUEST_FILENAME} !-f |
|||
include snippets/fastcgi-php.conf; |
|||
RewriteCond %{REQUEST_FILENAME} !-d |
|||
fastcgi_pass unix:/run/php/php8.2-fpm.sock; |
|||
RewriteRule ^(.*)$ /mediawiki/index.php [L,QSA] |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
$actions = [ 'view','edit','history','delete','purge','info','watch','unwatch','protect','rollback']; |
|||
foreach ($actions as $action) { |
|||
$wgActionPaths[$action] = '/w/' . $action . '/$1'; |
|||
} |
} |
||
| ⚫ | |||
$wgActionPaths['view'] = $wgArticlePath; |
|||
| ⚫ | |||
<syntaxhighlight lang="php"> |
|||
| ⚫ | |||
$wgArticlePath = '/wiki/$1'; |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
== 性能与维护 == |
== 性能与维护 == |
||
* 使用缓存(APCu/Redis)加速页面与消息 |
* 使用缓存(APCu/Redis)加速页面与消息 |
||
* 启用 <code>wgMainCacheType</code>、<code>wgParserCacheType</code> 等缓存参数 |
* 启用 <code>$wgMainCacheType</code>、<code>$wgParserCacheType</code> 等缓存参数 |
||
* 定期运行维护脚本: |
* 定期运行维护脚本: |
||
<syntaxhighlight lang="bash"> |
|||
| ⚫ | |||
php maintenance/run.php |
php /var/www/mediawiki/maintenance/run.php update.php |
||
php maintenance/run.php |
php /var/www/mediawiki/maintenance/run.php rebuildrecentchanges.php |
||
php maintenance/run.php |
php /var/www/mediawiki/maintenance/run.php refreshLinks.php |
||
php maintenance/run.php |
php /var/www/mediawiki/maintenance/run.php rebuildtextindex.php |
||
| ⚫ | |||
</syntaxhighlight> |
</syntaxhighlight> |
||
建议将常用脚本加入 cron,如每日凌晨自动执行,以减轻手动干预。 |
|||
== 故障排查 == |
== 故障排查 == |
||
* 页面渲染成 WikiText:检查 PHP-FPM/ |
* 页面渲染成 WikiText:检查 PHP-FPM/Nginx 是否正常、LocalSettings 是否可读 |
||
* 安装向导无法完成:检查文件夹权限,确保 <code>mw-config</code> 可写且临时可执行 |
* 安装向导无法完成:检查文件夹权限,确保 <code>mw-config</code> 可写且临时可执行 |
||
* 文件上传失败:核实 <code> |
* 文件上传失败:核实上传目录与权限(本站为 <code>/sgcos/images</code>)以及 PHP 限制与 <code>$wgFileExtensions</code> 设置 |
||
* 数据库连接出错:确认凭据、字符集(utf8mb4)及正确的数据库主机 |
* 数据库连接出错:确认凭据、字符集(utf8mb4)及正确的数据库主机 |
||
2026年1月12日 (一) 23:04的最新版本
说明 本指南结合 MediaWiki 官方文档与实际部署经验,概述通用安装流程,并结合本站(learn.houjue.digital)当前环境给出可直接复用的参数与命令。请始终以 官方安装指南 为权威来源,并根据自己的环境调整命令与路径。
环境准备
系统与组件
本站当前运行环境如下(可按需替换为你的实际版本):
- 操作系统:Debian 12 (bookworm)
- Web 服务器:Nginx 1.22.x
- PHP:8.2.x(PHP-FPM)
- 数据库:MariaDB 10.11.x
常用版本检查命令:
cat /etc/os-release
nginx -v
php -v
mysql --version
更新与依赖
根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + MariaDB),建议按以下方式更新与安装依赖:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mariadb-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 + PHP-FPM,如需 Apache 请改用对应包与配置;PHP-FPM 请确保与 Nginx 配置匹配。
安装步骤
1. 下载 MediaWiki(通用流程)
从官方 https://releases.wikimedia.org 下载当前稳定版本。示例命令:
cd /var/www
wget https://releases.wikimedia.org/mediawiki/1.45/mediawiki-1.45.0.tar.gz
tar -xzvf mediawiki-1.45.0.tar.gz
mv mediawiki-1.45.0 mediawiki
本站实际路径:/var/www/mediawiki,Web 用户为 www-data。
2. 创建数据库与用户(通用流程)
登录数据库创建专用数据库与账号:
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;
本站实际数据库配置(见 /var/www/learn.php):
- 数据库:
learn - 用户:
learn - 主机:
localhost
3. 运行安装向导(通用流程)
在浏览器打开 https://<你的域名或IP>/mw-config/,安装向导会依次要求填写环境检测、数据库信息、站点名称、管理员账号、上传目录等。
完成后会生成 LocalSettings.php,请放到 MediaWiki 根目录。
本站实际配置:
$wgServer = "https://learn.houjue.digital";$wgScriptPath = "";$wgArticlePath = "/wiki/$1";- 上传目录:
/sgcos/images(映射为/images)
4. 完成安装与安全加固(通用流程)
上传 LocalSettings 后即可通过站点访问。
- 锁定安装目录:
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 与短链接
本站使用 Nginx,短链接与 HTTPS 参考:
# 强制 HTTPS
return 301 https://$host$request_uri;
# MediaWiki 路由(示例,需结合你的站点结构)
location /wiki/ {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
配合以下 LocalSettings:
$wgScriptPath = '';
$wgArticlePath = '/wiki/$1';
性能与维护
- 使用缓存(APCu/Redis)加速页面与消息
- 启用
$wgMainCacheType、$wgParserCacheType等缓存参数 - 定期运行维护脚本:
php /var/www/mediawiki/maintenance/run.php update.php
php /var/www/mediawiki/maintenance/run.php rebuildrecentchanges.php
php /var/www/mediawiki/maintenance/run.php refreshLinks.php
php /var/www/mediawiki/maintenance/run.php rebuildtextindex.php
php /var/www/mediawiki/maintenance/run.php runJobs.php
故障排查
- 页面渲染成 WikiText:检查 PHP-FPM/Nginx 是否正常、LocalSettings 是否可读
- 安装向导无法完成:检查文件夹权限,确保
mw-config可写且临时可执行 - 文件上传失败:核实上传目录与权限(本站为
/sgcos/images)以及 PHP 限制与$wgFileExtensions设置 - 数据库连接出错:确认凭据、字符集(utf8mb4)及正确的数据库主机