summaryrefslogtreecommitdiff
path: root/installer
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-08-27 10:58:33 +0000
committeralecpl <alec@alec.pl>2008-08-27 10:58:33 +0000
commitb77d0dd6c5574d9841cd5d040dfcc351a58ccb82 (patch)
tree6c8e872c3d4be368f2fa631f2421d3935e71ab21 /installer
parentd5c539942e3cb4ad623a3f3f0344fc45af371981 (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.php3
-rw-r--r--installer/config.php116
-rw-r--r--installer/rcube_install.php16
-rw-r--r--installer/test.php7
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);