使用 XAMPP 从 /opt/lampp/ 目录的副本恢复 MediaWiki wiki

Posted

技术标签:

【中文标题】使用 XAMPP 从 /opt/lampp/ 目录的副本恢复 MediaWiki wiki【英文标题】:Restoring MediaWiki wiki with XAMPP from copy of /opt/lampp/ directory 【发布时间】:2019-12-22 14:07:55 【问题描述】:

我在 Ubuntu 上为 LAN wiki 托管了一个带有 XAMPP 的网络服务器。我设法启动并运行它,并投入大量时间为 Wiki 编写内容和页面。

稍后我安装了 php,突然 XAMPP 中的 Apache Web Sever 不再启动。然后我卸载了 PHP 但仍然有同样的问题。我决定全新安装 XAMPP,复制我的旧 /opt/lampp/ 目录。我认为重新安装 XAMPP 并将 /opt/lampp/htdocs 和 /opt/lamp/var/mysql 复制到新安装的 XAMPP 目录中就足够了。

当我现在尝试运行 XAMPP 时,Apache 启动但 MySQL 数据库没有。

当我在我的 Wiki 的 LocalSettings.php 中启用显示异常详细信息并尝试通过 Web 浏览器访问时,我收到以下错误消息:

MediaWiki internal error.

Original exception: [XVZpYg4zO1Jsk5cKtKVvcgAAAAM] /mywiki/ Wikimedia\Rdbms\DBConnectionError from line 1213 of /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Cannot access the database: Unknown error (localhost)
Backtrace:
#0 /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(758): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#1 /opt/lampp/htdocs/mywiki/includes/GlobalFunctions.php(2637): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, boolean)
#2 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LCStoreDB.php(54): wfGetDB(integer)
#3 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(410): LCStoreDB->get(string, string)
#4 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(456): LocalisationCache->isExpired(string)
#5 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(332): LocalisationCache->initLanguage(string)
#6 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(273): LocalisationCache->loadItem(string, string)
#7 /opt/lampp/htdocs/mywiki/languages/Language.php(4537): LocalisationCache->getItem(string, string)
#8 /opt/lampp/htdocs/mywiki/languages/Language.php(262): Language::getFallbacksFor(string)
#9 /opt/lampp/htdocs/mywiki/languages/Language.php(223): Language::newFromCode(string)
#10 /opt/lampp/htdocs/mywiki/includes/ServiceWiring.php(120): Language::factory(string)
#11 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(430): Wikimedia\Services\ServiceContainer->closure(MediaWiki\MediaWikiServices)
#12 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(414): Wikimedia\Services\ServiceContainer->createService(string)
#13 /opt/lampp/htdocs/mywiki/includes/MediaWikiServices.php(508): Wikimedia\Services\ServiceContainer->getService(string)
#14 /opt/lampp/htdocs/mywiki/includes/Setup.php(790): MediaWiki\MediaWikiServices->getContentLanguage()
#15 /opt/lampp/htdocs/mywiki/includes/WebStart.php(77): require_once(string)
#16 /opt/lampp/htdocs/mywiki/index.php(39): require(string)
#17 main

Exception caught inside exception handler: [XVZpYg4zO1Jsk5cKtKVvcgAAAAM] /mywiki/ Wikimedia\Rdbms\DBConnectionError from line 1213 of /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Cannot access the database: Unknown error (localhost)
Backtrace:
#0 /opt/lampp/htdocs/mywiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(758): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#1 /opt/lampp/htdocs/mywiki/includes/GlobalFunctions.php(2637): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, boolean)
#2 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LCStoreDB.php(54): wfGetDB(integer)
#3 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(355): LCStoreDB->get(string, string)
#4 /opt/lampp/htdocs/mywiki/includes/cache/localisation/LocalisationCache.php(273): LocalisationCache->loadItem(string, string)
#5 /opt/lampp/htdocs/mywiki/languages/Language.php(4537): LocalisationCache->getItem(string, string)
#6 /opt/lampp/htdocs/mywiki/languages/Language.php(262): Language::getFallbacksFor(string)
#7 /opt/lampp/htdocs/mywiki/languages/Language.php(223): Language::newFromCode(string)
#8 /opt/lampp/htdocs/mywiki/includes/ServiceWiring.php(120): Language::factory(string)
#9 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(430): Wikimedia\Services\ServiceContainer->closure(MediaWiki\MediaWikiServices)
#10 /opt/lampp/htdocs/mywiki/includes/libs/services/ServiceContainer.php(414): Wikimedia\Services\ServiceContainer->createService(string)
#11 /opt/lampp/htdocs/mywiki/includes/MediaWikiServices.php(508): Wikimedia\Services\ServiceContainer->getService(string)
#12 /opt/lampp/htdocs/mywiki/includes/cache/MessageCache.php(126): MediaWiki\MediaWikiServices->getContentLanguage()
#13 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionRenderer.php(311): MessageCache::singleton()
#14 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionRenderer.php(51): MWExceptionRenderer::reportOutagehtml(Wikimedia\Rdbms\DBConnectionError)
#15 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(98): MWExceptionRenderer::output(Wikimedia\Rdbms\DBConnectionError, integer)
#16 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(172): MWExceptionHandler::report(Wikimedia\Rdbms\DBConnectionError)
#17 /opt/lampp/htdocs/mywiki/includes/exception/MWExceptionHandler.php(144): MWExceptionHandler::handleException(Wikimedia\Rdbms\DBConnectionError)
#18 [internal function]: MWExceptionHandler::handleUncaughtException(Wikimedia\Rdbms\DBConnectionError)
#19 main

无论如何我可以恢复这个吗?

【问题讨论】:

看这里并跟随 steos superuser.com/questions/1328965/… @nbk 我完全按照提到的方法尝试了该方法。 MySQL 现在在 XAMPP 中启动,但我仍然收到与上面相同的错误消息 查看msql服务器的错误日志,是否有错误信息。 没有错误信息:/ phpmyadmin 显示什么?甚至是 mysql 工作台 【参考方案1】:

所以在花了一些时间尝试各种事情之后,我找到了一个解决方案,可以让我恢复 Wiki。我将在这里发布我所做的事情,以防将来对任何人有所帮助。它涉及以下步骤:

导出 MySQL Mediawiki 数据库的表 清理安装 XAMPP 干净安装 Mediawiki 并创建一个新的 wiki 项目 删除新项目的 MySQL 数据库 将旧表导入新项目

由于我在网络服务器/MySQL 方面完全是个菜鸟,这可能不是最快或最有效的方法,但它确实有效。

起点:

您的 XAMPP 配置中有问题,导致 MySQL 数据库无法启动。因此无法从网络浏览器启动 phpMyAdmin

您有理由相信 MediaWiki MySQL 数据库本身可以正常工作并且存在(在 XAMPP 7.3.7-1 for Ubuntu 上,以下文件应位于 /opt/lampp/var/mysql 目录中:ib_logfile0 , ib_logfile1ibdata1。其中应该还有一个文件夹,其中包含您的 Mediawiki 的名称。

解决方案:

1) 导出 Mediawiki 数据库的表格

在安全的地方复制整个 /opt/lampp/ 目录。 卸载 XAMPP sudo ./opt/var/uninstall 并删除目录 rm -rf /opt/lampp 重新安装 XAMPP(使用之前使用的相同版本) 将备份版本的 ib_logfile0、ib_logfile1 和 ibdata1 复制到 /opt/lampp/var/mysql/ 从备份中将整个文件夹 backup/lampp/var/mysql/mywiki 复制到新安装的 XAMPP 目录 /opt/lampp/var/mysql/ 启动 XAMPP - 一切正常。转到 phpMyAdmin,您应该会看到 wiki 的数据库。转到它并将其导出为 SQL 格式。保存 .sql 文件。

2) 再次全新安装 XAMPP(删除 opt/lampp 中的所有内容)

3)Follow the instructions to install MediaWiki with XAMPP

4) 进行交换

按照步骤 3),您现在应该有一个干净的 Mediawiki 安装,其中包含一个链接到新数据库的全新 wiki。 转到 phpMyAdmin,选择数据库,然后“检查所有”数据库中的表并删除(删除)它们。 现在有一个空数据库。在 phpMyAdmin 中单击 Import 并上传您在步骤 1) 中生成的 .sql 文件。

尝试启动 XAMPP 并(希望)加载 wiki!

【讨论】:

以上是关于使用 XAMPP 从 /opt/lampp/ 目录的副本恢复 MediaWiki wiki的主要内容,如果未能解决你的问题,请参考以下文章

mac上的xampp-vm在堆栈管理器中安装后找不到'/opt/lampp'目录

Xampp / Lampp 更改数据库目录(无数据目录)

如何更改 XAMPP Web 服务器根文件?

XAMPP 使用记录

ubuntu的xampp工具的使用

ubuntu下启动/关闭xampp