X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=installer%2Fcheck.php;h=459305138cb84354432b885f8a95dc08cb5afc35;hb=357f372087f124c223c31479b0e9f5645bd870d0;hp=e671c06bd901b5da2901b79657fe3465f237d2a8;hpb=92c39ec46fd8ad15a83b42a19fab7cb2e9a59ec9;p=roundcube.git diff --git a/installer/check.php b/installer/check.php index e671c06..4593051 100644 --- a/installer/check.php +++ b/installer/check.php @@ -1,19 +1,25 @@
'pcre', 'Session' => 'session'); +$required_php_exts = array('PCRE' => 'pcre', 'DOM' => 'dom', + 'Session' => 'session', 'XML' => 'xml'); $optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv', - 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt', 'GD' => 'gd'); + 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt', + 'GD' => 'gd'); -$required_libs = array('PEAR' => 'PEAR.php', 'DB' => 'DB.php', 'MDB2' => 'MDB2.php', - 'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php', 'iilConnection' => 'lib/imap.inc'); +$required_libs = array('PEAR' => 'PEAR.php', 'MDB2' => 'MDB2.php', + 'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php', + 'iilConnection' => 'lib/imap.inc'); $supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli', 'PostgreSQL' => 'pgsql', 'SQLite (v2)' => 'sqlite'); $ini_checks = array('file_uploads' => 1, 'session.auto_start' => 0, - 'magic_quotes_gpc' => 0, 'magic_quotes_sybase' => 0); + 'zend.ze1_compatibility_mode' => 0, 'mbstring.func_overload' => 0, + 'suhosin.session.encrypt' => 0); + +$optional_checks = array('date.timezone' => '-NOTEMPTY-'); $source_urls = array( 'Sockets' => 'http://www.php.net/manual/en/ref.sockets.php', @@ -28,7 +34,8 @@ $source_urls = array( 'PEAR' => 'http://pear.php.net', 'MDB2' => 'http://pear.php.net/package/MDB2', 'Net_SMTP' => 'http://pear.php.net/package/Net_SMTP', - 'Mail_mime' => 'http://pear.php.net/package/Mail_mime' + 'Mail_mime' => 'http://pear.php.net/package/Mail_mime', + 'DOM' => 'http://www.php.net/manual/en/intro.dom.php' ); echo ''; @@ -37,11 +44,10 @@ echo 'The following modules/extensions are required to run RoundCube:

$ext) { if (extension_loaded($ext)) { $RCI->pass($name); - } - else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - $msg = @dl($_ext) ? 'Could be loaded. Please add in php.ini' : ''; + } else { + $_ext = $ext_dir . '/' . $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; + $msg = @is_readable($_ext) ? 'Could be loaded. Please add in php.ini' : ''; $RCI->fail($name, $msg, $source_urls[$name]); } echo '
'; @@ -65,7 +73,7 @@ foreach ($required_php_exts AS $name => $ext) { ?> -

The next couple of extensions are optional but recommended to get the best performance:

+

The next couple of extensions are optional and recommended to get the best performance:

$ext) { @@ -73,8 +81,8 @@ foreach ($optional_php_exts AS $name => $ext) { $RCI->pass($name); } else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - $msg = @dl($_ext) ? 'Could be loaded. Please add in php.ini' : ''; + $_ext = $ext_dir . '/' . $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; + $msg = @is_readable($_ext) ? 'Could be loaded. Please add in php.ini' : ''; $RCI->na($name, $msg, $source_urls[$name]); } echo '
'; @@ -94,8 +102,8 @@ foreach ($supported_dbs AS $database => $ext) { $RCI->pass($database); } else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - $msg = @dl($_ext) ? 'Could be loaded. Please add in php.ini' : 'Not installed'; + $_ext = $ext_dir . '/' . $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; + $msg = @is_readable($_ext) ? 'Could be loaded. Please add in php.ini' : 'Not installed'; $RCI->na($database, $msg, $source_urls[$database]); } echo '
'; @@ -114,9 +122,6 @@ foreach ($required_libs as $classname => $file) { if (class_exists($classname)) { $RCI->pass($classname); } - else if ($classname == 'DB' || ($classname == 'MDB2' && class_exists('DB'))) { - $RCI->na($classname, 'Use ' . ($classname == 'DB' ? 'MDB2' : 'DB') . ' instead'); - } else { $RCI->fail($classname, "Failed to load $file", $source_urls[$classname]); } @@ -127,21 +132,54 @@ foreach ($required_libs as $classname => $file) { ?>

Checking php.ini/.htaccess settings

+

The following settings are required to run RoundCube:

$val) { $status = ini_get($var); + if ($val === '-NOTEMPTY-') { + if (empty($status)) { + $RCI->fail($var, "cannot be empty and needs to be set"); + } else { + $RCI->pass($var); + } + echo '
'; + continue; + } if ($status == $val) { $RCI->pass($var); - } - else { + } else { $RCI->fail($var, "is '$status', should be '$val'"); } echo '
'; } ?> +

The following settings are optional and recommended:

+ + $val) { + $status = ini_get($var); + if ($val === '-NOTEMPTY-') { + if (empty($status)) { + $RCI->optfail($var, "Could be set"); + } else { + $RCI->pass($var); + } + echo '
'; + continue; + } + if ($status == $val) { + $RCI->pass($var); + } else { + $RCI->optfail($var, "is '$status', could be '$val'"); + } + echo '
'; +} +?> + failures) {