/** * Load the default or specified configuration file. * Modifies global $config and may establish plugins. * * @throws NoConfigException */ protected static 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::$config_files[] = $_config_file; self::$have_config = true; } } } if (!self::$have_config) { throw new NoConfigException("No configuration file found.", $config_files); } // Check for database server; must exist! if (empty($config['db']['database'])) { throw new ServerException("No database server for this site."); } }