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.
This commit is contained in:
Evan Prodromou 2009-01-31 09:38:39 -05:00
parent 37a7692053
commit 74bf2bf672
2 changed files with 38 additions and 3 deletions

9
README
View File

@ -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 of the defaults are defined), you will lose your configuration options
in any upgrade, and you will wish that you had been more careful. 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 Almost all configuration options are made through a two-dimensional
associative array, cleverly named $config. A typical configuration associative array, cleverly named $config. A typical configuration
line will be: line will be:

View File

@ -50,14 +50,23 @@ require_once('DB/DataObject/Cast.php'); # for dates
require_once(INSTALLDIR.'/lib/language.php'); 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 // default configuration, overwritten in config.php
$config = $config =
array('site' => array('site' =>
array('name' => 'Just another Laconica microblog', array('name' => 'Just another Laconica microblog',
'server' => 'localhost', 'server' => $_server,
'theme' => 'default', 'theme' => 'default',
'path' => '/', 'path' => $_path,
'logfile' => null, 'logfile' => null,
'fancy' => false, 'fancy' => false,
'locale_path' => INSTALLDIR.'/locale', 'locale_path' => INSTALLDIR.'/locale',
@ -150,7 +159,24 @@ if (function_exists('date_default_timezone_set')) {
date_default_timezone_set('UTC'); 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('Validate.php');
require_once('markdown.php'); require_once('markdown.php');