The error you are seeing is reported by Drush, which verifies the "open_basedir" directive contains an empty value, and returns an error if the value is not empty.
Drush can use the php.ini file used by PHP or its own INI file ("drush.ini"), which is looked for in the following directories:
- Drush installation folder
- User's .drush folder (i.e. "~/.drush/drush.ini")
- System wide configuration folder (i.e. "/etc/drush/drush.ini")
The code I am referring to is contained in the _drush_environment_check_php_ini()
function, and it is the following one:
$ini_checks = array('safe_mode' => '', 'open_basedir' => '', 'disable_functions' => array('exec', 'system'), 'disable_classes' => '');
// Test to insure that certain php ini restrictions have not been enabled
$prohibited_list = array();
foreach ($ini_checks as $prohibited_mode => $disallowed_value) {
$ini_value = ini_get($prohibited_mode);
$invalid_value = FALSE;
if (empty($disallowed_value)) {
$invalid_value = !empty($ini_value);
}
else {
foreach ($disallowed_value as $test_value) {
if (strstr($ini_value, $test_value) !== FALSE) {
$invalid_value = TRUE;
}
}
}
if ($invalid_value) {
$prohibited_list[] = $prohibited_mode;
}
}
if (!empty($prohibited_list)) {
drush_log(dt('The following restricted PHP modes have non-empty values: !prohibited_list. This configuration is incompatible with drush. !php_ini_msg', array('!prohibited_list' => implode(' and ', $prohibited_list), '!php_ini_msg' => _drush_php_ini_loaded_file_message())), 'error');
}
As you can see, the function returns an error if the "safe_mode" directive, or the "open_basedir" directive contains a non-empty value.