1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-22 14:52:41 +01:00

Configuration - re-jigger how we handle bad configuration files

Summary: just explicitly check if the file doesn't exist *first*, and then do the standard include thing with the more generic error if that doesn't work. Fixes T6255.

Test Plan: re-started apache and phabricator still worked; will ask csilvers to give it a whirl too

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T6255

Differential Revision: https://secure.phabricator.com/D10643
This commit is contained in:
Bob Trahan 2014-10-06 13:20:56 -07:00
parent 928b4edffb
commit 69b1ff3032

View file

@ -8,19 +8,6 @@ function phabricator_read_config_file($original_config) {
$config = preg_replace('/\.conf\.php$/', '', $original_config);
$full_config_path = $root.'/conf/'.$config.'.conf.php';
// Make sure config file errors are reported.
$old_error_level = error_reporting(E_ALL | E_STRICT);
$old_display_errors = ini_get('display_errors');
ini_set('display_errors', 1);
ob_start();
$conf = include $full_config_path;
$errors = ob_get_clean();
error_reporting($old_error_level);
ini_set('display_errors', $old_display_errors);
if ($conf === false) {
if (!Filesystem::pathExists($full_config_path)) {
// These are very old configuration files which we used to ship with
@ -57,6 +44,20 @@ function phabricator_read_config_file($original_config) {
"Config file '{$original_config}' does not exist. Valid config files ".
"are:\n\n".$files);
}
// Make sure config file errors are reported.
$old_error_level = error_reporting(E_ALL | E_STRICT);
$old_display_errors = ini_get('display_errors');
ini_set('display_errors', 1);
ob_start();
$conf = include $full_config_path;
$errors = ob_get_clean();
error_reporting($old_error_level);
ini_set('display_errors', $old_display_errors);
if ($conf === false) {
throw new Exception("Failed to read config file '{$config}': {$errors}");
}