summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-01-31 09:38:39 -0500
committerEvan Prodromou <evan@controlyourself.ca>2009-01-31 09:38:39 -0500
commit74bf2bf672b147888a42fafd7ae5d86c600cf3a8 (patch)
tree42df9afae8d4a55ec3a9166ba56fa0e634c234ce
parent37a769205387c0f9c41f60a675e963678d9a966f (diff)
Enable configuration files in /etc/laconica/
Enable storing config files in /etc/laconica/, which makes it much easier to have a single installation with multiple mublogs supported.
-rw-r--r--README9
-rw-r--r--lib/common.php32
2 files changed, 38 insertions, 3 deletions
diff --git a/README b/README
index 334e95b89..ba0deb2c3 100644
--- a/README
+++ b/README
@@ -745,6 +745,15 @@ edit any other file in the directory, like lib/common.php (where most
of the defaults are defined), you will lose your configuration options
in any upgrade, and you will wish that you had been more careful.
+Starting with version 0.7.1, you can put config files in the
+/etc/laconica/ directory on your server, if it exists. Config files
+will be included in this order:
+
+* /etc/laconica/laconica.php - server-wide config
+* /etc/laconica/<servername>.php - for a virtual host
+* /etc/laconica/<servername>_<pathname>.php - for a path
+* INSTALLDIR/config.php - for a particular implementation
+
Almost all configuration options are made through a two-dimensional
associative array, cleverly named $config. A typical configuration
line will be:
diff --git a/lib/common.php b/lib/common.php
index a2f9b9bfe..825ba0ff7 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -50,14 +50,23 @@ require_once('DB/DataObject/Cast.php'); # for dates
require_once(INSTALLDIR.'/lib/language.php');
+// try to figure out where we are
+
+$_server = array_key_exists('SERVER_NAME', $_SERVER) ?
+ strtolower($_SERVER['SERVER_NAME']) :
+ null;
+$_path = array_key_exists('SCRIPT_NAME', $_SERVER) ?
+ substr($_SERVER['SCRIPT_NAME'], 1, strrpos($_SERVER['SCRIPT_NAME'], '/') - 1) :
+ null;
+
// default configuration, overwritten in config.php
$config =
array('site' =>
array('name' => 'Just another Laconica microblog',
- 'server' => 'localhost',
+ 'server' => $_server,
'theme' => 'default',
- 'path' => '/',
+ 'path' => $_path,
'logfile' => null,
'fancy' => false,
'locale_path' => INSTALLDIR.'/locale',
@@ -150,7 +159,24 @@ if (function_exists('date_default_timezone_set')) {
date_default_timezone_set('UTC');
}
-require_once(INSTALLDIR.'/config.php');
+// From most general to most specific:
+// server-wide, then vhost-wide, then for a path,
+// finally for a dir (usually only need one of the last two).
+
+$_config_files = array('/etc/laconica/laconica.php',
+ '/etc/laconica/'.$_server.'.php');
+
+if (strlen($_path) > 0) {
+ $_config_files[] = '/etc/laconica/'.$_server.'_'.$_path.'.php';
+}
+
+$_config_files[] = INSTALLDIR.'/config.php';
+
+foreach ($_config_files as $_config_file) {
+ if (file_exists($_config_file)) {
+ include_once($_config_file);
+ }
+}
require_once('Validate.php');
require_once('markdown.php');