/** * Load the default or specified configuration file. * Modifies global $config and may establish plugins. * * @throws NoConfigException */ protected function loadConfigFile($conffile = null) { global $_server, $_path, $config; // 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). if (isset($conffile)) { $config_files = array($conffile); } else { $config_files = array('/etc/statusnet/statusnet.php', '/etc/statusnet/laconica.php', '/etc/laconica/laconica.php', '/etc/statusnet/' . $_server . '.php', '/etc/laconica/' . $_server . '.php'); if (strlen($_path) > 0) { $config_files[] = '/etc/statusnet/' . $_server . '_' . $_path . '.php'; $config_files[] = '/etc/laconica/' . $_server . '_' . $_path . '.php'; } $config_files[] = INSTALLDIR . '/config.php'; } self::$have_config = false; foreach ($config_files as $_config_file) { if (@file_exists($_config_file)) { // Ignore 0-byte config files if (filesize($_config_file) > 0) { include $_config_file; self::$have_config = true; } } } if (!self::$have_config) { throw new NoConfigException("No configuration file found.", $config_files); } // Fixup for statusnet.ini $_db_name = substr($config['db']['database'], strrpos($config['db']['database'], '/') + 1); if ($_db_name != 'statusnet' && !array_key_exists('ini_' . $_db_name, $config['db'])) { $config['db']['ini_' . $_db_name] = INSTALLDIR . '/classes/statusnet.ini'; } // Backwards compatibility if (array_key_exists('memcached', $config)) { if ($config['memcached']['enabled']) { addPlugin('Memcache', array('servers' => $config['memcached']['server'])); } if (!empty($config['memcached']['base'])) { $config['cache']['base'] = $config['memcached']['base']; } } }
/** * Load the default or specified configuration file. * Modifies global $config and may establish plugins. * * @throws NoConfigException */ protected function loadConfigFile($conffile = null) { global $_server, $_path, $config; // 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). if (isset($conffile)) { $config_files = array($conffile); } else { $config_files = array('/etc/statusnet/statusnet.php', '/etc/statusnet/laconica.php', '/etc/laconica/laconica.php', '/etc/statusnet/' . $_server . '.php', '/etc/laconica/' . $_server . '.php'); if (strlen($_path) > 0) { $config_files[] = '/etc/statusnet/' . $_server . '_' . $_path . '.php'; $config_files[] = '/etc/laconica/' . $_server . '_' . $_path . '.php'; } $config_files[] = INSTALLDIR . '/config.php'; } self::$have_config = false; foreach ($config_files as $_config_file) { if (@file_exists($_config_file)) { // Ignore 0-byte config files if (filesize($_config_file) > 0) { common_log(LOG_INFO, "Including config file: " . $_config_file); include $_config_file; self::$have_config = true; } } } if (!self::$have_config) { throw new NoConfigException("No configuration file found.", $config_files); } // Backwards compatibility if (array_key_exists('memcached', $config)) { if ($config['memcached']['enabled']) { addPlugin('Memcache', array('servers' => $config['memcached']['server'])); } if (!empty($config['memcached']['base'])) { $config['cache']['base'] = $config['memcached']['base']; } } if (array_key_exists('xmpp', $config)) { if ($config['xmpp']['enabled']) { addPlugin('xmpp', array('server' => $config['xmpp']['server'], 'port' => $config['xmpp']['port'], 'user' => $config['xmpp']['user'], 'resource' => $config['xmpp']['resource'], 'encryption' => $config['xmpp']['encryption'], 'password' => $config['xmpp']['password'], 'host' => $config['xmpp']['host'], 'debug' => $config['xmpp']['debug'], 'public' => $config['xmpp']['public'])); } } // Check for database server; must exist! if (empty($config['db']['database'])) { throw new ServerException("No database server for this site."); } }