打开/关闭搜索
搜索
打开/关闭菜单
30
8
13
1694
陋室
导航
首页
最近更改
随机页面
特殊页面
社群首页
新闻动态
帮助
上传文件
内容
分类树
所有页面
导入页面
活跃用户列表
界面
侧边栏
站点公告
匿名用户通知
公共样式表
公共脚本
系统消息
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
中文(简体)
个人工具
登录
查看“︁帮助:MediaWiki 安装”︁的源代码
来自陋室
查看
阅读
查看源代码
查看历史
associated-pages
帮助
讨论
更多操作
←
帮助: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:站点帮助文档}}
该页面嵌入的页面:
模板:Navbox
(
查看源代码
)
模板:Navbox/styles.css
(
查看源代码
)
模板:PageToolsLink
(
查看源代码
)
模板:PageToolsLink/styles.css
(
查看源代码
)
模板:站点帮助文档
(
查看源代码
)
返回
帮助:MediaWiki 安装
。
查看“︁帮助:MediaWiki 安装”︁的源代码
来自陋室