Merge pull request #14414 from owncloud/add-ini-helper

Add helper to check for `ini` values in `OC_Util::checkServer`
This commit is contained in:
Thomas Müller 2015-02-22 20:44:02 +01:00
commit 0751ee087f
3 changed files with 29 additions and 1 deletions

View File

@ -14,6 +14,7 @@ php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
php_value default_charset 'UTF-8'
php_value output_buffering false
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>

View File

@ -4,3 +4,4 @@ memory_limit=512M
mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=false

View File

@ -570,6 +570,7 @@ class OC_Util {
// classes = class_exists
// functions = function_exists
// defined = defined
// ini = ini_get
// If the dependency is not found the missing module name is shown to the EndUser
$dependencies = array(
'classes' => array(
@ -590,9 +591,14 @@ class OC_Util {
),
'defined' => array(
'PDO::ATTR_DRIVER_NAME' => 'PDO'
)
),
'ini' => [
'mbstring.func_overload' => 0,
'output_buffering' => false,
],
);
$missingDependencies = array();
$invalidIniSettings = [];
$moduleHint = $l->t('Please ask your server administrator to install the module.');
foreach ($dependencies['classes'] as $class => $module) {
@ -610,6 +616,19 @@ class OC_Util {
$missingDependencies[] = $module;
}
}
foreach($dependencies['ini'] as $setting => $expected) {
$iniWrapper = \OC::$server->getIniWrapper();
if(is_bool($expected)) {
if($iniWrapper->getBool($setting) !== $expected) {
$invalidIniSettings[] = [$setting, $expected];
}
}
if(is_int($expected)) {
if($iniWrapper->getNumeric($setting) !== $expected) {
$invalidIniSettings[] = [$setting, $expected];
}
}
}
foreach($missingDependencies as $missingDependency) {
$errors[] = array(
@ -618,6 +637,13 @@ class OC_Util {
);
$webServerRestart = true;
}
foreach($invalidIniSettings as $setting) {
$errors[] = [
'error' => $l->t('PHP setting "%s" is not set to "%s".', [$setting[0], $setting[1]]),
'hint' => $l->t('Adjusting this setting in php.ini will make ownCloud run again')
];
$webServerRestart = true;
}
if (version_compare(phpversion(), '5.4.0', '<')) {
$errors[] = array(