Be sure you are editing the right php.ini file. As far as I recall the file used from PHP CLI could be different from the one used from PHP when running as Apache module; plus, Drush could use a completely different file, basing on its options, or settings.
To see which php.ini file Drush is using, use drush status
. Drush can use a php.ini file that is saved in the $HOME/.drush, or /etc/drush directory; it can also use a drush.ini file present in the same directories. Alternatively, the path of a php.ini, or drush.ini file to use are taken respectively from the PHP_INI, and DRUSH_INI environment variables. (See the content of the README.txt file for more information.)
The function that checks the PHP settings in the php.ini file is _drush_environment_check_php_ini(), which contains the following code.
// 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;
}
}
On my computer, the directive for which the error message is reported is set with the following line.
magic_quotes_gpc = Off
When I execute dpm(ini_get('magic_quotes_gpc'));
I get 0 as output.
php.ini
file (which is part of Apache, not Drush) upon boot, so if you edit that file, you DO need to reboot Apache for Apache to pick up the changes.php -i
on cli, get the ini being loaded, vim the ini and make some change (mem limit, sessions, whatever,) thenphp -i
again - you'll see the changes without a restart. Apache needs to reload so that its HTTP server can see changes, cli uses no such server.