it-swarm-ja.com

Drushのインストールの問題-magic_quotes_gpcの空でない値

Drushのインストールと構成に成功し、Drushを使用できます。

残念ながら、次のようなエラーが発生します。

次の制限付きPHPモードには空でない値があります:magic_quotes_gpc。この構成は、drushと互換性がありません。

私はこれを試しました

magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

私のphp.ini、それでもエラーが発生します。その理由は何でしょうか?どうすれば修正できますか?

5
niksmac

ここに私がそれをどうやって修正したかがあります。

drush/includes/environment.incに移動

91行目を

$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

正しいphp.iniファイルを編集していることを確認してください。私が思い出す限り、PHP CLIから使用されるファイルは、Apacheモジュールとして実行する場合、PHPから使用されるファイルとは異なる可能性があります。さらに、Drushはオプションまたは設定に基づいて、完全に異なるファイル。

Drushが使用しているphp.iniファイルを確認するには、_drush status_を使用します。 Drushは、$ HOME/.drush、または/ etc/drushディレクトリに保存されているphp.iniファイルを使用できます。同じディレクトリにあるdrush.iniファイルを使用することもできます。または、使用するphp.iniまたはdrush.iniファイルのパスは、それぞれPHP_INIおよびDRUSH_INI環境変数から取得されます。 (詳細は README.txt ファイルの内容を参照してください。)

Php.iniファイルのPHP設定をチェックする関数は _ drush_environment_check_php_ini() で、次のコードが含まれています。

_  // 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;
    }
  }
_

私のコンピューターでは、エラーメッセージが報告されるディレクティブが次の行で設定されています。

_magic_quotes_gpc = Off
_

dpm(ini_get('magic_quotes_gpc'));を実行すると、出力として0が返されます。

9
kiamlaluno

私は必ず~/.drush/drush.iniファイル。

magic_quotes_gpc = 0

の代わりに

magic_quotes_gpc = Off
1
Dave Parrish

あなたのパスが示唆しているように、あなたはPHP 5.4.4。を使用しています。そしてPHP 5.4.0なので、魔法の引用符が削除されているので、この設定すらすべきではありません。あなたのphp.iniで。

それらをコメントアウトして、それが役立つかどうかを確認してください。

ソース: http://www.php.net/manual/en/security.magicquotes.php

1

私はこの古い投稿を知っていますが、エラーメッセージを削除するのは、「言語オプション」の「disable_functions =」をコメント化したことです。

0
Jay Jandu

私はこれが古い質問であることを知っています。私はDrupal 7.28をDrushでセットアップしようとしていて、私のGoDaddyホスティングで同じ問題に直面していました。これは私が見つけたものであり、私がそれを解決した方法です:

見つかった:

GoDaddyは、magic_quotes_gpc = Onに設定された/web/config/php.iniを使用します。 PHP 5.2と5.3 cliを切り替えても、同じ.iniを使用します。

動作しませんでした:

  1. /drush.iniのmagic_quotes_gpc = Offも上書きmagic_quotes_gpc = 0を上書きするが、同じエラー
  2. /web/config/php.iniを〜/ html/drush-cli-php.iniにコピーし(〜/ htmlはGoDaddyのWebルートです)、コメントアウト/削除magic_quotes_gpcステートメントを使用し、phpコマンドを使用しました。

    php -c ~/html/drush-cli-php.ini
    

    phpにこの新しいiniを使用させるには。 drushはこのphpを使用します。しかし、php -iは、/ web/config/php.iniが最初の構成ファイルであることをまだ示しています。

機能したもの:

magic_quotes_gpc = Offを〜html/drush-cli-php.iniとviolaに明示的にコーディングしたところ、うまくいきました!これは、このiniでコーディングしたonlyパラメータでした。

私が観察したのは、drush.iniでmagic_quotes_gpcOffに上書きされた場合、おそらく上書き前にdrushの検証エラーが発生したために機能しませんでした。

これが誰かを助けることを願っています。 :)

0
aalapshah

私はこれが古いことを知っており、一部の人から回答を得ていますが、Drush 6のベータ2をインストールしたところ、この問題は発生しなくなりました。

pear channel-discover pear.drush.org
pear install drush/drush
pear install drush/drush-6.0.0

詳細は http://drupal.org/project/drush を参照してください。

0
Christian