From 64393b4c033fb842821da00e890415f3e08f18ea Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 4 May 2015 14:42:22 +0200 Subject: [PATCH 1/2] Remove PHP 5.4 warning in checkSetup This is catched in index.php as older PHP versions will never execute the code path until there due to 5.4 syntax changes. --- lib/private/util.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/private/util.php b/lib/private/util.php index f4624cfe96..177934aa35 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -739,15 +739,6 @@ class OC_Util { $webServerRestart = true; } - if (version_compare(phpversion(), '5.4.0', '<')) { - $errors[] = array( - 'error' => $l->t('PHP %s or higher is required.', '5.4.0'), - 'hint' => $l->t('Please ask your server administrator to update PHP to the latest version.' - . ' Your PHP version is no longer supported by ownCloud and the PHP community.') - ); - $webServerRestart = true; - } - /** * PHP 5.6 ships with a PHP setting which throws notices by default for a * lot of endpoints. Thus we need to ensure that the value is set to -1 From 7c5558327d04d498332f787e91552a3218f9ecd9 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 4 May 2015 16:14:12 +0200 Subject: [PATCH 2/2] Check `mbstring.func_overload` only if the mb module is installed. Fixes https://github.com/owncloud/core/issues/14670 --- lib/private/util.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/private/util.php b/lib/private/util.php index 177934aa35..f8776c2c86 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -671,7 +671,6 @@ class OC_Util { 'PDO::ATTR_DRIVER_NAME' => 'PDO' ), 'ini' => [ - 'mbstring.func_overload' => 0, 'default_charset' => 'UTF-8', ], ); @@ -685,6 +684,7 @@ class OC_Util { * approach to check for these values we should re-enable those * checks. */ + $iniWrapper = \OC::$server->getIniWrapper(); if (!self::runningOnHhvm()) { foreach ($dependencies['classes'] as $class => $module) { if (!class_exists($class)) { @@ -702,7 +702,6 @@ class OC_Util { } } foreach ($dependencies['ini'] as $setting => $expected) { - $iniWrapper = \OC::$server->getIniWrapper(); if (is_bool($expected)) { if ($iniWrapper->getBool($setting) !== $expected) { $invalidIniSettings[] = [$setting, $expected]; @@ -739,6 +738,22 @@ class OC_Util { $webServerRestart = true; } + /** + * The mbstring.func_overload check can only be performed if the mbstring + * module is installed as it will return null if the checking setting is + * not available and thus a check on the boolean value fails. + * + * TODO: Should probably be implemented in the above generic dependency + * check somehow in the long-term. + */ + if($iniWrapper->getBool('mbstring.func_overload') !== null && + $iniWrapper->getBool('mbstring.func_overload') === true) { + $errors[] = array( + 'error' => $l->t('mbstring.func_overload is set to "%s" instead to the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]), + 'hint' => $l->t('To fix this issue set mbstring.func_overload to 0 in your php.ini') + ); + } + /** * PHP 5.6 ships with a PHP setting which throws notices by default for a * lot of endpoints. Thus we need to ensure that the value is set to -1