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

标签 php mysql ubuntu xampp mediawiki

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

后来我安装了 Php,突然 XAMPP 中的 Apache Web 服务器不再启动。然后我卸载了 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}

我可以恢复这个吗?

最佳答案

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

  • 导出 MySQL Mediawiki 数据库的表
  • 全新安装 XAMPP
  • 全新安装 Mediawiki 并创建新的 wiki 项目
  • 删除新项目的MySQL数据库
  • 将旧表导入新项目

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

起点:

  • 您的 XAMPP 配置中的某些内容困惑,导致 MySQL 数据库无法启动。因此 phpMyAdmin 无法从网络浏览器启动

  • 您有理由相信 MediaWiki MySQL 数据库本身可以正常运行并且存在(在 Ubuntu 的 XAMPP 7.3.7-1 上,以下文件应位于 /opt/lampp/var/mysql 目录中:ib_logfile0ib_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 中,单击“导入”并上传步骤 1) 中生成的 .sql 文件。

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

关于php - 使用 XAMPP 从/opt/lampp/目录的副本恢复 MediaWiki wiki,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57521425/

相关文章:

python - 使用 Python 自动流程监控/管理

Python 子进程在不同的发行版中表现不同

c - fscanf 读访问段错误

PHP 第一个事件按钮

php - 从多维数组php中删除数组键

php - 尝试回显 .txt 中的所有文本行

mysql - 如何在 MySQL 表中搜索单词?匹配还是喜欢?

javascript - 如何将 jquery 中的类值传递到输入框

MySQL 更新后触发器 - 隐藏语法错误

php-mysql 从 echo 单选按钮插入多行