【问题标题】:mediawiki DBLoadBalancer error while setting up wiki设置 wiki 时出现 mediawiki DBLoadBalancer 错误
【发布时间】:2017-02-08 05:13:00
【问题描述】:

我刚刚使用 nginx 1.10.3、php 7.1.1、php-fpm 和 sqlite 3.16.2 在 arch linux 上安装了 MediaWiki 1.28。我遵循了 arch wiki 指南:https://wiki.archlinux.org/index.php/MediaWiki。我已经安装了所需的 PHP 扩展,PHP、sqlite、nginx 似乎都可以自己运行。

现在,当我尝试设置 MediaWiki 安装的 LocalSettings.php 部分时,我在浏览器中转到 0.0.0.0/mediawiki,单击设置并收到以下错误。也许这是必须启用的 sqlite 设置?

[1449c8c65e65734059748f4e] /mw-config/index.php MediaWiki\Services\ServiceDisabledException from line 340 of /usr/share/webapps/mediawiki/includes/services/ServiceContainer.php: Service disabled: DBLoadBalancer

Backtrace:

#0 /usr/share/webapps/mediawiki/includes/MediaWikiServices.php(509): MediaWiki\Services\ServiceContainer->getService(string)
#1 /usr/share/webapps/mediawiki/includes/GlobalFunctions.php(3089): MediaWiki\MediaWikiServices->getDBLoadBalancer()
#2 /usr/share/webapps/mediawiki/includes/GlobalFunctions.php(3075): wfGetLB(boolean)
#3 /usr/share/webapps/mediawiki/includes/cache/LinkCache.php(267): wfGetDB(integer)
#4 /usr/share/webapps/mediawiki/includes/Title.php(3184): LinkCache->addLinkObj(Title)
#5 /usr/share/webapps/mediawiki/includes/Title.php(934): Title->getArticleID(integer)
#6 /usr/share/webapps/mediawiki/includes/content/ContentHandler.php(282): Title->getContentModel()
#7 /usr/share/webapps/mediawiki/includes/Title.php(4684): ContentHandler::getForTitle(Title)
#8 /usr/share/webapps/mediawiki/includes/parser/Parser.php(867): Title->getPageLanguage()
#9 /usr/share/webapps/mediawiki/includes/parser/Parser.php(2110): Parser->getTargetLanguage()
#10 /usr/share/webapps/mediawiki/includes/parser/Parser.php(2075): Parser->replaceInternalLinks2(string)
#11 /usr/share/webapps/mediawiki/includes/parser/Parser.php(1290): Parser->replaceInternalLinks(string)
#12 /usr/share/webapps/mediawiki/includes/parser/Parser.php(441): Parser->internalParse(string)
#13 /usr/share/webapps/mediawiki/includes/installer/Installer.php(675): Parser->parse(string, Title, ParserOptions, boolean)
#14 /usr/share/webapps/mediawiki/includes/installer/WebInstaller.php(681): Installer->parse(string, boolean)
#15 /usr/share/webapps/mediawiki/includes/installer/WebInstaller.php(657): WebInstaller->getInfoBox(string, string, string)
#16 /usr/share/webapps/mediawiki/includes/installer/WebInstaller.php(401): WebInstaller->getErrorBox(string)
#17 /usr/share/webapps/mediawiki/mw-config/index.php(54): WebInstaller->showError(Message, string)
#18 /usr/share/webapps/mediawiki/mw-config/index.php(38): wfInstallerMain()
#19 {main}

【问题讨论】:

  • 最近我遇到了完全相同的问题,不幸的是我不记得它是如何解决的。这肯定与缺少系统组件甚至错误的目录权限有关。在错误日志之后,WebInstaller 似乎无法为您的请求启动 PHP 会话,ServiceDisabledException 只是一个额外的错误。请参阅/index.php 第 54 行

标签: mediawiki


【解决方案1】:

问题是我的php/sessions 目录位于/tmp 中。我将其移至php.ini 中的session.save_path = "/var/lib/php/sessions" 并重复这些步骤:

mkdir -p /var/lib/php/sessions
chown http:http /var/lib/php/sessions
chmod go-rwx /var/lib/php/sessions

【讨论】:

  • MediaWiki 1.27+ 根本不使用 PHP 会话后端。此错误几乎肯定与您的会话设置无关。 Filed a bug 关于它。
【解决方案2】:

不管 Tgr 上面怎么说,修复会话确实为我解决了问题。我使用的是 Apache ITK,所以我使用的分辨率略有不同,因为每个虚拟主机都在自己唯一的 uid 下运行。

首先我为会话创建一个单独的目录并更改所有权

mkdir /var/lib/php/sessions-wiki
chown wiki. /var/lib/php/sessions-wiki

然后在我的 VirtualHosts 指令中,我通过添加告诉 Apache/php 在哪里可以找到会话文件

php_admin_value session.save_path "/var/lib/php/sessions-wiki"

然后确保您的配置没有破坏它。

apachectl configtest 

最后重新加载你的配置

apachectl graceful

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多