diff options
author | alecpl <alec@alec.pl> | 2008-08-27 10:58:33 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2008-08-27 10:58:33 +0000 |
commit | b77d0dd6c5574d9841cd5d040dfcc351a58ccb82 (patch) | |
tree | 6c8e872c3d4be368f2fa631f2421d3935e71ab21 /installer | |
parent | d5c539942e3cb4ad623a3f3f0344fc45af371981 (diff) |
- added options to use syslog instead of log file (#1484850)
- added Logging & Debugging section in Installer
- fixed config from $_POST for next installer steps saving
- fixed and re-enabled debug_level setting in installer
Diffstat (limited to 'installer')
-rw-r--r-- | installer/check.php | 3 | ||||
-rw-r--r-- | installer/config.php | 116 | ||||
-rw-r--r-- | installer/rcube_install.php | 16 | ||||
-rw-r--r-- | installer/test.php | 7 |
4 files changed, 102 insertions, 40 deletions
diff --git a/installer/check.php b/installer/check.php index 4ede85c95..a314ff72d 100644 --- a/installer/check.php +++ b/installer/check.php @@ -116,9 +116,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]); } diff --git a/installer/config.php b/installer/config.php index f6916406e..194c82600 100644 --- a/installer/config.php +++ b/installer/config.php @@ -15,6 +15,7 @@ $RCI->config_props = array( 'prefer_html' => 1, 'preview_pane' => 1, 'htmleditor' => 1, + 'debug_level' => 1, ); // allow the current user to get to the next step @@ -47,25 +48,6 @@ if (!empty($_POST['submit'])) { <fieldset> <legend>General configuration</legend> <dl class="configblock"> -<!-- -<dt id="cgfblockgeneral" class="propname">debug_level</dt> -<dd> -<?php -/* -$value = $RCI->getprop('debug_level'); -$check_debug = new html_checkbox(array('name' => '_debug_level[]')); -echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1')); -echo '<label for="cfgdebug1">Log errors</label><br />'; - -echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4')); -echo '<label for="cfgdebug4">Display errors</label><br />'; - -echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8')); -echo '<label for="cfgdebug8">Verbose display</label><br />'; -*/ -?> -</dd> ---> <dt class="propname">product_name</dt> <dd> @@ -89,16 +71,6 @@ echo $input_tempdir->show($RCI->getprop('temp_dir')); <div>Use this folder to store temp files (must be writebale for webserver)</div> </dd> -<dt class="propname">log_dir</dt> -<dd> -<?php - -$input_logdir = new html_inputfield(array('name' => '_log_dir', 'size' => 30, 'id' => "cfglogdir")); -echo $input_logdir->show($RCI->getprop('log_dir')); - -?> -<div>Use this folder to store log files (must be writebale for webserver)</div> -</dd> <dt class="propname">ip_check</dt> <dd> @@ -154,6 +126,90 @@ echo $check_caching->show(intval($RCI->getprop('enable_spellcheck')), array('val </fieldset> <fieldset> +<legend>Logging & Debugging</legend> +<dl class="loggingblock"> + +<dt class="propname">debug_level</dt> +<dd> +<?php + +$value = $RCI->getprop('debug_level'); +$check_debug = new html_checkbox(array('name' => '_debug_level[]')); +echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1')); +echo '<label for="cfgdebug1">Log errors</label><br />'; + +echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4')); +echo '<label for="cfgdebug4">Print errors (to the browser)</label><br />'; + +echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8')); +echo '<label for="cfgdebug8">Verbose display (enables debug console)</label><br />'; + +?> +</dd> + +<dt class="propname">log_driver</dt> +<dd> +<?php + +$select_log_driver = new html_select(array('name' => '_log_driver', 'id' => "cfglogdriver")); +$select_log_driver->add(array('file', 'syslog'), array('file', 'syslog')); +echo $select_log_driver->show($RCI->getprop('log_driver', 'file')); + +?> +<div>How to do logging? 'file' - write to files in the log directory, 'syslog' - use the syslog facility.</div> +</dd> + +<dt class="propname">log_dir</dt> +<dd> +<?php + +$input_logdir = new html_inputfield(array('name' => '_log_dir', 'size' => 30, 'id' => "cfglogdir")); +echo $input_logdir->show($RCI->getprop('log_dir')); + +?> +<div>Use this folder to store log files (must be writebale for webserver). Note that this only applies if you are using the 'file' log_driver.</div> +</dd> + +<dt class="propname">syslog_id</dt> +<dd> +<?php + +$input_syslogid = new html_inputfield(array('name' => '_syslog_id', 'size' => 30, 'id' => "cfgsyslogid")); +echo $input_syslogid->show($RCI->getprop('syslog_id', 'roundcube')); + +?> +<div>What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.</div> +</dd> + +<dt class="propname">syslog_facility</dt> +<dd> +<?php + +$input_syslogfacility = new html_select(array('name' => '_syslog_facility', 'id' => "cfgsyslogfacility")); +$input_syslogfacility->add('user-level messages', LOG_USER); +$input_syslogfacility->add('mail subsystem', LOG_MAIL); +$input_syslogfacility->add('local level 0', LOG_LOCAL0); +$input_syslogfacility->add('local level 1', LOG_LOCAL1); +$input_syslogfacility->add('local level 2', LOG_LOCAL2); +$input_syslogfacility->add('local level 3', LOG_LOCAL3); +$input_syslogfacility->add('local level 4', LOG_LOCAL4); +$input_syslogfacility->add('local level 5', LOG_LOCAL5); +$input_syslogfacility->add('local level 6', LOG_LOCAL6); +$input_syslogfacility->add('local level 7', LOG_LOCAL7); +echo $input_syslogfacility->show($RCI->getprop('syslog_facility'), LOG_USER); + +?> +<div>What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.</div> +</dd> + + + + +</dl> +</fieldset> + + +<fieldset> <legend>Database setup</legend> <dl class="configblock" id="cgfblockdb"> <dt class="propname">db_dsnw</dt> @@ -378,7 +434,7 @@ $check_smtplog = new html_checkbox(array('name' => '_smtp_log', 'id' => "cfgsmtp echo $check_smtplog->show(intval($RCI->getprop('smtp_log')), array('value' => 1)); ?> -<label for="cfgsmtplog">Log sent messages in <tt>logs/sendmail</tt></label><br /> +<label for="cfgsmtplog">Log sent messages in <tt>{log_dir}/sendmail</tt> or to syslog.</label><br /> </dd> </dl> diff --git a/installer/rcube_install.php b/installer/rcube_install.php index 024046755..e3382537e 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -100,7 +100,7 @@ class rcube_install */ function getprop($name, $default = '') { - $value = $this->is_post && (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name]; + $value = $this->config[$name]; if ($name == 'des_key' && !$this->configured && !isset($_REQUEST["_$name"])) $value = rcube_install::random_key(24); @@ -127,11 +127,12 @@ class rcube_install $value = (isset($_POST["_$prop"]) || $this->config_props[$prop]) ? $_POST["_$prop"] : $default; // convert some form data - if ($prop == 'debug_level' && is_array($value)) { + if ($prop == 'debug_level') { $val = 0; - foreach ($value as $i => $dbgval) - $val += intval($dbgval); - $value = $val; + if (isset($value)) + foreach ($value as $dbgval) + $val += intval($dbgval); + $value = $val; } else if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { if ($_POST['_dbtype'] == 'sqlite') @@ -168,7 +169,10 @@ class rcube_install // skip this property if ($value == $default) continue; - + + // save change + $this->config[$prop] = $value; + // replace the matching line in config file $out = preg_replace( '/(\$rcmail_config\[\''.preg_quote($prop).'\'\])\s+=\s+(.+);/Uie', diff --git a/installer/test.php b/installer/test.php index 0f38da059..0edfcc904 100644 --- a/installer/test.php +++ b/installer/test.php @@ -35,7 +35,12 @@ else if (!$read_db) { if ($RCI->configured) { $pass = false; - foreach (array($RCI->config['temp_dir'],$RCI->config['log_dir']) as $dir) { + + $dirs[] = $RCI->config['temp_dir']; + if($RCI->config['log_driver'] != 'syslog') + $dirs[] = $RCI->config['log_dir']; + + foreach ($dirs as $dir) { $dirpath = $dir{0} == '/' ? $dir : INSTALL_PATH . $dir; if (is_writable(realpath($dirpath))) { $RCI->pass($dir); |