From 8032b6ac6305a25dd67dd3755029c8fc64b9e7cd Mon Sep 17 00:00:00 2001 From: Josh Richards Date: Fri, 16 Jun 2023 09:41:02 -0400 Subject: [PATCH] (base) Give a hint in web interface if SimpleXML (php-xml) is missing Fixes #2180 And prevents #31473, #23970, #18610, #15708 Avoids a 500 error and also gives a useful error message on the web interface if this module isn't installed, gets overlooked during a PHP upgrade, etc. While we check for it later, it's too late for session. Inspired by #17163 Signed-off-by: Josh Richards --- lib/base.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/base.php b/lib/base.php index bf324e946bc50..010fed1ea9f8f 100644 --- a/lib/base.php +++ b/lib/base.php @@ -652,6 +652,13 @@ public static function init(): void { $bootstrapCoordinator->runInitialRegistration(); $eventLogger->start('init_session', 'Initialize session'); + + // Check for PHP SimpleXML extension earlier since we need it before our other checks and want to provide a useful hint for web users + // see https://github.com/nextcloud/server/pull/2619 + if (!function_exists('simplexml_load_file')) { + throw new \OCP\HintException('The PHP SimpleXML/PHP-XML extension is not installed.', 'Install the extension or make sure it is enabled.'); + } + OC_App::loadApps(['session']); if (!self::$CLI) { self::initSession();