web-dev-qa-db-fra.com

Problème d'installation de Drush - Valeurs non vides pour magic_quotes_gpc

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?

5
niksmac

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'));
5
niksmac

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.

9
kiamlaluno

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
1
Dave Parrish

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

1
Marcus Farrington

Je connais cet ancien article, mais ce qui a supprimé le message d'erreur, c'était commenter "disable_functions =" ​​dans les "Options de langue"

0
Jay Jandu

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:

A trouvé:

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.

N'a pas marché:

  1. Écrasement magic_quotes_gpc = Off, aussimagic_quotes_gpc = 0 dans /drush.ini, mais toujours la même erreur
  2. Copié /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.

Ce qui a fonctionné:

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. :)

0
aalapshah

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.

0
Christian