MediaWiki个人使用配置

Player1228 1172 字 最后更新于 10 天前 0 次阅读


本人MediaWiki搭建后样子 Player1228's GalGame Wiki

第一次尝试安装MediaWiki,因本人技术问题,途中遇到了不少困难,虽然相比其他wiki程序其文档更丰富和全面,但其文档中文翻译个人觉得不如直接读英语,以下介绍个人使用的配置。

一、安装时请按照官网要求进行配置

截止本文发布,官方最新版本为MediaWiki 1.43.0,其的安装要求为:

  • PHP 8.1.0+[拓展要求:calendarfileinfojsonopensslxmlreader, dom(since MW 1.34), intl(since MW 1.36), mbstring(since MW 1.27),xml(since MW 1.27), xmlreader(since MW 1.36)]
  • MariaDB 10.3.0+(官方推荐)/MySQL 5.7.0+/ SQLite 3.8.0/PostgreSQL 10.0+
  • 任何WEB服务器软件(IIS/Apache/Nginx(个人推荐,尽管在Windows下可能表现一般))

本人使用Windows环境+宝塔面板进行安装,按照最低要求PHP8.1+MariaDB 10.3进行安装(安装高版本数据库会报错,原因未知),如使用宝塔安装,PHP拓展应该不需要调整,但需要在PHP设置项中“禁用函数”一栏把putenv删除,否则进入后台安装时报错

走完配置流程后,会下载一个名为LocalSettings.php的文件,此文件需要放入网站根目录完成安装,否则无法进入网站,另外此文件在后续配置中有重要作用。

二、伪静态配置

和WordPress一样,为了美观(主要)和SEO我们需要进行伪静态配置,以下为Nginx伪静态配置。

location ~ ^\/.+$ {
    if ($request_uri ~ ^/images) { break; }
    if ($request_uri ~ ^/resources) { break; }
    if ($request_uri ~ ^/index\.php) { break; }
    rewrite ^/(.+)$ /index.php?title=$1 last;
}

配置完成后我们需要打开网站根目录下我们刚刚放进去的LocalSettings.php,搜索

$wgScriptPath = "";

使其变为

$wgScriptPath = "";
##伪静态配置
$wgArticlePath = "$wgScriptPath/$1";

保存文件,伪静态生效。

三、安装插件/皮肤的方式

在网站根目录下,有extensionsskins两个文件夹,分别存放插件和皮肤,每个插件和皮肤均以文件夹形式存在,官网下载的插件和皮肤均为压缩包,直接上传到目录解压即可。解压完毕后需要激活,类似以下形式

##此项为你当前使用的皮肤
##双引号内填写皮肤名称
$wgDefaultSkin = "Timeless";
##以下为加载皮肤的方法,未加载的皮肤无法使用
##单引号内填写皮肤名称
wfLoadSkin( 'Timeless' );
##以下为加载插件的方法,在文件尾部另加一行即可
wfLoadExtension( 'WikiEditor' );

保存完成安装。

官网链接:分类:按分类排列的扩展 - MediaWiki 分类:所有皮肤 - MediaWiki

四、SEO配置(可选)

虽然Wiki理论上不需要进行SEO配置,但是为了完美还是进行一下操作,原生MediaWiki几乎没有任何SEO配置项,所以我们需要自行安装插件进行功能不全,我们需要两款插件:WikiSEOAutoSitemap,除安装插件外,我们可以进行以下配置:

//文件名称,如无需求可直接复制
$wgAutoSitemap["filename"] = "SiteMap.xml"; 
//文件生成间隔,可选hourly daily weekly monthly yearly adjust(动态)
$wgAutoSitemap["freq"] = "daily"; 
//防止FileTalk进入到Sitemap
$wgAutoSitemap["exclude_namespaces"] = [
    NS_TALK,
    NS_USER,   
    NS_USER_TALK,
    NS_PROJECT_TALK,
    NS_FILE,
    NS_FILE_TALK,
    NS_MEDIAWIKI,   
    NS_MEDIAWIKI_TALK,
    NS_TEMPLATE,
    NS_TEMPLATE_TALK,
    NS_HELP,   
    NS_HELP_TALK,
    NS_CATEGORY_TALK
];

SEO选项配置需要在每篇Wiki的末尾添加,可使用个人使用的模板

{{#seo:
 |title_mode=append
 |title=填写站点名称
 |description=本页介绍,显示在搜索引擎。
 |site_name=填写站点名称
 |published_time=1145-14-19
}}

由于前面使用了伪静态,如果直接打开xxx.com会报错,如全程按教程操作,请使用以下伪静态配置,如有需要请自行修改。

location ~ ^\/.+$ {
    if ($request_uri = /extensions/AutoSitemap/sitemap.xsl) { break; }
    if ($request_uri ~* ^/SiteMap.xml) { break; }
    if ($request_uri ~ ^/images) { break; }
    if ($request_uri ~ ^/resources) { break; }
    if ($request_uri ~ ^/index\.php) { break; }
    rewrite ^/(.+)$ /index.php?title=$1 last;
}

五、其他个人配置

##网站小图标(标题旁边的,默认不会进行配置)
$wgFavicon = "填写图片外部地址或存在网页目录以 $wgResourceBasePath/ 调用";
$wgAppleTouchIcon = "同上";
##允许调用外部图片插入Wiki,使用时直接在对应位置填写网址,无法调整大小
$wgAllowExternalImages = true;
##允许显示标题与页面子目录不同
##在页面开头添加 {{DISPLAYTITLE:显示内容}} 调用
$wgAllowDisplayTitle = true;
$wgRestrictDisplayTitle = false;
##允许在线图片存储
##$wgAllowCopyUploads = true;
##启用页面缓存
$wgUseFileCache = true;
$wgFileCacheDirectory = "{$wgUploadDirectory}/cache";
$wgUseGzip = true;
##添加网站备案号
$wgHooks['SkinAddFooterLinks'][] = function( $skin, $key, &$footerlinks ) {
        if ( $key === 'places' ) {
                $footerlinks['ICP_Number'] = Html::rawElement( 'a', [ 'href' => 'https://beian.miit.gov.cn/' ], '备案号XXXXXXXX' );
        }
};