web-dev-qa-db-ja.com

Drushがインストールされ、実行されています。いいえDrupal URIを指定してもサイトが見つかりません

多くの試練と苦難の後、私はすべての準備ができていると思いました。多くの興奮。しかし、その後、喜びはありません...

Drushが機能しています。サイトはMAMP経由で正常に動作します。いずれにせよ、「drush cc all」コマンドは以下を返します。

No Drupal site found, only 'drush' cache was cleared.                                          [warning]
'all' cache was cleared.                                                                       [success]

この質問はdrupalconの参加者と非常に経験豊富な開発者を困らせました。何か案は?

MAMP(無料)バージョン3.0.5を使用しているMac OS 10.9.3を使用しています。

ここに私のdrushステータスがあります:

 Drupal version         :  7.29-dev                               
 Site URI               :  http://default                         
 Database driver        :  mysql                                  
 Database hostname      :  localhost                              
 Database username      :  db_user                           
 Database name          :  db_name                      
 PHP executable         :  /usr/bin/php                           
 PHP configuration      :                                         
 PHP OS                 :  Darwin                                 
 Drush version          :  7.0-dev                                
 Drush temp directory   :  /tmp                                   
 Drush configuration    :                                         
 Drush alias files      :                                         
 Drupal root            :  /Applications/MAMP/htdocs/mysite.dev 
 Site path              :  sites/default    

/Applications/MAMP/htdocs/mysite.devからdrushを実行してみました。 /Applications/MAMP/htdocs/mysite.dev/sites/defaultからおよびdrush cc all --uri=http://localhost/mysite.devを使用

サイト/デフォルトからdrushを実行してみました。同じ結果。

9
jenpasch

以下のすべての点に対処していることを再確認してください。

  1. Drupalルートフォルダまたはsettings.phpファイルを含むフォルダでdrushを実行しています。
  2. mysqlコマンドが存在します(これはPATHにあります)。

    データベースコマンドは、設定ファイルで設定されているデータベースdriverに依存することに注意してください(例:SQL Serverのsqlcmd。詳細については、Drushのさまざまなクラスをチェックしてください /src/Sql )。

    フォルダーで実行中にコマンドが欠落している場合は、そのバイナリファイルへのパスがPATHシステム変数に追加されていることを確認してください。

  3. あなたのPHPは [〜#〜] pdo [〜#〜] 拡張機能が有効になっています(チェック:php -m | grep pdoまたはdrush sqlc)。

  4. あなたのPHP has database extension enabled(eg mysqli )(check by:php -m | grep mysql)。

正確に何が問題なのかを調査するには、-v(冗長)フラグと-d(デバッグ)フラグを指定してdrushを実行します。

drush -vd status
drush -vd ev "echo 123"
drush -vd cc all

エラーがないか確認します。


PHP PDOのmysql拡張がインストールされていません。php.iniをチェックして、それを有効にする方法を確認してください。

インストール データベース拡張 (例 mysqli )(上記の4番目のポイントに従って)。

MAMPについては、次を参照してください Drushは私のMacでは機能しません


MAMP

MAMPを使用しているので、正しいバージョンのphpバイナリ(which phpで確認)を実行していることと、/Applications/MAMP/bin/php/php5.X.X/bin/phpを指していることも確認してください。そうでない場合は、rcファイルのPATHにパスを追加してください(例:~/.bashrc):

# For MAMP (OSX)
PHP_VER="5.6.10" # Or: 5.4.19/5.5.3 (check by: $ ls /Applications/MAMP/bin/php/php*)
export PATH="$PATH:/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php$PHP_VER/bin:/Developer/usr/bin"

XAMPP

XAMPP for Windowsの場合も同様に、C:\xampp\mysql\binを環境変数PATHに追加します。

デバッグ中

drushコマンドが何らかの理由で失敗した場合、drush(シェルコマンド)をデバッグするための推奨手順を以下に示します。

  1. PHP xdebug extension をインストールして有効にします。 php71 -i | grep xdebugで確認します。
  2. Drupal root設定ファイルDatabasedrush statusに存在することを確認します。
  3. トレースファイルを生成します。

    drush ev "xdebug_start_trace(); drush_drupal_cache_clear_all(); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"
    

    または:

    drush ev "xdebug_start_trace(); print_r(_core_site_status_table()); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"
    

    別のPHP=バージョンでxdebugが有効になっている場合は、DRUSH_PHP=/path/to/phpで指定します。

    成功した場合、トレース出力ファイルは最後に出力されるはずなので、メモしておいてください。

  4. 次に、トレースファイルを開いて確認します。

  5. Drushの出力をクリーンなDrupalでテストまたは比較するには、次のようにして空のフォルダーに新しいDrupalをインストールします。

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
    
9
kenorb

MAMPを実行しているMacの新しいDrush 8でも同じ問題がありました

これを.bash_profileエクスポートPATH =/Applications/MAMP/Library/bin /:$ PATHに追加する必要があります。

追加したら、bashを再起動する必要があるため、現在のウィンドウでは機能しないため、新しいターミナルウィンドウを必ず開いてください。

4
Ben Mirkhah

Drushを使用してオールキャッシュをクリアするには、wwwまたはhtdocsディレクトリのようにサイトディレクトリが置かれているターミナルのサイトのディレクトリに移動し、その後、次のコマンドを実行してプロジェクトフォルダに移動する必要があります。

drush cc all
1
Pankaj Sachdeva

@kenorbが言ったように、drush -vd cc all、それはあなたに詳細に何が起こっているかについての良い考えを与えます。私の場合、それはエラー"mysql command not found"。 mysqlのパスを環境変数に設定することで解決しました。 DrushとMySQLの両方のパスもチェックして、機能するかどうかを確認する必要があると思います。

ありがとう!!

1
Umesh Patil

MAMP Proを実行しているので、この行を~/.bash_profileファイル:

export PATH=$PATH:/Applications/MAMP/Library/bin
0
Scott859

Drushパッケージのconfigure.mdをチェックアウトしてください。プラットフォームに役立つヒントがたくさんあり、MAMPセクションは次のようになります。

Mampの追加構成:

MAMPのユーザーは、コマンドラインインターフェイスで使用するphpとMySQLのバージョンをPATHで手動で指定する必要があります。これは、MAMPアプリケーションの設定で選択されたphpのバージョンとは無関係です。 OS Xで、ホームフォルダーの.bash_profileというファイルを編集します(まだ存在しない場合は作成します)。

PHP 5.3.xを使用するには、次の行を.bash_profileに追加します。

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.3/bin:$PATH"

PHP 5.4.xを使用する場合は、代わりに次の行を追加します。

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.4/bin:$PATH"

MAMP 3(デフォルトではphp 5.5.14)を使用していて、php 5.5.xを使用したい場合は、代わりに次の行を追加します。

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php5.5.14/bin:$PATH"

MAMP v.1.84以下の場合、この設定は両方のバージョンのPHPで機能します。

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:$PATH"

これを実行しても、PDO :: __ constructから「そのようなファイルまたはディレクトリはありません」というエラーが引き続き表示される場合は、次を試してください。

bash Sudo mkdir /var/mysql Sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

さらに、drushを正常に使用するには、php.ini設定を調整する必要がある場合があります。続行方法の詳細については、以下のPHP.INIの設定を参照してください。

0
Cameron