private static function initializeCommonEnvironment()
 {
     PhutilErrorHandler::initialize();
     self::buildConfigurationSourceStack();
     // Force a valid timezone. If both PHP and Phabricator configuration are
     // invalid, use UTC.
     $tz = self::getEnvConfig('phabricator.timezone');
     if ($tz) {
         @date_default_timezone_set($tz);
     }
     $ok = @date_default_timezone_set(date_default_timezone_get());
     if (!$ok) {
         date_default_timezone_set('UTC');
     }
     // Prepend '/support/bin' and append any paths to $PATH if we need to.
     $env_path = getenv('PATH');
     $phabricator_path = dirname(phutil_get_library_root('phabricator'));
     $support_path = $phabricator_path . '/support/bin';
     $env_path = $support_path . PATH_SEPARATOR . $env_path;
     $append_dirs = self::getEnvConfig('environment.append-paths');
     if (!empty($append_dirs)) {
         $append_path = implode(PATH_SEPARATOR, $append_dirs);
         $env_path = $env_path . PATH_SEPARATOR . $append_path;
     }
     putenv('PATH=' . $env_path);
     // Write this back into $_ENV, too, so ExecFuture picks it up when creating
     // subprocess environments.
     $_ENV['PATH'] = $env_path;
     // If an instance identifier is defined, write it into the environment so
     // it's available to subprocesses.
     $instance = self::getEnvConfig('cluster.instance');
     if (strlen($instance)) {
         putenv('PHABRICATOR_INSTANCE=' . $instance);
         $_ENV['PHABRICATOR_INSTANCE'] = $instance;
     }
     PhabricatorEventEngine::initialize();
     // TODO: Add a "locale.default" config option once we have some reasonable
     // defaults which aren't silly nonsense.
     self::setLocaleCode('en_US');
 }
Example #2
0
 $translation = PhabricatorEnv::newObjectFromConfig('translation.provider');
 PhutilTranslator::getInstance()->setLanguage($translation->getLanguage())->addTranslations($translation->getTranslations());
 $host = $_SERVER['HTTP_HOST'];
 $path = $_REQUEST['__path__'];
 switch ($host) {
     default:
         $config_key = 'aphront.default-application-configuration-class';
         $application = PhabricatorEnv::newObjectFromConfig($config_key);
         break;
 }
 $application->setHost($host);
 $application->setPath($path);
 $application->willBuildRequest();
 $request = $application->buildRequest();
 $write_guard = new AphrontWriteGuard(array($request, 'validateCSRF'));
 PhabricatorEventEngine::initialize();
 $application->setRequest($request);
 list($controller, $uri_data) = $application->buildController();
 if ($access_log) {
     $access_log->setData(array('U' => (string) $request->getRequestURI()->getPath(), 'C' => get_class($controller)));
 }
 // If execution throws an exception and then trying to render that exception
 // throws another exception, we want to show the original exception, as it is
 // likely the root cause of the rendering exception.
 $original_exception = null;
 try {
     $response = $controller->willBeginExecution();
     if ($access_log) {
         if ($request->getUser() && $request->getUser()->getPHID()) {
             $access_log->setData(array('u' => $request->getUser()->getUserName()));
         }
Example #3
0
 private static function initializeCommonEnvironment()
 {
     PhutilErrorHandler::initialize();
     self::buildConfigurationSourceStack();
     // Force a valid timezone. If both PHP and Phabricator configuration are
     // invalid, use UTC.
     $tz = PhabricatorEnv::getEnvConfig('phabricator.timezone');
     if ($tz) {
         @date_default_timezone_set($tz);
     }
     $ok = @date_default_timezone_set(date_default_timezone_get());
     if (!$ok) {
         date_default_timezone_set('UTC');
     }
     // Prepend '/support/bin' and append any paths to $PATH if we need to.
     $env_path = getenv('PATH');
     $phabricator_path = dirname(phutil_get_library_root('phabricator'));
     $support_path = $phabricator_path . '/support/bin';
     $env_path = $support_path . PATH_SEPARATOR . $env_path;
     $append_dirs = PhabricatorEnv::getEnvConfig('environment.append-paths');
     if (!empty($append_dirs)) {
         $append_path = implode(PATH_SEPARATOR, $append_dirs);
         $env_path = $env_path . PATH_SEPARATOR . $append_path;
     }
     putenv('PATH=' . $env_path);
     // Write this back into $_ENV, too, so ExecFuture picks it up when creating
     // subprocess environments.
     $_ENV['PATH'] = $env_path;
     PhabricatorEventEngine::initialize();
     $translation = PhabricatorEnv::newObjectFromConfig('translation.provider');
     PhutilTranslator::getInstance()->setLanguage($translation->getLanguage())->addTranslations($translation->getTranslations());
 }