diff --git a/conf/default.conf.php b/conf/default.conf.php index b3db185846..5af1f689ba 100644 --- a/conf/default.conf.php +++ b/conf/default.conf.php @@ -1246,4 +1246,14 @@ return array( // is ready. 'preview.viewport-meta-tag' => false, +// -- Environment ---------------------------------------------------------- // + + // Phabricator occasionally shells out to other binaries on the server. + // An example of this is the "pygmentize" command, used to syntax-highlight + // code written in languages other than PHP. By default, it is assumed that + // these binaries are in the $PATH of the user running Phabricator (normally + // 'apache', 'httpd', or 'nobody'). Here you can add extra directories to + // the $PATH environment variable, for when these binaries are in non-standard + // locations. + 'environment.append-paths' => array(), ); diff --git a/webroot/index.php b/webroot/index.php index caecd86a5d..28edc5a2d3 100644 --- a/webroot/index.php +++ b/webroot/index.php @@ -91,6 +91,14 @@ try { date_default_timezone_set($tz); } + // Append any paths to $PATH if we need to. + $paths = PhabricatorEnv::getEnvConfig('environment.append-paths'); + if (!empty($paths)) { + $current_env_path = getenv('PATH'); + $new_env_paths = implode(':', $paths); + putenv('PATH='.$current_env_path.':'.$new_env_paths); + } + // This is the earliest we can get away with this, we need env config first. PhabricatorAccessLog::init(); $access_log = PhabricatorAccessLog::getLog();