mediawiki 设置 wiki 时出现 DBLoadBalancer 错误
mediawiki DBLoadBalancer error while setting up wiki
我刚刚在 arch linux 上用 nginx 1.10.3、php 7.1.1、php-fpm 和 sqlite 3.16.2 安装了 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}
问题是我的 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
不管 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
我刚刚在 arch linux 上用 nginx 1.10.3、php 7.1.1、php-fpm 和 sqlite 3.16.2 安装了 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}
问题是我的 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
不管 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