帮助:MediaWiki 安装:修订间差异
来自陋室
更多操作
删除的内容 添加的内容
Maintenance script(留言 | 贡献) 校对修改:修复强调文本前后多余空格、不一致的空格等问题 |
Maintenance script(留言 | 贡献) 校对修改:修复强调文本前后多余空格、不一致的空格等问题 |
||
| 第2行: | 第2行: | ||
== 服务器配置 == |
== 服务器配置 == |
||
''服务器提供商''': [https://cloud.tencent.com/product/lighthouse 腾讯云]-轻量云(轻量应用服务器) |
|||
'''地域和可用区''': 新加坡 | 新加坡一区 |
'''地域和可用区''': 新加坡 | 新加坡一区 |
||
| 第15行: | 第15行: | ||
月流量包 = 1024GB(峰值带宽 30Mbps) |
月流量包 = 1024GB(峰值带宽 30Mbps) |
||
公网IPv4 = 43.163.**** |
公网IPv4 = 43.163.**** |
||
'''域名''': |
'''域名''': |
||
| 第29行: | 第28行: | ||
'''操作系统''': Debian GNU/Linux 12 (bookworm) |
'''操作系统''': Debian GNU/Linux 12 (bookworm) |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
cat |
cat/etc/os-release |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第35行: | 第34行: | ||
* '''[https://www.bt.cn/new/download.html 宝塔Linux面板]''': 7.9.8 |
* '''[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) |
* '''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) |
* '''PHP''': 8.2.29 (MediaWiki 1.44.0 支持 PHP 8.1 - 8.3,推荐使用 8.2) |
||
* '''[https://www.phpmyadmin.net/downloads/ |
* '''[https://www.phpmyadmin.net/downloads/phpMyAdmin]''': 5.2(可通过宝塔安装) |
||
== 安装前准备 == |
== 安装前准备 == |
||
| 第54行: | 第53行: | ||
从官方下载页面获取最新的稳定版本(例如 1.44.0)。生产环境建议使用稳定版。 |
从官方下载页面获取最新的稳定版本(例如 1.44.0)。生产环境建议使用稳定版。 |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
| ⚫ | |||
cd /www/wwwroot/ |
|||
| ⚫ | |||
wget https://releases.wikimedia.org/mediawiki/1.44/mediawiki-1.44.0.tar.gz |
wget https://releases.wikimedia.org/mediawiki/1.44/mediawiki-1.44.0.tar.gz |
||
tar -xzvf mediawiki-1.44.0.tar.gz |
tar -xzvf mediawiki-1.44.0.tar.gz |
||
| 第101行: | 第99行: | ||
'''安全建议''':安装完成后,可以考虑移除 <code>config</code> 目录的世界可写权限: |
'''安全建议''':安装完成后,可以考虑移除 <code>config</code> 目录的世界可写权限: |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
chmod a-w |
chmod a-w/www/wwwroot/mediawiki-1.44.0/config |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第113行: | 第111行: | ||
sudo apt-get install php-wikidiff2 |
sudo apt-get install php-wikidiff2 |
||
# 查找扩展所在路径,通常不需要手动在 php.ini 中指定,宝塔面板的 PHP 管理可能已自动启用 |
# 查找扩展所在路径,通常不需要手动在 php.ini 中指定,宝塔面板的 PHP 管理可能已自动启用 |
||
find |
find/usr/lib/-name wikidiff2.so |
||
php -m | grep wikidiff2 # 检查是否已加载 |
php -m | grep wikidiff2 # 检查是否已加载 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第131行: | 第129行: | ||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
wfLoadExtension( 'Scribunto' ); |
wfLoadExtension( 'Scribunto' ); |
||
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024; |
$wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 50 * 1024 * 1024;//可根据需要调整内存限制 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第146行: | 第144行: | ||
# 安装 Composer (具体命令请参考 getcomposer.org) |
# 安装 Composer (具体命令请参考 getcomposer.org) |
||
curl -sS https://getcomposer.org/installer | php |
curl -sS https://getcomposer.org/installer | php |
||
mv composer.phar |
mv composer.phar/usr/local/bin/composer |
||
composer --version # 验证安装 |
composer --version # 验证安装 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第165行: | 第163行: | ||
$wgTimelinePloticusCommand = '/usr/bin/ploticus'; |
$wgTimelinePloticusCommand = '/usr/bin/ploticus'; |
||
$wgTimelinePerlCommand = "/usr/bin/perl"; |
$wgTimelinePerlCommand = "/usr/bin/perl"; |
||
$wgTimelineFontDirectory = "/usr/share/fonts/truetype/freefont"; |
$wgTimelineFontDirectory = "/usr/share/fonts/truetype/freefont";//字体路径请根据系统实际情况调整 |
||
$wgTimelineFontFile = 'ascii'; |
$wgTimelineFontFile = 'ascii';//字体文件名请根据系统实际情况调整 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第178行: | 第176行: | ||
$wgScoreTrim = true; |
$wgScoreTrim = true; |
||
$wgImageMagickConvertCommand = '/usr/bin/convert'; |
$wgImageMagickConvertCommand = '/usr/bin/convert'; |
||
$wgScoreSafeMode = false; |
$wgScoreSafeMode = false;//注意:关闭安全模式可能有安全风险,请确保系统安全 |
||
$wgScoreLame = '/usr/bin/lame'; |
$wgScoreLame = '/usr/bin/lame'; |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第190行: | 第188行: | ||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$wgPdfProcessor = '/usr/bin/gs'; |
$wgPdfProcessor = '/usr/bin/gs'; |
||
$wgPdfPostProcessor = $wgImageMagickConvertCommand; |
$wgPdfPostProcessor = $wgImageMagickConvertCommand;//假设 $wgImageMagickConvertCommand 已定义为 '/usr/bin/convert' |
||
$wgPdfInfo = '/usr/bin/pdfinfo'; |
$wgPdfInfo = '/usr/bin/pdfinfo'; |
||
$wgPdftoText = '/usr/bin/pdftotext'; |
$wgPdftoText = '/usr/bin/pdftotext'; |
||
| 第214行: | 第212行: | ||
RewriteCond %{REQUEST_URI} !^/load.php [NC] |
RewriteCond %{REQUEST_URI} !^/load.php [NC] |
||
RewriteCond %{REQUEST_URI} !^/api.php [NC] |
RewriteCond %{REQUEST_URI} !^/api.php [NC] |
||
RewriteCond %{REQUEST_URI} !^/images/ |
RewriteCond %{REQUEST_URI} !^/images/[NC] |
||
# 重写 wiki 页面路径 |
# 重写 wiki 页面路径 |
||
RewriteRule ^w/(.*)$ |
RewriteRule ^w/(.*)$/index.php?title=$1 [L,QSA] |
||
# 默认重写(必须放最后) |
# 默认重写(必须放最后) |
||
RewriteCond %{REQUEST_FILENAME} !-f |
RewriteCond %{REQUEST_FILENAME} !-f |
||
RewriteCond %{REQUEST_FILENAME} !-d |
RewriteCond %{REQUEST_FILENAME} !-d |
||
RewriteRule ^(.*)$ |
RewriteRule ^(.*)$/index.php [L,QSA] |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第228行: | 第226行: | ||
在 <code>LocalSettings.php</code> 中配置相应的动作路径和文章路径,以配合短链接: |
在 <code>LocalSettings.php</code> 中配置相应的动作路径和文章路径,以配合短链接: |
||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$wgScriptPath = "/mediawiki-1.44.0"; |
$wgScriptPath = "/mediawiki-1.44.0";//MediaWiki 的安装路径,根据实际情况修改 |
||
$wgArticlePath = "/w/$1"; |
$wgArticlePath = "/w/$1";//设置文章短链接路径//以下代码为各种动作定义短链接路径(需与 .htaccess 规则配合) |
||
// 以下代码为各种动作定义短链接路径(需与 .htaccess 规则配合) |
|||
$actions = [ |
$actions = [ |
||
'view', 'edit', 'watch', 'unwatch', 'delete', 'revert', 'rollback', |
'view', 'edit', 'watch', 'unwatch', 'delete', 'revert', 'rollback', |
||
| 第239行: | 第235行: | ||
foreach ($actions as $action) { |
foreach ($actions as $action) { |
||
$wgActionPaths[$action] = "/w/$action/$1"; |
$wgActionPaths[$action] = "/w/$action/$1"; |
||
| ⚫ | |||
} |
|||
| ⚫ | |||
$wgActionPaths['view'] = $wgArticlePath; |
$wgActionPaths['view'] = $wgArticlePath; |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第259行: | 第254行: | ||
设置目录权限: |
设置目录权限: |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
chown -R www-data:www-data |
chown -R www-data:www-data/www/wwwroot/mediawiki-1.44.0/images # 确保 Web 服务器用户有写权限 |
||
chmod 755 |
chmod 755/www/wwwroot/mediawiki-1.44.0/images |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第269行: | 第264行: | ||
=== PHP 配置 === |
=== PHP 配置 === |
||
''需要启用的扩展''': |
|||
通过宝塔面板的 PHP 管理界面或编辑 <code>php.ini</code>,确保以下扩展已启用(大部分可能已默认安装或启用): |
通过宝塔面板的 PHP 管理界面或编辑 <code>php.ini</code>,确保以下扩展已启用(大部分可能已默认安装或启用): |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
| 第302行: | 第297行: | ||
$wgDBname = 'my_wiki'; |
$wgDBname = 'my_wiki'; |
||
$wgDBuser = 'wikiuser'; |
$wgDBuser = 'wikiuser'; |
||
$wgDBpassword = '****'; |
$wgDBpassword = '****';//替换为实际密码 |
||
?> |
?> |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
2. 在 <code>LocalSettings.php</code> 开头包含此文件: |
2. 在 <code>LocalSettings.php</code> 开头包含此文件: |
||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
include('/www/wwwroot/lib.php'); |
include('/www/wwwroot/lib.php');//注意:确保 lib.php 文件权限严格(如 600),且不在 Web 可访问目录下。 |
||
// 注意:确保 lib.php 文件权限严格(如 600),且不在 Web 可访问目录下。 |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第314行: | 第308行: | ||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$wgLogos = [ |
$wgLogos = [ |
||
'1x' => "$wgResourceBasePath/resources/assets/logo.png", |
'1x' => "$wgResourceBasePath/resources/assets/logo.png",//替换为您的 logo 路径 |
||
'icon' => "$wgResourceBasePath/resources/assets/icon.png", |
'icon' => "$wgResourceBasePath/resources/assets/icon.png",//替换为您的图标路径 |
||
]; |
]; |
||
$wgFavicon = "$wgResourceBasePath/resources/assets/favicon.ico"; |
$wgFavicon = "$wgResourceBasePath/resources/assets/favicon.ico";//替换为您的 favicon 路径 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
| 第330行: | 第324行: | ||
定期运行维护脚本以保持 Wiki 健康运行。 |
定期运行维护脚本以保持 Wiki 健康运行。 |
||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
PHP_CLI=$(ls -d |
PHP_CLI=$(ls -d/www/server/php/*/bin/php | head -n1) |
||
$PHP_CLI maintenance/showJobs.php && \ |
$PHP_CLI maintenance/showJobs.php && \ |
||
| 第350行: | 第344行: | ||
<syntaxhighlight lang="bash"> |
<syntaxhighlight lang="bash"> |
||
# 临时调整权限(安装后应改回) |
# 临时调整权限(安装后应改回) |
||
chmod 755 |
chmod 755/www/wwwroot/mediawiki-1.44.0/config |
||
# 如果使用 SELinux,可能需要调整上下文 |
# 如果使用 SELinux,可能需要调整上下文 |
||
semanage fcontext -a -t httpd_sys_rw_content_t "/www/wwwroot/mediawiki-1.44.0/config(/.*)?" |
semanage fcontext -a -t httpd_sys_rw_content_t "/www/wwwroot/mediawiki-1.44.0/config(/.*)?" |
||
restorecon -R -v |
restorecon -R -v/www/wwwroot/mediawiki-1.44.0/config |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
* '''页面显示 Wiki 标记(WikiText)而非渲染后的内容''':检查 PHP 解析是否正常,以及 <code>LocalSettings.php</code> 是否存在且可读。 |
* '''页面显示 Wiki 标记(WikiText)而非渲染后的内容''':检查 PHP 解析是否正常,以及 <code>LocalSettings.php</code> 是否存在且可读。 |
||