我在 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_logfile0 、ib_logfile1 和 ibdata1。其中还应该有一个文件夹,其中包含您的 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/