帮助:MediaWiki 安装:修订间差异
更多操作
Maintenance script(留言 | 贡献) 修复格式问题和内容准确性,包括链接格式、版本兼容性、配置文件完整性 |
Maintenance script(留言 | 贡献) 基于本站实际配置统一校对安装说明 |
||
| (未显示同一用户的5个中间版本) | |||
| 第1行: | 第1行: | ||
'''说明''' 本指南结合 MediaWiki 官方文档与实际部署经验,概述通用安装流程,并结合本站(learn.houjue.digital)当前环境给出可直接复用的参数与命令。请始终以 [https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki 官方安装指南] 为权威来源,并根据自己的环境调整命令与路径。 |
|||
'''注意:''' 此笔记基于 MediaWiki 官方手册及其他网络教程校对,适用于在 Debian Linux 服务器(使用宝塔面板)上安装 MediaWiki。 |
|||
== |
== 环境准备 == |
||
=== 系统与组件 === |
|||
本站当前运行环境如下(可按需替换为你的实际版本): |
|||
* 操作系统:Debian 12 (bookworm) |
|||
* Web 服务器:Nginx 1.22.x |
|||
* PHP:8.2.x(PHP-FPM) |
|||
* 数据库:MariaDB 10.11.x |
|||
常用版本检查命令: |
|||
'''服务器提供商''': [https://cloud.tencent.com/product/lighthouse 腾讯云]-轻量云(轻量应用服务器) |
|||
'''地域和可用区''': 新加坡 | 新加坡一区 |
|||
'''实例规格''': |
|||
实例ID = lhins-**** |
|||
实例名称 = sg |
|||
CPU = 2核 |
|||
内存 = 2GB |
|||
系统盘 = SSD云硬盘 50GB |
|||
月流量包 = 1024GB(峰值带宽 30Mbps) |
|||
公网IPv4 = 43.163.**** |
|||
'''域名''': |
|||
* www.houjue.digital |
|||
* www.xuepengjia.baby |
|||
'''镜像''': Debian 12.0 64bit |
|||
== 服务器环境 == |
|||
=== 操作系统 === |
|||
'''操作系统''': Debian GNU/Linux 12 (bookworm) |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
cat /etc/os-release |
cat /etc/os-release |
||
nginx -v |
|||
php -v |
|||
mysql --version |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
=== |
=== 更新与依赖 === |
||
根据本站当前部署(Debian 12 + Nginx + PHP 8.2 FPM + MariaDB),建议按以下方式更新与安装依赖: |
|||
<syntaxhighlight lang="bash"> |
|||
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 |
|||
</syntaxhighlight> |
|||
如需启用 Lua/时间线/乐谱等扩展,可按需补充: |
|||
* '''[https://www.bt.cn/new/download.html 宝塔Linux面板]''' : 7.9.8 |
|||
* '''[https://httpd.apache.org/ Apache httpd]''': 2.4.65 |
|||
* '''MySQL''': 8.0.36 (MediaWiki 最低要求 5.7。大内存机器可考虑 8.0+,官方也推荐 MongoDB) |
|||
* '''PHP''': 8.2.29 (MediaWiki 1.44.0 支持 PHP 8.1 - 8.3,推荐使用 8.2) |
|||
* '''[https://www.phpmyadmin.net/downloads/ phpMyAdmin]''': 5.2(可通过宝塔安装) |
|||
== 安装前准备 == |
|||
在开始安装 MediaWiki 前,请确保系统已更新并安装了必要的依赖。 |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
# Scribunto |
|||
sudo apt update |
|||
sudo apt |
sudo apt install php-luasandbox -y |
||
# EasyTimeline/Score 等 |
|||
sudo apt install perl ploticus lilypond ghostscript -y |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
说明:本站使用 Nginx + PHP-FPM,如需 Apache 请改用对应包与配置;PHP-FPM 请确保与 Nginx 配置匹配。 |
|||
== MediaWiki 安装步骤 == |
|||
=== 1. 下载 MediaWiki === |
|||
== 安装步骤 == |
|||
从官方下载页面获取最新的稳定版本(例如 1.44.0)。生产环境建议使用稳定版。 |
|||
=== 1. 下载 MediaWiki(通用流程) === |
|||
从官方 https://releases.wikimedia.org 下载当前稳定版本。示例命令: |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
cd /www |
cd /var/www |
||
wget https://releases.wikimedia.org/mediawiki/1.45/mediawiki-1.45.0.tar.gz |
|||
# 使用 wget 下载,请替换为官网最新的稳定版本链接 |
|||
tar -xzvf mediawiki-1.45.0.tar.gz |
|||
mv mediawiki-1.45.0 mediawiki |
|||
# 解压后得到 mediawiki-1.44.0 目录 |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
本站实际路径:<code>/var/www/mediawiki</code>,Web 用户为 <code>www-data</code>。 |
|||
=== 2. 创建数据库 === |
|||
=== 2. 创建数据库与用户(通用流程) === |
|||
登录数据库创建专用数据库与账号: |
|||
<syntaxhighlight lang="sql"> |
<syntaxhighlight lang="sql"> |
||
CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
|||
-- 登录 MySQL,请使用您的 root 密码 |
|||
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY '强密码'; |
|||
mysql -u root -p |
|||
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost'; |
|||
-- 在 MySQL 提示符下执行以下命令,请将 '****' 替换为强密码 |
|||
CREATE DATABASE my_wiki; |
|||
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY '****'; |
|||
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION; |
|||
FLUSH PRIVILEGES; |
FLUSH PRIVILEGES; |
||
EXIT; |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
本站实际数据库配置(见 <code>/var/www/learn.php</code>): |
|||
'''安全提示''':MySQL/MariaDB 可能会在历史记录文件中记录包含密码的查询命令。请留意并妥善处理 <code>.mysql_history</code> 文件。 |
|||
* 数据库:<code>learn</code> |
|||
* 用户:<code>learn</code> |
|||
* 主机:<code>localhost</code> |
|||
=== 3. 运行安装 |
=== 3. 运行安装向导(通用流程) === |
||
在浏览器打开 <code>https://<你的域名或IP>/mw-config/</code>,安装向导会依次要求填写环境检测、数据库信息、站点名称、管理员账号、上传目录等。 |
|||
完成后会生成 <code>LocalSettings.php</code>,请放到 MediaWiki 根目录。 |
|||
本站实际配置: |
|||
通过浏览器访问您的 MediaWiki 目录,例如:<code>http://您的域名或IP/mediawiki-1.44.0/</code>。这将自动跳转到安装向导 (<code>mw-config/</code>)。 |
|||
* <code>$wgServer = "https://learn.houjue.digital";</code> |
|||
* <code>$wgScriptPath = "";</code> |
|||
* <code>$wgArticlePath = "/wiki/$1";</code> |
|||
* 上传目录:<code>/sgcos/images</code>(映射为 <code>/images</code>) |
|||
=== 4. 完成安装与安全加固(通用流程) === |
|||
'''安装向导关键步骤''': |
|||
上传 LocalSettings 后即可通过站点访问。 |
|||
# '''环境检查''':确保所有检测通过。 |
|||
* 锁定安装目录:<code>chmod -R 700 /var/www/mediawiki/mw-config</code> |
|||
# '''数据库设置''':选择 "MySQL" 或 "MariaDB"。填写数据库信息: |
|||
* 确保 <code>LocalSettings.php</code> 权限为 600,Web 服务器可读。 |
|||
## ''数据库主机'':localhost |
|||
* 关闭 config 目录写权限: |
|||
## ''数据库名称'':my_wiki |
|||
## ''数据库用户名'':wikiuser |
|||
## ''数据库密码'':**** |
|||
# '''Wiki 名称''':设置您的 Wiki 站点名称。 |
|||
# '''管理员账户''':创建初始管理员账户(用户名如 <code>WikiSysop</code>)并设置强密码。 |
|||
# '''其他选项''':根据需求选择扩展功能、皮肤等,或保持默认。 |
|||
点击 "安装 MediaWiki"。如果安装成功,页面会提示并允许您下载 <code>LocalSettings.php</code> 文件。 |
|||
=== 4. 完成安装 === |
|||
将下载的 <code>LocalSettings.php</code> 文件上传到您的 MediaWiki 安装目录(例如 <code>/www/wwwroot/mediawiki-1.44.0/</code>)。上传后,Wiki 即可通过 <code>http://您的域名或IP/mediawiki-1.44.0/</code> 访问。 |
|||
'''安全建议''':安装完成后,可以考虑移除 <code>config</code> 目录的世界可写权限: |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
chmod a-w / |
chmod a-w /var/www/mediawiki/config |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
== |
== 后续依赖与扩展 == |
||
以下是为支持特定 MediaWiki 功能需要安装的依赖。 |
|||
=== php-wikidiff2 === |
=== php-wikidiff2 === |
||
改善差异显示,安装命令: |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
sudo apt |
sudo apt install php-wikidiff2 -y |
||
# 查找扩展所在路径,通常不需要手动在 php.ini 中指定,宝塔面板的 PHP 管理可能已自动启用 |
|||
find /usr/lib/ -name wikidiff2.so |
|||
php -m | grep wikidiff2 # 检查是否已加载 |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
配置: |
|||
在 <code>LocalSettings.php</code> 中配置: |
|||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$wgDiffEngine = |
$wgDiffEngine = 'wikidiff2'; |
||
$wgDiff3 = |
$wgDiff3 = '/usr/bin/diff3'; |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=== php-luasandbox === |
=== php-luasandbox 与 Scribunto === |
||
安装 Lua 沙箱: |
|||
用于支持 Scribunto 扩展,运行 Lua 脚本。 |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
sudo apt install php-luasandbox -y |
sudo apt install php-luasandbox -y |
||
php -m | grep luasandbox # 检查是否已加载 |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
启用扩展: |
|||
在 <code>LocalSettings.php</code> 中启用 Scribunto: |
|||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
wfLoadExtension( |
wfLoadExtension('Scribunto'); |
||
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024; |
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024; |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=== |
=== 多媒体工具 === |
||
* ffmpeg:<code>sudo apt install ffmpeg -y</code> |
|||
用于处理视频文件。 |
|||
* poppler-utils(PDF 处理):<code>sudo apt install poppler-utils -y</code> |
|||
<syntaxhighlight lang="bash"> |
|||
* Composer(依赖管理):<code>curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer</code> |
|||
sudo apt install ffmpeg -y |
|||
* EasyTimeline/Score/PdfHandler 等扩展可根据需要分别安装 ploticus、perl、lilypond、ghostscript、imagemagick 等依赖。 |
|||
ffmpeg -version # 验证安装 |
|||
</syntaxhighlight> |
|||
== HTTPS 与短链接 == |
|||
本站使用 Nginx,短链接与 HTTPS 参考: |
|||
PHP 依赖管理工具,某些 MediaWiki 扩展需要。 |
|||
<syntaxhighlight lang=" |
<syntaxhighlight lang="nginx"> |
||
# 强制 HTTPS |
|||
# 安装 Composer (具体命令请参考 getcomposer.org) |
|||
return 301 https://$host$request_uri; |
|||
curl -sS https://getcomposer.org/installer | php |
|||
mv composer.phar /usr/local/bin/composer |
|||
composer --version # 验证安装 |
|||
</syntaxhighlight> |
|||
在 MediaWiki 根目录下,可以更新依赖(非开发环境): |
|||
<syntaxhighlight lang="bash"> |
|||
composer update --no-dev |
|||
</syntaxhighlight> |
|||
# MediaWiki 路由(示例,需结合你的站点结构) |
|||
== 扩展特定依赖 == |
|||
location /wiki/ { |
|||
try_files $uri $uri/ /index.php?$args; |
|||
=== EasyTimeline 扩展 === |
|||
} |
|||
用于生成时间线图表。 |
|||
location ~ \.php$ { |
|||
<syntaxhighlight lang="bash"> |
|||
include snippets/fastcgi-php.conf; |
|||
sudo apt install ploticus perl -y |
|||
fastcgi_pass unix:/run/php/php8.2-fpm.sock; |
|||
</syntaxhighlight> |
|||
在 <code>LocalSettings.php</code> 中配置: |
|||
<syntaxhighlight lang="php"> |
|||
$wgTimelinePloticusCommand = '/usr/bin/ploticus'; |
|||
$wgTimelinePerlCommand = "/usr/bin/perl"; |
|||
$wgTimelineFontDirectory = "/usr/share/fonts/truetype/freefont"; // 字体路径请根据系统实际情况调整 |
|||
$wgTimelineFontFile = 'ascii'; // 字体文件名请根据系统实际情况调整 |
|||
</syntaxhighlight> |
|||
=== Score 扩展 === |
|||
用于渲染乐谱。 |
|||
<syntaxhighlight lang="bash"> |
|||
sudo apt install lilypond ghostscript fluidsynth imagemagick lame -y |
|||
</syntaxhighlight> |
|||
在 <code>LocalSettings.php</code> 中配置: |
|||
<syntaxhighlight lang="php"> |
|||
$wgScoreTrim = true; |
|||
$wgImageMagickConvertCommand = '/usr/bin/convert'; |
|||
$wgScoreSafeMode = false; // 注意:关闭安全模式可能有安全风险,请确保系统安全 |
|||
$wgScoreLame = '/usr/bin/lame'; |
|||
</syntaxhighlight> |
|||
=== PdfHandler 扩展 === |
|||
用于预览 PDF 文件。 |
|||
<syntaxhighlight lang="bash"> |
|||
sudo apt install poppler-utils -y # 提供 pdftotext, pdfinfo 等工具 |
|||
</syntaxhighlight> |
|||
在 <code>LocalSettings.php</code> 中配置(Ghostscript 和 ImageMagick 已在前面安装): |
|||
<syntaxhighlight lang="php"> |
|||
$wgPdfProcessor = '/usr/bin/gs'; |
|||
$wgPdfPostProcessor = $wgImageMagickConvertCommand; // 假设 $wgImageMagickConvertCommand 已定义为 '/usr/bin/convert' |
|||
$wgPdfInfo = '/usr/bin/pdfinfo'; |
|||
$wgPdftoText = '/usr/bin/pdftotext'; |
|||
</syntaxhighlight> |
|||
== 服务器配置 == |
|||
=== Apache 与 HTTPS === |
|||
通过宝塔面板或手动配置,确保站点启用了 HTTPS 并设置了重定向。 |
|||
'''伪静态配置(.htaccess)''' |
|||
将以下规则放入 <code>/www/wwwroot/mediawiki-1.44.0/.htaccess</code> 文件,以实现短链接(如 <code>/w/PageTitle</code>)和 HTTPS 强制跳转。 |
|||
<syntaxhighlight lang="apache"> |
|||
# 强制 HTTPS(优先放最上面) |
|||
RewriteCond %{HTTPS} off |
|||
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
|||
# 启用 URL 重写 |
|||
RewriteEngine On |
|||
# 排除静态资源和 API 不进行重写 |
|||
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] |
|||
# 重写 wiki 页面路径 |
|||
RewriteRule ^w/(.*)$ /index.php?title=$1 [L,QSA] |
|||
# 默认重写(必须放最后) |
|||
RewriteCond %{REQUEST_FILENAME} !-f |
|||
RewriteCond %{REQUEST_FILENAME} !-d |
|||
RewriteRule ^(.*)$ /index.php [L,QSA] |
|||
</syntaxhighlight> |
|||
在 <code>LocalSettings.php</code> 中配置相应的动作路径和文章路径,以配合短链接: |
|||
<syntaxhighlight lang="php"> |
|||
$wgScriptPath = "/mediawiki-1.44.0"; // MediaWiki 的安装路径,根据实际情况修改 |
|||
$wgArticlePath = "/w/$1"; // 设置文章短链接路径 |
|||
// 以下代码为各种动作定义短链接路径(需与 .htaccess 规则配合) |
|||
$actions = [ |
|||
'view', 'edit', 'watch', 'unwatch', 'delete', 'revert', 'rollback', |
|||
'protect', 'unprotect', 'markpatrolled', 'render', 'submit', 'history', |
|||
'purge', 'info' |
|||
]; |
|||
foreach ($actions as $action) { |
|||
$wgActionPaths[$action] = "/w/$action/$1"; |
|||
} |
} |
||
// 确保 'view' 动作使用上面设置的 $wgArticlePath |
|||
$wgActionPaths['view'] = $wgArticlePath; |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
配合以下 LocalSettings: |
|||
=== 安全配置 === |
|||
'''保护上传目录''':在 Apache 虚拟主机配置或 <code>.htaccess</code> 中,对上传目录(例如 <code>images/</code>)添加限制,禁止执行 PHP 等脚本。 |
|||
<syntaxhighlight lang="apache"> |
|||
<Directory "/www/wwwroot/mediawiki-1.44.0/images"> |
|||
# 禁止执行特定脚本类型 |
|||
<FilesMatch "\.(php|php5|pl|py|jsp|asp|htm|html|cgi|sh)$"> |
|||
Require all denied |
|||
</FilesMatch> |
|||
# 设置安全头 |
|||
Header always set X-Content-Type-Options "nosniff" |
|||
</Directory> |
|||
</syntaxhighlight> |
|||
设置目录权限: |
|||
<syntaxhighlight lang="bash"> |
|||
chown -R www-data:www-data /www/wwwroot/mediawiki-1.44.0/images # 确保 Web 服务器用户有写权限 |
|||
chmod 755 /www/wwwroot/mediawiki-1.44.0/images |
|||
</syntaxhighlight> |
|||
=== MySQL 配置建议 === |
|||
* 将所有表转换为 '''InnoDB''' 存储引擎。 |
|||
* 使用 <code>utf8mb4</code> 字符集以支持更广泛的 Unicode 字符。 |
|||
=== PHP 配置 === |
|||
'''需要启用的扩展''': |
|||
通过宝塔面板的 PHP 管理界面或编辑 <code>php.ini</code>,确保以下扩展已启用(大部分可能已默认安装或启用): |
|||
<syntaxhighlight lang="bash"> |
|||
php -m # 查看已加载的扩展 |
|||
</syntaxhighlight> |
|||
核心扩展包括:<code>gd</code>, <code>intl</code>, <code>xml</code>, <code>mbstring</code>, <code>pdo_mysql</code>, <code>json</code>, <code>fileinfo</code>, <code>curl</code>, <code>zip</code> 等。根据前面安装的依赖,还需确保 <code>wikidiff2</code>, <code>luasandbox</code>, <code>imagick</code> 等扩展已加载。 |
|||
'''需要解除禁用的函数'''(某些扩展如 Score 需要): |
|||
在宝塔面板的 PHP 设置中,将以下函数从“禁用函数”列表中移除: |
|||
* <code>proc_open</code> |
|||
* <code>popen</code> |
|||
* <code>putenv</code> |
|||
调整 PHP 限制以适应文件上传和处理: |
|||
在 <code>php.ini</code> 中调整(具体值根据需求设定): |
|||
<syntaxhighlight lang="ini"> |
|||
memory_limit = 128M |
|||
upload_max_filesize = 20M |
|||
post_max_size = 20M |
|||
max_execution_time = 60 |
|||
</syntaxhighlight> |
|||
== 站点配置 (LocalSettings.php) == |
|||
=== 数据库信息安全 === |
|||
考虑将数据库凭证从 <code>LocalSettings.php</code> 中分离。 |
|||
1. 创建单独的配置文件,例如 <code>/www/wwwroot/lib.php</code>: |
|||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$wgScriptPath = ''; |
|||
<?php |
|||
$ |
$wgArticlePath = '/wiki/$1'; |
||
$wgDBname = 'my_wiki'; |
|||
$wgDBuser = 'wikiuser'; |
|||
$wgDBpassword = '****'; // 替换为实际密码 |
|||
?> |
|||
</syntaxhighlight> |
|||
2. 在 <code>LocalSettings.php</code> 开头包含此文件: |
|||
<syntaxhighlight lang="php"> |
|||
include('/www/wwwroot/lib.php'); |
|||
// 注意:确保 lib.php 文件权限严格(如 600),且不在 Web 可访问目录下。 |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
== 性能与维护 == |
|||
* 使用缓存(APCu/Redis)加速页面与消息 |
|||
<syntaxhighlight lang="php"> |
|||
* 启用 <code>$wgMainCacheType</code>、<code>$wgParserCacheType</code> 等缓存参数 |
|||
$wgLogos = [ |
|||
* 定期运行维护脚本: |
|||
'1x' => "$wgResourceBasePath/resources/assets/logo.png", // 替换为您的 logo 路径 |
|||
'icon' => "$wgResourceBasePath/resources/assets/icon.png", // 替换为您的图标路径 |
|||
]; |
|||
$wgFavicon = "$wgResourceBasePath/resources/assets/favicon.ico"; // 替换为您的 favicon 路径 |
|||
</syntaxhighlight> |
|||
=== 移动端皮肤 === |
|||
如果安装了 Citizen 等皮肤,可以将其设为移动端默认: |
|||
<syntaxhighlight lang="php"> |
|||
$wgDefaultMobileSkin = 'citizen'; |
|||
</syntaxhighlight> |
|||
== MediaWiki 维护 == |
|||
定期运行维护脚本以保持 Wiki 健康运行。 |
|||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
php /var/www/mediawiki/maintenance/run.php update.php |
|||
PHP_CLI=$(ls -d /www/server/php/*/bin/php | head -n1) |
|||
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 |
|||
$PHP_CLI maintenance/refreshLinks.php && \ |
|||
$PHP_CLI maintenance/initSiteStats.php --update && \ |
|||
$PHP_CLI maintenance/rebuildtextindex.php && \ |
|||
$PHP_CLI maintenance/purgeExpiredBlocks.php && \ |
|||
$PHP_CLI maintenance/generateSitemap.php && \ |
|||
$PHP_CLI maintenance/dumpBackup.php --current --output file:pages.xml |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
== 故障排查 == |
|||
可以将这些命令添加到 crontab 中定期执行。 |
|||
* 页面渲染成 WikiText:检查 PHP-FPM/Nginx 是否正常、LocalSettings 是否可读 |
|||
* 安装向导无法完成:检查文件夹权限,确保 <code>mw-config</code> 可写且临时可执行 |
|||
== 故障排除 == |
|||
* 文件上传失败:核实上传目录与权限(本站为 <code>/sgcos/images</code>)以及 PHP 限制与 <code>$wgFileExtensions</code> 设置 |
|||
* 数据库连接出错:确认凭据、字符集(utf8mb4)及正确的数据库主机 |
|||
* '''安装时无法写入 <code>config</code> 目录''':检查目录权限和 SELinux 设置(尤其在 CentOS/RHEL 系系统上)。可能需要执行: |
|||
<syntaxhighlight lang="bash"> |
|||
# 临时调整权限(安装后应改回) |
|||
chmod 755 /www/wwwroot/mediawiki-1.44.0/config |
|||
# 如果使用 SELinux,可能需要调整上下文 |
|||
semanage fcontext -a -t httpd_sys_rw_content_t "/www/wwwroot/mediawiki-1.44.0/config(/.*)?" |
|||
restorecon -R -v /www/wwwroot/mediawiki-1.44.0/config |
|||
</syntaxhighlight> |
|||
* '''页面显示 Wiki 标记(WikiText)而非渲染后的内容''':检查 PHP 解析是否正常,以及 <code>LocalSettings.php</code> 是否存在且可读。 |
|||
* '''上传文件失败''':检查 <code>images/</code> 目录权限、PHP 文件上传大小限制 (<code>upload_max_filesize</code>, <code>post_max_size</code>) 以及 Apache 配置。 |
|||
{{Template:站点帮助文档}} |
{{Template:站点帮助文档}} |
||
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)及正确的数据库主机