跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机条目
特殊页面
站点
关于陋室
维基社群
新闻动态
联系我们
活跃用户
统计
参与
上传文件
待撰页面
新建页面
编辑入门
帮助
内容
分类树
所有页面
前缀索引
最多链入页面
热门页面
维护
MediaWiki 消息页
系统消息
小工具管理
小工具定义
用户组权限
界面
侧边栏
英文侧边栏
站点公告
匿名用户通知
公共样式表
公共脚本
陋室
搜索
搜索
中文(简体)
外观
登录
个人工具
登录
沙盒
查看“︁Help:MediaWiki安装指南”︁的源代码
帮助
讨论
简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
Cargo数据
获取短链接
外观
移至侧栏
隐藏
←
Help:MediaWiki安装指南
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、
自动确认用户
您可以查看和复制此页面的源代码。
'''注意:'''此笔记基于 MediaWiki 官方手册及其他网络教程校对,适用于在 Debian Linux 服务器(使用宝塔面板)上安装 MediaWiki。 == 服务器配置 == ''服务器提供商''': [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"> cat/etc/os-release </syntaxhighlight> === 服务器软件 === * '''[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"> sudo apt update sudo apt upgrade -y </syntaxhighlight> == MediaWiki 安装步骤 == === 1. 下载 MediaWiki === 从官方下载页面获取最新的稳定版本(例如 1.44.0)。生产环境建议使用稳定版。 <syntaxhighlight lang="bash"> cd/www/wwwroot/# 使用 wget 下载,请替换为官网最新的稳定版本链接 wget https://releases.wikimedia.org/mediawiki/1.44/mediawiki-1.44.0.tar.gz tar -xzvf mediawiki-1.44.0.tar.gz # 解压后得到 mediawiki-1.44.0 目录 </syntaxhighlight> === 2. 创建数据库 === 为 MediaWiki 创建一个专用的数据库和用户。 <syntaxhighlight lang="sql"> -- 登录 MySQL,请使用您的 root 密码 mysql -u root -p -- 在 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; EXIT; </syntaxhighlight> '''安全提示''':MySQL/MariaDB 可能会在历史记录文件中记录包含密码的查询命令。请留意并妥善处理 <code>.mysql_history</code> 文件。 === 3. 运行安装脚本 === 通过浏览器访问您的 MediaWiki 目录,例如:<code>http://您的域名或IP/mediawiki-1.44.0/</code>。这将自动跳转到安装向导 (<code>mw-config/</code>)。 '''安装向导关键步骤''': # '''环境检查''':确保所有检测通过。 # '''数据库设置''':选择 "MySQL" 或 "MariaDB"。填写数据库信息: ## ''数据库主机'':localhost ## ''数据库名称'':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"> chmod a-w/www/wwwroot/mediawiki-1.44.0/config </syntaxhighlight> == 服务器依赖配置 == 以下是为支持特定 MediaWiki 功能需要安装的依赖。 === php-wikidiff2 === 用于提供更好的差异比较显示。 <syntaxhighlight lang="bash"> sudo apt-get install php-wikidiff2 # 查找扩展所在路径,通常不需要手动在 php.ini 中指定,宝塔面板的 PHP 管理可能已自动启用 find/usr/lib/-name wikidiff2.so php -m | grep wikidiff2 # 检查是否已加载 </syntaxhighlight> 在 <code>LocalSettings.php</code> 中配置: <syntaxhighlight lang="php"> $wgDiffEngine = "wikidiff2"; $wgDiff3 = "/usr/bin/diff3"; </syntaxhighlight> === php-luasandbox === 用于支持 Scribunto 扩展,运行 Lua 脚本。 <syntaxhighlight lang="bash"> sudo apt install php-luasandbox -y php -m | grep luasandbox # 检查是否已加载 </syntaxhighlight> 在 <code>LocalSettings.php</code> 中启用 Scribunto: <syntaxhighlight lang="php"> wfLoadExtension( 'Scribunto' ); $wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024;//可根据需要调整内存限制 </syntaxhighlight> === ffmpeg === 用于处理视频文件。 <syntaxhighlight lang="bash"> sudo apt install ffmpeg -y ffmpeg -version # 验证安装 </syntaxhighlight> === Composer === PHP 依赖管理工具,某些 MediaWiki 扩展需要。 <syntaxhighlight lang="bash"> # 安装 Composer (具体命令请参考 getcomposer.org) 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> == 扩展特定依赖 == === EasyTimeline 扩展 === 用于生成时间线图表。 <syntaxhighlight lang="bash"> sudo apt install ploticus perl -y </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> === 安全配置 === '''保护上传目录''':在 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"> <?php $wgDBserver = 'localhost'; $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> === 网站 Logo 与图标 === <syntaxhighlight lang="php"> $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"> PHP_CLI=$(ls -d/www/server/php/*/bin/php | head -n1) $PHP_CLI maintenance/showJobs.php && \ $PHP_CLI maintenance/runJobs.php --maxjobs 500 --maxtime 60 && \ $PHP_CLI maintenance/rebuildrecentchanges.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> 可以将这些命令添加到 crontab 中定期执行。 == 故障排除 == * '''安装时无法写入 <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:Navbox
(
查看源代码
)
Template:Navbox/styles.css
(
查看源代码
)
Template:PageToolsLink
(
查看源代码
)
Template:PageToolsLink/styles.css
(
查看源代码
)
Template:站点帮助文档
(
查看源代码
)
Module:Navbox
(
查看源代码
)
Module:PageToolsLink
(
查看源代码
)
返回
Help:MediaWiki安装指南
。
搜索
搜索
查看“︁Help:MediaWiki安装指南”︁的源代码
添加语言
添加话题