打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

帮助:MediaWiki 安装:修订间差异

来自陋室
删除的内容 添加的内容
Maintenance script留言 | 贡献
校对修改:修复强调文本前后多余空格、不一致的空格等问题
Maintenance script留言 | 贡献
校对修改:修复强调文本前后多余空格、不一致的空格等问题
第2行: 第2行:


== 服务器配置 ==
== 服务器配置 ==
'''服务器提供商''': [https://cloud.tencent.com/product/lighthouse 腾讯云]-轻量云(轻量应用服务器)
''服务器提供商''': [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 /etc/os-release
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
*''[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/ phpMyAdmin]''': 5.2(可通过宝塔安装)
* '''[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 下载,请替换为官网最新的稳定版本链接
cd /www/wwwroot/
# 使用 wget 下载,请替换为官网最新的稳定版本链接
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 /www/wwwroot/mediawiki-1.44.0/config
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 /usr/lib/ -name wikidiff2.so
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 /usr/local/bin/composer
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; // 假设 $wgImageMagickConvertCommand 已定义为 '/usr/bin/convert'
$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/ [NC]
RewriteCond %{REQUEST_URI} !^/images/[NC]


# 重写 wiki 页面路径
# 重写 wiki 页面路径
RewriteRule ^w/(.*)$ /index.php?title=$1 [L,QSA]
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 ^(.*)$ /index.php [L,QSA]
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"; // MediaWiki 的安装路径,根据实际情况修改
$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";
}//确保 'view' 动作使用上面设置的 $wgArticlePath
}
// 确保 'view' 动作使用上面设置的 $wgArticlePath
$wgActionPaths['view'] = $wgArticlePath;
$wgActionPaths['view'] = $wgArticlePath;
</syntaxhighlight>
</syntaxhighlight>
第259行: 第254行:
设置目录权限:
设置目录权限:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
chown -R www-data:www-data /www/wwwroot/mediawiki-1.44.0/images # 确保 Web 服务器用户有写权限
chown -R www-data:www-data/www/wwwroot/mediawiki-1.44.0/images # 确保 Web 服务器用户有写权限
chmod 755 /www/wwwroot/mediawiki-1.44.0/images
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", // 替换为您的 logo 路径
'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"; // 替换为您的 favicon 路径
$wgFavicon = "$wgResourceBasePath/resources/assets/favicon.ico";//替换为您的 favicon 路径
</syntaxhighlight>
</syntaxhighlight>


第330行: 第324行:
定期运行维护脚本以保持 Wiki 健康运行。
定期运行维护脚本以保持 Wiki 健康运行。
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
PHP_CLI=$(ls -d /www/server/php/*/bin/php | head -n1)
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 /www/wwwroot/mediawiki-1.44.0/config
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 /www/wwwroot/mediawiki-1.44.0/config
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> 是否存在且可读。