コード例 #1
0
ファイル: gnusocial.php プロジェクト: phpsource/gnu-social
 /**
  * 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.");
     }
 }