如何修复NextCloud无错误日志输出的故障?
- By : Will
- Category : Cloud storage

Cloud storage
1 前言
一个问题,一篇文章,一出故事。
笔者升级NextCloud遇到如下错误,
Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.
有意思的是,检查如下日志竟然无法发现任何错误提示,
tail -f /var/log/httpd/error_log tail -f /var/log/nextcloud/nextcloud.log
如果执行occ命令,则会提示如下,
An unhandled exception has been thrown: Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: could not find driver in /var/www/nextcloud/lib/private/DB/Connection.php:139 Stack trace: #0 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1519): OC\DB\Connection->connect() #1 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1041): Doctrine\DBAL\Connection->getWrappedConnection() #2 /var/www/nextcloud/lib/private/DB/Connection.php(261): Doctrine\DBAL\Connection->executeQuery('SELECT * FROM `...', Array, Array, NULL) #3 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(345): OC\DB\Connection->executeQuery('SELECT * FROM `...', Array, Array) #4 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(281): Doctrine\DBAL\Query\QueryBuilder->execute() #5 /var/www/nextcloud/lib/private/AppConfig.php(419): OC\DB\QueryBuilder\QueryBuilder->execute() #6 /var/www/nextcloud/lib/private/AppConfig.php(184): OC\AppConfig->loadConfigValues() #7 /var/www/nextcloud/lib/private/AppConfig.php(375): OC\AppConfig->getApps() #8 /var/www/nextcloud/lib/private/legacy/OC_App.php(967): OC\AppConfig->getValues(false, 'installed_versi...') #9 /var/www/nextcloud/lib/private/Server.php(726): OC_App::getAppVersions() #10 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(163): OC\Server->OC\{closure}(Object(OC\Server)) #11 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container)) #12 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(130): Pimple\Container->offsetGet('OC\\Memcache\\Fac...') #13 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OC\\Memcache\\Fac...', false) #14 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\ServerContainer->query('OC\\Memcache\\Fac...') #15 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(185): OC\AppFramework\Utility\SimpleContainer->get('OC\\Memcache\\Fac...') #16 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(163): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server)) #17 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container)) #18 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(130): Pimple\Container->offsetGet('OCP\\ICacheFacto...') #19 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\ICacheFacto...', false) #20 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\ServerContainer->query('OCP\\ICacheFacto...') #21 /var/www/nextcloud/lib/private/Server.php(1122): OC\AppFramework\Utility\SimpleContainer->get('OCP\\ICacheFacto...') #22 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(163): OC\Server->OC\{closure}(Object(OC\Server)) #23 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container)) #24 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(130): Pimple\Container->offsetGet('OCP\\Lock\\ILocki...') #25 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\Lock\\ILocki...', false) #26 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\ServerContainer->query('OCP\\Lock\\ILocki...') #27 /var/www/nextcloud/lib/private/Server.php(2073): OC\AppFramework\Utility\SimpleContainer->get('OCP\\Lock\\ILocki...') #28 /var/www/nextcloud/lib/private/Files/View.php(118): OC\Server->getLockingProvider() #29 /var/www/nextcloud/lib/private/Server.php(462): OC\Files\View->__construct() #30 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(163): OC\Server->OC\{closure}(Object(OC\Server)) #31 /var/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container)) #32 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(130): Pimple\Container->offsetGet('OC\\Files\\Node\\H...') #33 /var/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OC\\Files\\Node\\H...', false) #34 /var/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(57): OC\ServerContainer->query('OC\\Files\\Node\\H...') #35 /var/www/nextcloud/lib/private/Server.php(1475): OC\AppFramework\Utility\SimpleContainer->get('OC\\Files\\Node\\H...') #36 /var/www/nextcloud/lib/base.php(622): OC\Server->boot() #37 /var/www/nextcloud/lib/base.php(1150): OC::init() #38 /var/www/nextcloud/console.php(48): require_once('/var/www/nextcl...') #39 /var/www/nextcloud/occ(11): require_once('/var/www/nextcl...')
2 最佳实践
2.1 NextCloud环境
2.2 修复方法
cd ~/php-8.1.33 ./configure --bindir=/usr/bin/ \ --sbindir=/usr/sbin/ \ --sysconfdir=/etc/ \ --libdir=/usr/lib64/ \ --mandir=/usr/share/man/ \ --includedir=/usr/include/ \ --with-apxs2=/usr/bin/apxs \ --with-pdo-mysql
注:重新编译PHP并加入mysql数据库驱动
重新编译后,你需要重启Apache或PHP-FPM,
systemctl restart httpd.service systemctl restart php-fpm.service
没有评论