From 5bb999411d58abdcfd8a35b6dfaf9f7aecd558d7 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 4 Apr 2008 16:39:25 +0000 Subject: Checks are now done in installer/check.php --- check.php-dist | 522 --------------------------------------------------------- 1 file changed, 522 deletions(-) delete mode 100644 check.php-dist diff --git a/check.php-dist b/check.php-dist deleted file mode 100644 index 7fd943f99..000000000 --- a/check.php-dist +++ /dev/null @@ -1,522 +0,0 @@ - - * @license http://www.opensource.org/licenses/bsd-license.php The BSD License - * @version CVS: $Id$ - * @link https://svn.roundcube.net/trunk - * @todo HTML/CSS to make it pretty. - * @todo In devel-next, use bootstrap. - * @todo Refactor to use RoundCube classes. - */ - -$rctest_config = array(); - -/** - * @var string Please edit this to an email address, such as yourname@example.org. - * This email address serves as from and to for the test emails. - */ -$rctest_config['from'] = '_yourfrom_'; - -/* - ******************************************** - ******************************************** - ** Don't edit anything else in this file. ** - ** Unless (of course) you know what you ** - ** are doing. ** - ******************************************** - ******************************************** - */ - -define('CHECK_OK', 'OK'); -define('CHECK_NOK', 'NOT OK'); -define('CHECK_NA', 'NOT AVAILABLE'); - -error_reporting(E_ALL); - -$include_path = dirname(__FILE__) . '/program/lib'; -$include_path .= PATH_SEPARATOR; -$include_path .= dirname(__FILE__) . '/program'; -$include_path .= PATH_SEPARATOR; -$include_path .= get_include_path(); - -ini_set('display_errors', 1); -set_include_path($include_path); - -$create_files = array('config/db.inc.php', 'config/main.inc.php'); - -$required_libs = array('PEAR' => 'PEAR.php', 'DB' => 'DB.php', - 'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php', - 'MDB2' => 'MDB2.php', 'iilConnection' => 'lib/imap.inc'); - -$supported_drivers = array('MDB2#mysql' => 'MDB2/Driver/mysql.php', - 'MDB2#pgsql' => 'MDB2/Driver/pgsql.php', - 'MDB2#sqlite' => 'MDB2/Driver/sqlite.php'); - -$supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli', - 'PostgreSQL' => 'pgsql', 'SQLite (v2)' => 'sqlite'); - -$required_php_exts = array('Session' => 'session', - 'PCRE' => 'pcre', 'Sockets' => 'sockets'); - -$optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv', - 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'GD' => 'gd'); - -$source_urls = array( - 'Socket' => 'http://www.php.net/manual/en/ref.sockets.php', - 'Session' => 'http://www.php.net/manual/en/ref.session.php', - 'PCRE' => 'http://www.php.net/manual/en/ref.pcre.php', - 'FileInfo' => 'http://www.php.net/manual/en/ref.fileinfo.php', - 'Libiconv' => 'http://www.php.net/manual/en/ref.iconv.php', - 'Multibyte' => 'http://www.php.net/manual/en/ref.mbstring.php', - 'OpenSSL' => 'http://www.php.net/manual/en/ref.openssl.php', - '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' -); - -$path = dirname(__FILE__) . '/'; -$check = basename(__FILE__); - -require_once 'include/bugs.inc'; - -function show_hint($key) { - global $source_urls; - if ($source_urls[$key]) { - echo '(See '; - echo $source_urls[$key] . ')'; - } -} - -?> - - - - - - -RoundCube :: check - - -RoundCube Webmail - -

Check Configuration

-From correctly set: -
'; - echo 'Note: We do not check if this is a valid email address.'; - echo ' Because this settings serves as from & to, make sure it is correctly set!'; -} - -echo '

Checking available databases

'; -echo '

Checks if the extension is loaded. At least one of them is required.

'; - -$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; -foreach ($supported_dbs AS $database => $ext) { - echo "$database: "; - if (extension_loaded($ext)) { - echo CHECK_OK; - } else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - echo CHECK_NA; - if (@dl($_ext)) { - echo ' (Could be loaded. Please add in php.ini, if you plan on using it.)'; - } else { - echo ' (Not installed.)'; - } - } - echo '
'; -} - -echo '

Checking PHP extensions

'; -echo '

The following modules/extensions are required to run RoundCube

'; - -$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; -foreach ($required_php_exts AS $name => $ext) { - echo "$name: "; - if (extension_loaded($ext)) { - echo CHECK_OK; - } else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - echo CHECK_NA; - if (@dl($_ext)) { - echo ' (Could be loaded. Please add in php.ini.)'; - } else { - show_hint($name); - } - } - echo '
'; -} - -echo '

These extensions are optional but recommended to get the best performance.

'; - -foreach ($optional_php_exts AS $name => $ext) { - echo "$name: "; - if (extension_loaded($ext)) { - echo CHECK_OK; - } else { - $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; - echo CHECK_NA; - if (@dl($_ext)) { - echo ' (Could be loaded. Please add in php.ini, if you plan on using it.)'; - } else { - show_hint($name); - } - } - echo '
'; -} - -echo '

Check for required 3rd party libs

'; -echo '

This also checks if the include path is set correctly.

'; - -foreach ($required_libs as $classname => $file) { - require_once $file; - echo "$classname: "; - if (class_exists($classname)) { - echo CHECK_OK; - } else { - echo CHECK_NOK . " (Failed to load $file.)"; - show_hint($classname); - } - echo "
"; -} - -echo '

Check if you setup config files

'; -echo '

Checks if the files exist and if they are readable.

'; - -foreach ($create_files AS $file) { - echo "File $file: "; - if (file_exists($path . $file) && is_readable($path . $file)) { - echo CHECK_OK; - } else { - echo CHECK_NOK; - } - echo '
'; -} - -echo '

Check if directories are writable

'; -echo '

RoundCube may need to write/save files into these directories.

'; -require_once $path . 'config/main.inc.php'; -$rctest_config = array_merge($rctest_config, $rcmail_config); - -if (isset($rctest_config)) { - foreach (array($rctest_config['temp_dir'], $rctest_config['log_dir']) AS $dir) { - $dir = $dir{0} == '/' ? $dir : $path . $dir; - echo "Directory $dir: "; - if (!is_writable($dir)) { - echo CHECK_NOK; - } else { - echo CHECK_OK; - } - echo "
"; - } -} else { - echo 'Could not open db.inc.php config file, or file is empty.
'; -} - -echo '

Check supplied DB settings

'; -require_once $path . 'config/db.inc.php'; -$rctest_config = array_merge($rctest_config, $rcmail_config); - -$db_working = false; -if (isset($rctest_config) && is_array($rctest_config)) { - echo 'Selected backend: '; - if ($rctest_config['db_backend'] != '') { - - echo 'PEAR::' . strtoupper($rctest_config['db_backend']) . '
'; - - $_class = 'rcube_' . strtolower($rctest_config['db_backend']); - - require_once 'include/' . $_class . '.inc'; - - echo 'DSN (standard): '; - $DB = new $_class($rctest_config['db_dsnw'], '', false); - $DB->db_connect('w'); - if (!($db_error_msg = $DB->is_error())) { - echo CHECK_OK; - $db_working = true; - } else { - echo CHECK_NOK . " (Error: $db_error_msg)"; - } - echo '
'; - echo 'DSN (read-only, optional): '; - if ($rctest_config['db_dsnr'] != '') { - $DB_READ = new $_class($rctest_config['db_dsnr'], '', false); - $DB_READ->db_connect('w'); - if (!($db_error_msg = $DB_READ->is_error())) { - echo CHECK_OK; - } else { - echo CHECK_NOK . " (Error: $db_error_msg)"; - } - } else { - echo CHECK_NA.($db_working ? ' - will use DSN (standard)' : ''); - } - echo '
'; - } else { - echo CHECK_NOK . ' (not set)'; - } -} else { - echo 'Could not open db.inc.php config file, or file is empty.
'; -} - -echo '

TimeZone

'; -echo 'Checks if web- and databaseserver are in the same timezone.

'; -echo 'Status: '; -if ($db_working === true) { - $tz_db = 'SELECT ' . $DB->unixtimestamp($DB->now()) . ' AS tz_db'; - $tz_db = $DB->query($tz_db); - $tz_db = $DB->fetch_assoc($tz_db); - $tz_db = (int) $tz_db['tz_db']; - $tz_local = (int) time(); - $tz_diff = $tz_local - $tz_db; - - // sometimes we have 1 second gap, treat that as ok - if ($tz_diff > 1) { - echo CHECK_NOK; - } else { - echo CHECK_OK; - } -} else { - echo 'Could not test (fix DB first).'; -} -echo '
'; - -echo '

Checking .ini settings

'; - -$ini_array = array('session.auto_start' => 0, 'file_uploads' => 1, - 'magic_quotes_sybase' => 0, 'magic_quotes_gpc' => 0, - 'zlib.output_compression' => 0); - -foreach ($ini_array AS $var => $val) { - $status = ini_get($var); - - echo "

$var = $val

"; - echo 'status: '; - if ($status != $val) { - echo CHECK_NOK; - } else { - echo CHECK_OK; - } - echo '
'; -} -?> -

Check email settings

-
'; -if (is_array($rctest_config) && count($rctest_config)) { - ?> - - - - - - - - - -

SMTP Settings

IMAP Settings

'; -echo 'server: '.(isset($rctest_config['smtp_server']) && !empty($rctest_config['smtp_server']) ? $rctest_config['smtp_server'] : 'not set').'
'; -echo 'port: '.(isset($rctest_config['smtp_port']) && !empty($rctest_config['smtp_port']) ? $rctest_config['smtp_port'] : 'not set').'
'; -if (isset($rctest_config['smtp_user']) && !empty($rctest_config['smtp_user'])) { - echo 'user: '.$rctest_config['smtp_user'].'
'; -} elseif ($rctest_config['smtp_user'] == '%u') { - echo 'user: use current session
'; -} else { - echo 'user: not set
'; -} -if (isset($rctest_config['smtp_pass']) && !empty($rctest_config['smtp_pass'])) { - echo 'pass: '.$rctest_config['smtp_pass'].'
'; -} elseif (isset($rctest_config['smtp_pass']) && $rctest_config['smtp_pass'] == '%p') { - echo 'pass: use current session
'; -} else { - echo 'pass: not set
'; -} -?>
-'; -if (isset($rctest_config['default_host']) && is_array($rctest_config['default_host'])) { - echo 'server: '.var_export($rctest_config['default_host'], true).'
'; -} elseif (isset($rctest_config['default_host']) && !empty($rctest_config['default_host'])) { - echo 'server: '.$rctest_config['default_host'].'
'; -} else { - echo 'server: not set
'; -} -echo 'port: '.(isset($rctest_config['default_port']) && !empty($rctest_config['default_port']) ? $rctest_config['default_port'] : 'not set').'
'; -?>
-

Test SMTP settings - send an email

-

Don't abuse this!

-
-
- Recipient:
-
-
- - - - -Because you did not configure SMTP, you cannot test it! - -
-'; - echo 'Please edit $rctest_config in ' . basename(__FILE__) . '
'; - } else { - $data = null; - $CONFIG = $rctest_config; - if (isset($_POST['smtp_test'])) { - $data = $_POST['smtp_test']; - - // inject into config array - $CONFIG['smtp_user'] = $data['user']; - $CONFIG['smtp_pass'] = $data['pass']; - } - - require_once 'lib/rc_mail_mime.inc'; - require_once 'include/rcube_smtp.inc'; - - $recipients = $rctest_config['from']; - - $headers['From'] = $rctest_config['from']; - $headers['To'] = $recipients; - $headers['Subject'] = 'Test message from RoundCube'; - - $body = 'This is a test to confirm that RoundCube can send email.'; - - $mail_object = new rc_mail_mime(); - $send_headers = $mail_object->headers($headers); - - $smtp_response = array(); - - $status = smtp_mail($rctest_config['from'], $recipients, - ($foo = $mail_object->txtHeaders($send_headers)), - $body, $smtp_response); - - if ($status) { - echo CHECK_OK . '
'; - } else { - echo CHECK_NOK; - echo '
' . join('
', $smtp_response); - } - } -} -} else { - echo CHECK_NOK; -} -?> -

Test IMAP settings

-We cannot test, default_host is not set in config/main.inc.php.'; -} else { - ?> -
- -
-
- - -
-

- Error return: ' . $iil_error; - } else { - echo CHECK_OK; - } - echo '
'; - } -} -?> - - -- cgit v1.2.3