MCBBS Wiki:运维笔记

Litwak913留言 | 贡献2023年6月19日 (一) 09:34的版本 →‎VisualEditor:​ // Edit via Wikiplus

本页面记录了MCBBS Wiki环境配置时的一些坑及其解决方案,以便日后参考。

PHP函数与拓展

在新环境中应该关闭putenv()函数禁用。

添加fileinfo opcache memcached apcu imagemagick exif intlPHP拓展。

扩展

Variables 扩展在 1.35 版本由于解析器的一个 API 弃用会产生一个警告,在 LocalSetting.php 关闭即可。

error_reporting(0);

VisualEditor

Parsoid服务问题

适用于1.35+,且一般发生在从老版本迭代升级来的Wiki上。

如果出现REST错误,你先要查看你LocalSetting.php是否有wfLoadExtension( 'Parsoid' );

cURL证书问题

若出现:

cURL error 77 || cURL error 60

代表PHP部分CA证书没配置好,一般发生在通过面板或一键配置工具安装的PHP上。[1]

下载https://curl.se/ca/cacert.pem

保存到环境路径。

在php配置文件中把curl和openssl部分修改成以下内容(这里以当前Wiki服务器作示例)

[curl]

curl.cainfo =/www/wwwroot/mcbbs.wiki/cacert.pem

[openssl]

openssl.cafile=/www/wwwroot/mcbbs.wiki/cacert.pem

之后重载配置重启PHP。

编辑部分页面404问题

若编辑部分页面时出现Error contacting the Parsoid/RESTBase server (HTTP 404)

如果服务器软件为Apache,指定以下配置[2]

AllowEncodedSlashes NoDecode

如果服务器软件为Nginx,指定以下配置[3]

location /rest.php/ {
    try_files $uri $uri/ /rest.php?$query_string;
}

Varnish

Parsoid 405

若编辑部分页面时出现连接至Parsoid/RESTBase服务器错误(HTTP 405)

一般发生在配置 Varnish 后。配置 vcl 规则,直接请求 api.php 和 rest.php 不经过缓存。

if (req.url ~ "api.php" || req.url ~ "rest.php")
    return (pass);
}

Popups 导致的缓存失效

Popups 默认情况下无论是否开启埋点功能,都会初始化 sessionId 并存储于 cookies 中,导致请求不经过缓存。

编辑 extensions/Popups/includes/PopupsContext.php 的第 198 行为:

return false;

即可实现仅登录用户启用 Popups 。

本地化文字修改

修改任何本地化文字,建议在MediaWiki命名空间下修改,而不是直接修改本地化文件。

一方面,如果插件更新了,你的修改也没了;另一方面,修改后的本地化文字可以随着数据库移动。

隐藏文件(.)和资源缓存问题

某些面板或配置工具会在Apache或Nginx的配置中添加对隐藏文件的防护规则或者静态资源的缓存规则,导致某些页面或文件(如...MediaWiki:Common.js)无法正常显示。

要修复这个问题,只需要移除对应的规则即可。

数据库问题

编辑时数据库错误

类型 "Wikimedia\Rdbms\DBQeryError" 的致命错误

故障原因:数据表 <名字空间>_text 在导入时未设置主键和自动递增。

解决方案:设置 <名字空间>_text 'old_id' 字段为主键,自动递增。

备注:非常规的数据库导入会丢失一些结构信息。系统在录入更改时不会自动填写ID。

--  Sheep-realms讨论) 2020年5月8日 (五) 22:01 (CST)

搜索时数据库错误

类型 "Wikimedia\Rdbms\DBQeryError" 的致命错误

故障原因:数据表 <名字空间>_searchindex 崩溃。

解决方案:修复数据表 <名字空间>_searchindex

备注:错误的数据库操作或突然断电等物理因素可能会造成数据表崩溃。

--Sheep-realms讨论) 2020年4月27日 (一) 11:14 (CST)

注释与外部链接