J'ai installé et configuré Drush avec succès et je peux travailler avec.
Malheureusement, je reçois une erreur comme celle-ci:
Les modes PHP PHP restreints suivants ont des valeurs non vides: magic_quotes_gpc. Cette configuration est incompatible avec drush.
J'ai essayé ça
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
dans mon php.ini
et je reçois toujours l'erreur. Quelle pourrait être la raison? Comment puis-je réparer cela?
Voici comment j'ai réussi à le réparer.
Aller à drush/includes/environment.inc
Changé la ligne 91 de
$ini_checks = array('safe_mode' => '', 'open_basedir' => '',
'disable_functions' => array('exec', 'system'), 'disable_classes' => '',
'magic_quotes_gpc' => '', 'magic_quotes_runtime' => '');
à
$ini_checks = array('safe_mode' => '', 'open_basedir' => '',
'disable_functions' => array('exec', 'system'));
Assurez-vous que vous éditez le bon fichier php.ini. Pour autant que je me souvienne, le fichier utilisé à partir de PHP CLI pourrait être différent de celui utilisé à partir de PHP lors de l'exécution en tant que module Apache; plus, Drush pourrait utiliser un fichier complètement différent, en fonction de ses options ou paramètres.
Pour voir quel fichier php.ini Drush utilise, utilisez drush status
. Drush peut utiliser un fichier php.ini qui est enregistré dans le répertoire $ HOME/.drush ou/etc/drush; il peut également utiliser un fichier drush.ini présent dans les mêmes répertoires. Alternativement, le chemin d'accès d'un fichier php.ini ou drush.ini à utiliser provient respectivement des variables d'environnement PHP_INI et DRUSH_INI. (Voir le contenu du fichier README.txt pour plus d'informations.)
La fonction qui vérifie les paramètres PHP dans le fichier php.ini est _ drush_environment_check_php_ini () , qui contient le code suivant.
// 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;
}
}
Sur mon ordinateur, la directive pour laquelle le message d'erreur est signalé est définie avec la ligne suivante.
magic_quotes_gpc = Off
Lorsque j'exécute dpm(ini_get('magic_quotes_gpc'));
j'obtiens 0 en sortie.
Je devais m'assurer de mettre ce qui suit dans mon ~/.drush/drush.ini
fichier.
magic_quotes_gpc = 0
au lieu de
magic_quotes_gpc = Off
Comme votre chemin le suggère, vous utilisez PHP 5.4.4. Et depuis PHP 5.4.0 les guillemets magiques sont supprimés, donc vous ne devriez même pas avoir ces paramètres en toi php.ini.
Essayez de les commenter et voyez si cela aide.
Source: http://www.php.net/manual/en/security.magicquotes.php
Je connais cet ancien article, mais ce qui a supprimé le message d'erreur, c'était commenter "disable_functions =" dans les "Options de langue"
Je sais que c'est une vieille question. J'essayais de configurer Drupal 7.28 avec Drush et face au même problème sur mon hébergement GoDaddy. Voici ce que j'ai trouvé et comment je l'ai résolu:
GoDaddy utilise /web/config/php.ini qui a défini magic_quotes_gpc = On. Même lorsque je bascule entre PHP 5.2 et 5.3 cli, il utilise le même .ini.
magic_quotes_gpc = Off
, aussimagic_quotes_gpc = 0
dans /drush.ini, mais toujours la même erreurCopié /web/config/php.ini dans ~/html/drush-cli-php.ini (~/html est la racine Web dans GoDaddy), commenté/supprimé magic_quotes_gpc
, et la commande php utilisée:
php -c ~/html/drush-cli-php.ini
pour que php utilise ce nouvel ini. drush utilise ce php. Mais php -i
montrait toujours que /web/config/php.ini était le premier fichier de configuration.
Maintenant, j'ai codé explicitement magic_quotes_gpc = Off
in ~ html/drush-cli-php.ini, et alto, ça a marché! C'était le paramètre seulement que j'ai codé dans cet ini, btw.
Ce que j'ai observé était, si le magic_quotes_gpc
a été remplacé par Off
dans drush.ini, cela n'a pas fonctionné, peut-être parce que l'échec de validation dans drush se produit avant le remplacement.
J'espère que cela aide quelqu'un. :)
Bien que je sache que cela est ancien et que certaines personnes ont répondu, je viens d'installer la beta2 de Drush 6 et je n'ai plus ce problème.
pear channel-discover pear.drush.org
pear install drush/drush
pear install drush/drush-6.0.0
Voir http://drupal.org/project/drush pour plus d'informations.