forked from extern/egroupware
- added a check for mbstring.func_overload = 7
- fixed handling memory values with M or K - corrected display of message "Please fix the above errors and warning" - fixed some formating + merged all of benjamin's changed in the 1.0 branch
This commit is contained in:
parent
04d4a88bd1
commit
5f0d5ac125
@ -14,6 +14,7 @@
|
|||||||
$run_by_webserver = !!$_SERVER['PHP_SELF'];
|
$run_by_webserver = !!$_SERVER['PHP_SELF'];
|
||||||
$is_windows = strtoupper(substr(PHP_OS,0,3)) == 'WIN';
|
$is_windows = strtoupper(substr(PHP_OS,0,3)) == 'WIN';
|
||||||
|
|
||||||
|
|
||||||
if ($run_by_webserver)
|
if ($run_by_webserver)
|
||||||
{
|
{
|
||||||
$phpgw_info = array();
|
$phpgw_info = array();
|
||||||
@ -38,8 +39,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$passed_icon = '<img src="templates/default/images/completed.png" title="Passed" align="middle"> ';
|
$passed_icon = '<img src="templates/default/images/completed.png" title="Passed" align="middle"> ';
|
||||||
$error_icon = '<img src="templates/default/images/incomplete.png" title="Error" align="middle"> ';
|
$error_icon = '<img src="templates/default/images/incomplete.png" title="Error" align="middle"><span id="setup_error">';
|
||||||
$warning_icon = '<img src="templates/default/images/dep.png" title="Warning" align="middle"> ';
|
$warning_icon = '<img src="templates/default/images/dep.png" title="Warning" align="middle"><span id="setup_warning"> ';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -66,7 +67,7 @@
|
|||||||
'func' => 'php_ini_check',
|
'func' => 'php_ini_check',
|
||||||
'value' => 0,
|
'value' => 0,
|
||||||
'verbose_value' => 'Off',
|
'verbose_value' => 'Off',
|
||||||
'safe_mode' => 'magic_qoutes_runtime = Off'
|
'safe_mode' => 'magic_quotes_runtime = Off'
|
||||||
),
|
),
|
||||||
'register_globals' => array(
|
'register_globals' => array(
|
||||||
'func' => 'php_ini_check',
|
'func' => 'php_ini_check',
|
||||||
@ -97,28 +98,34 @@
|
|||||||
),
|
),
|
||||||
'mysql' => array(
|
'mysql' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','mysql','MySQL')
|
'warning' => "<div id='setup_info'>" . lang('The %1 extension is needed, if you plan to use a %2 database.','mysql','MySQL').'</div>'
|
||||||
),
|
),
|
||||||
'pgsql' => array(
|
'pgsql' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','pgsql','pgSQL')
|
'warning' => '<div id="setup_info">' . lang('The %1 extension is needed, if you plan to use a %2 database.','pgsql','pgSQL').'</div>'
|
||||||
),
|
),
|
||||||
'mssql' => array(
|
'mssql' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','mssql','MsSQL'),
|
'warning' => '<div id="setup_info">' . lang('The %1 extension is needed, if you plan to use a %2 database.','mssql','MsSQL') . '</div>',
|
||||||
'win_only' => True
|
'win_only' => True
|
||||||
),
|
),
|
||||||
'odbc' => array(
|
'odbc' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','odbc','MaxDB')
|
'warning' => '<div id="setup_info">' . lang('The %1 extension is needed, if you plan to use a %2 database.','odbc','MaxDB') . '</div>',
|
||||||
),
|
),
|
||||||
'mbstring' => array(
|
'mbstring' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets.')
|
'warning' => '<div id="setup_info">' . lang('The mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets.') . "</div>"
|
||||||
|
),
|
||||||
|
'mbstring.func_overload' => array(
|
||||||
|
'func' => 'php_ini_check',
|
||||||
|
'value' => 7,
|
||||||
|
'warning' => '<div id="setup_info">' . lang('The mbstring.func_overload = 7 is needed to fully support unicode (utf-8) or other multibyte-charsets.') . "</div>",
|
||||||
|
'change' => extension_loaded('mbstring') || function_exists('dl') && @dl(PHP_SHLIB_PREFIX.'mbstring.'.PHP_SHLIB_SUFFIX) ? 'mbstring.func_overload = 7' : '',
|
||||||
),
|
),
|
||||||
'imap' => array(
|
'imap' => array(
|
||||||
'func' => 'extension_check',
|
'func' => 'extension_check',
|
||||||
'warning' => lang('The imap extension is needed by the two email apps (even if you use email with pop3 as protocoll).')
|
'warning' => '<div id="setup_info">' . lang('The imap extension is needed by the two email apps (even if you use email with pop3 as protocoll).') . '</div>'
|
||||||
),
|
),
|
||||||
'.' => array(
|
'.' => array(
|
||||||
'func' => 'permission_check',
|
'func' => 'permission_check',
|
||||||
@ -144,7 +151,7 @@
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// some constanst for pre php4.3
|
// some constants for pre php4.3
|
||||||
if (!defined('PHP_SHLIB_SUFFIX'))
|
if (!defined('PHP_SHLIB_SUFFIX'))
|
||||||
{
|
{
|
||||||
define('PHP_SHLIB_SUFFIX',$is_windows ? 'dll' : 'so');
|
define('PHP_SHLIB_SUFFIX',$is_windows ? 'dll' : 'so');
|
||||||
@ -165,7 +172,7 @@
|
|||||||
// we check for the existens of 'dl', as multithreaded webservers dont have it !!!
|
// we check for the existens of 'dl', as multithreaded webservers dont have it !!!
|
||||||
$availible = extension_loaded($name) || function_exists('dl') && @dl(PHP_SHLIB_PREFIX.$name.'.'.PHP_SHLIB_SUFFIX);
|
$availible = extension_loaded($name) || function_exists('dl') && @dl(PHP_SHLIB_PREFIX.$name.'.'.PHP_SHLIB_SUFFIX);
|
||||||
|
|
||||||
echo ($availible ? $passed_icon : $warning_icon).' '.lang('Checking extension %1 is loaded or loadable',$name).': '.($availible ? lang('True') : lang('False'))."\n";
|
echo ($availible ? $passed_icon : $warning_icon).' '.lang('Checking extension %1 is loaded or loadable',$name).': '.($availible ? lang('True') : lang('False'))."</span><br>\n";
|
||||||
|
|
||||||
if (!$availible)
|
if (!$availible)
|
||||||
{
|
{
|
||||||
@ -263,17 +270,17 @@
|
|||||||
$checks = implode(', ',$checks);
|
$checks = implode(', ',$checks);
|
||||||
|
|
||||||
$icon = $passed_icon;
|
$icon = $passed_icon;
|
||||||
$msg = lang('Checking file-permissions of %1 for %2: %3',$rel_name,$checks,$perms)."\n";
|
$msg = lang('Checking file-permissions of %1 for %2: %3',$rel_name,$checks,$perms)."<br>\n";
|
||||||
|
|
||||||
if (!file_exists($name))
|
if (!file_exists($name))
|
||||||
{
|
{
|
||||||
echo $error_icon.' '.$msg.lang('%1 does not exist !!!',$rel_name)."\n";
|
echo $error_icon . $msg . lang('%1 does not exist !!!',$rel_name)."</span><br/>\n";
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
$warning = False;
|
$warning = False;
|
||||||
if (!$GLOBALS['run_by_webserver'] && (@$args['is_readable'] || @$args['is_writable']))
|
if (!$GLOBALS['run_by_webserver'] && (@$args['is_readable'] || @$args['is_writable']))
|
||||||
{
|
{
|
||||||
echo $warning_icon.' '.$msg.'Check can only be performed, if called via a webserver, as the user-id/-name of the webserver is not known.'."\n";
|
echo $warning_icon.' '.$msg. lang('Check can only be performed, if called via a webserver, as the user-id/-name of the webserver is not known.')."</span><br/>\n";
|
||||||
unset($args['is_readable']);
|
unset($args['is_readable']);
|
||||||
unset($args['is_writable']);
|
unset($args['is_writable']);
|
||||||
$warning = True;
|
$warning = True;
|
||||||
@ -281,22 +288,22 @@
|
|||||||
$Ok = True;
|
$Ok = True;
|
||||||
if (isset($args['is_writable']) && is_writable($name) != $args['is_writable'])
|
if (isset($args['is_writable']) && is_writable($name) != $args['is_writable'])
|
||||||
{
|
{
|
||||||
echo "$error_icon $msg ".lang('%1 is %2%3 !!!',$rel_name,$args['is_writable']?lang('not').' ':'',lang('writable by the webserver'))."\n";
|
echo "$error_icon $msg ".lang('%1 is %2%3 !!!',$rel_name,$args['is_writable']?lang('not').' ':'',lang('writable by the webserver'))."</span><br/>\n";
|
||||||
$Ok = False;
|
$Ok = False;
|
||||||
}
|
}
|
||||||
if (isset($args['is_readable']) && is_readable($name) != $args['is_readable'])
|
if (isset($args['is_readable']) && is_readable($name) != $args['is_readable'])
|
||||||
{
|
{
|
||||||
echo "$error_icon $msg ".lang('%1 is %2%3 !!!',$rel_name,$args['is_readable']?lang('not').' ':'',lang('readable by the webserver'))."\n";
|
echo "$error_icon $msg ". lang('%1 is %2%3 !!!',$rel_name,$args['is_readable']?lang('not').' ':'',lang('readable by the webserver'))."</span><br/>\n";
|
||||||
$Ok = False;
|
$Ok = False;
|
||||||
}
|
}
|
||||||
if (!$is_windows && isset($args['is_world_readable']) && !(fileperms($name) & 04) == $args['is_world_readable'])
|
if (!$is_windows && isset($args['is_world_readable']) && !(fileperms($name) & 04) == $args['is_world_readable'])
|
||||||
{
|
{
|
||||||
echo "$error_icon $msg ".lang('%1 is %2%3 !!!',$rel_name,$args['is_world_readable']?lang('not').' ':'',lang('world readable'))."\n";
|
echo "$error_icon $msg" . lang('%1 is %2%3 !!!',$rel_name,$args['is_world_readable']?lang('not').' ':'',lang('world readable'))."</span><br/>\n";
|
||||||
$Ok = False;
|
$Ok = False;
|
||||||
}
|
}
|
||||||
if (!$is_windows && isset($args['is_world_writable']) && !(fileperms($name) & 02) == $args['is_world_writable'])
|
if (!$is_windows && isset($args['is_world_writable']) && !(fileperms($name) & 02) == $args['is_world_writable'])
|
||||||
{
|
{
|
||||||
echo "$error_icon $msg ".lang('%1 is %2%3 !!!',$rel_name,$args['is_world_writable']?lang('not').' ':'',lang('world writable'))."\n";
|
echo "$error_icon $msg " . lang('%1 is %2%3 !!!',$rel_name,$args['is_world_writable']?lang('not').' ':'',lang('world writable'))."</span><br/>\n";
|
||||||
$Ok = False;
|
$Ok = False;
|
||||||
}
|
}
|
||||||
if ($Ok && !$warning && $verbose)
|
if ($Ok && !$warning && $verbose)
|
||||||
@ -307,7 +314,7 @@
|
|||||||
{
|
{
|
||||||
if ($verbose)
|
if ($verbose)
|
||||||
{
|
{
|
||||||
echo lang('This might take a while, please wait ...')."\n";
|
echo "<div id='setup_info'>" . lang('This might take a while, please wait ...')."</div>\n";
|
||||||
flush();
|
flush();
|
||||||
}
|
}
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
@ -326,6 +333,13 @@
|
|||||||
return $Ok;
|
return $Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mk_value($value)
|
||||||
|
{
|
||||||
|
if (!preg_match('/^([0-9]+)([mk]+)$/i',$value,$matches)) return $value;
|
||||||
|
|
||||||
|
return (strtolower($matches[2]) == 'm' ? 1024*1024 : 1024) * (int) $matches[1];
|
||||||
|
}
|
||||||
|
|
||||||
function php_ini_check($name,$args)
|
function php_ini_check($name,$args)
|
||||||
{
|
{
|
||||||
global $passed_icon, $error_icon, $warning_icon, $is_windows;
|
global $passed_icon, $error_icon, $warning_icon, $is_windows;
|
||||||
@ -352,9 +366,7 @@
|
|||||||
break;
|
break;
|
||||||
case '>=':
|
case '>=':
|
||||||
$result = !$ini_value || // value not used, eg. no memory limit
|
$result = !$ini_value || // value not used, eg. no memory limit
|
||||||
intval($ini_value) >= intval($args['value']) &&
|
(int) mk_value($ini_value) >= (int) mk_value($args['value']);
|
||||||
($args['value'] == intval($args['value']) ||
|
|
||||||
substr($args['value'],-1) == substr($ini_value,-1));
|
|
||||||
break;
|
break;
|
||||||
case 'contain':
|
case 'contain':
|
||||||
$check = lang('contain');
|
$check = lang('contain');
|
||||||
@ -366,7 +378,7 @@
|
|||||||
$result = $ini_value == $args['value'];
|
$result = $ini_value == $args['value'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$msg = ' '.lang('Checking php.ini').": $name $check $verbose_value: ini_get('$name')='$ini_value'$ini_value_verbose\n";
|
$msg = ' '.lang('Checking php.ini').": $name $check $verbose_value: <div id='setup_info'>ini_get('$name')='$ini_value'$ini_value_verbose</div>\n";
|
||||||
|
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
@ -376,23 +388,23 @@
|
|||||||
{
|
{
|
||||||
if (isset($args['warning']))
|
if (isset($args['warning']))
|
||||||
{
|
{
|
||||||
echo $warning_icon.$msg.$args['warning']."\n";
|
echo $warning_icon.$msg.$args['warning']."<br/></span>\n";
|
||||||
}
|
}
|
||||||
if (isset($args['error']))
|
if (isset($args['error']))
|
||||||
{
|
{
|
||||||
echo $error_icon.$msg.$args['error']."\n";
|
echo $error_icon.$msg.$args['error']."</br></span>\n";
|
||||||
}
|
}
|
||||||
if (isset($args['safe_mode']) && $safe_mode || @$args['change'])
|
if (isset($args['safe_mode']) && $safe_mode || @$args['change'])
|
||||||
{
|
{
|
||||||
if (!isset($args['warning']) && !isset($args['error']))
|
if (!isset($args['warning']) && !isset($args['error']))
|
||||||
{
|
{
|
||||||
echo $error_icon.$msg;
|
echo $error_icon.$msg."<br/></span>";
|
||||||
}
|
}
|
||||||
echo '*** '.lang('Please make the following change in your php.ini').' ('.get_php_ini().'): '.(@$args['safe_mode']?$args['safe_mode']:$args['change'])."\n";
|
echo "<div id='setup_error'>\n";
|
||||||
echo '*** '.lang('AND reload your webserver, so the above changes take effect !!!')."\n";
|
echo '*** '.lang('Please make the following change in your php.ini').' ('.get_php_ini().'): '.(@$args['safe_mode']?$args['safe_mode']:$args['change'])."<br>\n";
|
||||||
|
echo '*** '.lang('AND reload your webserver, so the above changes take effect !!!')."</div>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "\n";
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -411,12 +423,14 @@
|
|||||||
global $passed_icon, $warning_icon;
|
global $passed_icon, $warning_icon;
|
||||||
$available = (function_exists('imagecopyresampled') || function_exists('imagecopyresized'));
|
$available = (function_exists('imagecopyresampled') || function_exists('imagecopyresized'));
|
||||||
|
|
||||||
echo ($available ? $passed_icon : $warning_icon).' '.lang('Checking for GD support...').': '.($available ? lang('True') : lang('False'))."\n";
|
echo ($available ? $passed_icon : $warning_icon).' '.lang('Checking for GD support...').': '.($available ? lang('True') : lang('False'))."<br/></span>\n";
|
||||||
|
|
||||||
if (!$available)
|
if (!$available)
|
||||||
{
|
{
|
||||||
echo lang('Your PHP installation does not have appropriate GD support. You need gd library version 1.8 or newer to see Gantt charts in projects.')."\n";
|
echo lang('Your PHP installation does not have appropriate GD support. You need gd library version 1.8 or newer to see Gantt charts in projects.')."\n";
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($run_by_webserver)
|
if ($run_by_webserver)
|
||||||
@ -447,7 +461,7 @@
|
|||||||
} else {
|
} else {
|
||||||
$GLOBALS['phpgw_setup']->html->show_header(lang('Checking the eGroupWare Installation'),False,'config',$ConfigDomain ? $ConfigDomain . '(' . @$phpgw_domain[$ConfigDomain]['db_type'] . ')' : '');
|
$GLOBALS['phpgw_setup']->html->show_header(lang('Checking the eGroupWare Installation'),False,'config',$ConfigDomain ? $ConfigDomain . '(' . @$phpgw_domain[$ConfigDomain]['db_type'] . ')' : '');
|
||||||
echo '<h1>'.lang('Checking the eGroupWare Installation')."</h1>\n";
|
echo '<h1>'.lang('Checking the eGroupWare Installation')."</h1>\n";
|
||||||
echo "<pre style=\"text-align: left;\">\n";;
|
# echo "<pre style=\"text-align: left;\">\n";;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -465,7 +479,7 @@
|
|||||||
|
|
||||||
if ($run_by_webserver)
|
if ($run_by_webserver)
|
||||||
{
|
{
|
||||||
echo "</pre>\n";;
|
# echo "</pre>\n";;
|
||||||
|
|
||||||
if ($GLOBALS['phpgw_info']['setup']['stage']['header'] != 10)
|
if ($GLOBALS['phpgw_info']['setup']['stage']['header'] != 10)
|
||||||
{
|
{
|
||||||
@ -487,7 +501,7 @@
|
|||||||
{
|
{
|
||||||
echo lang('Please fix the above errors (%1) and warnings(%2)',$error_icon,$warning_icon).'. ';
|
echo lang('Please fix the above errors (%1) and warnings(%2)',$error_icon,$warning_icon).'. ';
|
||||||
}
|
}
|
||||||
echo '<a href="'.str_replace('check_install.php','',$_SERVER['HTTP_REFERER']).'">'.lang('Return to Setup')."</a></h3>\n";
|
echo '<br><a href="'.str_replace('check_install.php','',$_SERVER['HTTP_REFERER']).'">'.lang('Return to Setup')."</a></h3>\n";
|
||||||
}
|
}
|
||||||
$setup_tpl->pparse('out','T_footer');
|
$setup_tpl->pparse('out','T_footer');
|
||||||
//echo "</body>\n</html>\n";
|
//echo "</body>\n</html>\n";
|
||||||
|
Loading…
Reference in New Issue
Block a user