web-dev-qa-db-ja.com

Drush CCすべてが「No Drupalサイトが見つかりました、「drush」キャッシュのみがクリアされました」を返します」

他の解決策を試しましたが、どれも私のセットアップに固有のものではありません。最近のWindows 10の更新で紹介されている新しいLinuxサブシステムを使い始めました。私はWAMP x64 v3.0.6を使用しており、自分のWebサイトを正常に複製して稼働させました。 Linuxサブシステムのルートで、 Drupal webapage の指示に従って、DrushをComposerとともにグローバルにインストールしました。

drush statusと入力すると、デフォルトのディレクトリで実行すると次が返されます。

Drupal version         :  7.50
 Site URI               :  http://default
 Database driver        :  mysql
 Database hostname      :  localhost
 Database port          :
 Database username      :  root
 Database name          :  aerosphere
 PHP executable         :  /usr/bin/php
 PHP configuration      :  /etc/php5/cli/php.ini
 PHP OS                 :  Linux
 Drush script           :  /home/bob/.composer/vendor/drush/drush/drush.php
 Drush version          :  7.1.0
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :
 Drupal root            :  /mnt/c/wamp64/www/drupal-7.50
 Site path              :  sites/default

しかし、タイトルで述べたように、drush cc allNo Drupal site found, only 'drush' cache was cleared.[warning]を返します。これは、.bashrcへのパスの追加に関係していると思いますが、何を追加するかわかりません。ヒントがあれば大歓迎です!

私の質問は「 Drush-いいえDrupalキャッシュをクリアするときにサイトが見つかりました "とは異なり、MacでMAMPを使用していて、WAMPを使用していますWindowsこの投稿で提供されている解決策を試しましたが、問題は解決していません。

mysqlコマンドを実行すると、MySQLに接続するときに明らかに問題が発生します。

プログラム「mysql」は次のパッケージにあります。* mysql-client-core-5.5 * mariadb-client-core-5.5 * mysql-client-core-5.6 * percona-xtradb-cluster-client-5.5

試してみてください:Sudo apt-get install。

そこで、これらの行を.bashrcファイルに追加しました。

PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH="/mnt/c/wamp64/mysql/mysql5.7.14/bin:$PATH"

Drushを動作させるために一番上の行が追加されました。複数回確認しましたが、パスは正しく設定されていますが、まだ機能しません。

7
Kellen

Drushのデバッグに役立つことがいくつかあります。ここであなたが試すことができるものです:

デバッグ出力

使用する drush cc all -vvv

これは、Drushがバックグラウンドで実行していることに関していくつかの貴重な情報を提供し、おそらく実際のエラーメッセージを表示します。

settings.phpを確認してください

設定によっては、データベース設定などの環境変数をsettings.phpファイルに渡す場合があります。あるいは、memcacheを提供することもできます。 Drushは、Apacheをバイパスしているため、残念ながらこれらを取得しません。したがって、環境変数を使用せずにテストを実行して、問題が解決するかどうか、または問題の絞り込みに役立つかどうかを確認します。デバッグの目的で、example.settings.phpからのクリーンなコピーを使用し、データベースアレイを変更してこれをテストするだけの価値がある場合があります。

mysqlクライアントが使用可能であることを確認してください

これは少し前に私をつまずかせたものであり、drush -vvvは正しい方向を示します。 db.settings.phpを読み取ることができる場合、それはdb設定を取得するときにできるように見えますが、おそらくmysqlデータベースに接続できません。私が抱えていた問題の1つは、mysqlクライアントコマンドが使用できないことでした。例えば。 「mysql」を呼び出して、それが機能するかどうかを確認してください。それを修正した後、うまくいきました。私のMampセットアップでは、実行可能ファイルへの正しいパスがシェルの$ PATHにあることを確認するだけの問題でした。

これがお役に立てば幸いです。

12

あなたのdrush status出力doesが有効なrootsite pathdatabase user、およびdatabase nameを与えることに注意してください。資格情報が含まれている有効なsettings.phpファイルを見つけて、読み取ることができます。

ただし、drush statusには行がありません

Drupal bootstrap                :  Successful

これは、実際にロードできることを示します。

走れば

drush sql-cli

それはデータベースへのmysqlクライアント接続を生成しようとします、そしてそれはおそらく何が起こっているかについてより読みやすいエラーを生成します。

また、drush sql-connectには接続情報が表示されます(パスワードを含むため、貼り付けには注意してください)。

5
eporama

これは通常、drushを呼び出すディレクトリがDrupalサイトでないか、Drupalサイトのサブディレクトリでないか、 Drushがあなたのサイトを認識できないかもしれません。

  • 単一サイト Drupalインストールで作業している場合は、sites/default/settings.phpが存在することを確認してください。
  • multiple-site Drupalインストールで作業している場合は、以下を確認してください:
    • sites/example.com/settings.phpにサイトの設定ファイルがあります。ここで、example.comは通常、サイトのドメインです。
    • コマンドdrush use example.comを実行して、現在作業したいサイトに移動します。

それが役に立てば幸い。幸せなコーディング!

5
Jigarius

DrushがDrupalインストールを見つけられない場合、Drupalサイトが見つかりませんというエラーが表示されます。以下に示すように、Drupalインストールへのパスを指定できます。

drush -r path/to/docroot cc all
3
Safallia Milins

これが発生する可能性のある特定のケースは、まったく同じコアステータスレポートで、passwordエントリのみで~/.my.cnfがセットアップされ、一致するuserおよびデータベース接続がない場合です。 settings.phpには、別のユーザー(およびパスワード)が設定されています。 mysqlエラーログは、Drushを実行するたびに次のようになります。

2018-06-29T08:49:30.926226Z 1046 [Note] Access denied for user 'user'@'localhost' (using password: YES)

つまりDrush/Drupalブートストラップ中にデータベース接続が失敗します。私の場合、これはDrush 8.xで発生します。他のバージョンは調査していません。 Drushは~/.my.cnfが提供する値の代わりにsettings.phpを使用しているようです

解決

~/.my.cnfuserエントリを追加するか、passwordエントリを削除します。

[client]
user = your_mysql_username
password = your_mysql_pass
2
Kåre Slettnes

Windowsでdrupalを実行し、LinuxのWindowsサブシステムでdrushを使用するときにも同じ問題がありました。 jnpWebDeveloperの回答 で解決できました。これらは、行う:

  1. mysqlがサブシステムにありません。 Sudo apt-get installでインストールする必要があります。 Windowsのmysql実行可能ファイルへのパスを指定しても、パスが正しい場合でもおそらく機能しません。
  2. Localhostを、settings.phpのホスト名として127.0.0.1に置き換える必要があります。そうでない場合、mysqlはローカルソケットを使用してLinuxサブシステム上のmysqlサーバーに接続しようとします。 Windowsで実行されているmysqlサーバーに接続できるようにします。
1
invalid index

シェルからmysqlコマンド(またはdbドライバーによっては他の同等のコマンド)を実行できないことが、DrushがDrupalサイトに接続できない主な問題です。 drush -d sql-connectを実行して、そうであることを確認します。

~/.bashrcに追加された次の行は問題ありません。

export PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH="/mnt/c/wamp64/mysql/mysql5.7.14/bin:$PATH"

ここで、/mnt/c/wamp64/mysql/mysql5.7.14/binmysqlコマンドへのパスです。

シェル起動スクリプトをリロードするには、次を実行します。

~/.bashrc

または再ログインします。これは、Bash Shellでecho $PATHを使用してPATHをエコーすることでも確認できます。

他の同様の問題については、次を確認してください: Drushがインストールされ、実行されている。 URIを指定しても、Drupalサイトが見つかりません

0
kenorb

私の場合、データベースのリードレプリカは、同じ問題を引き起こしていた別のエンドポイントを指しています。 1つを修正するためにコメントまたは変更すると、問題が修正されました。

0

これはEdgeのケースである可能性が高いですが、誰かを助けるために共有します。

私の場合、この問題はMySQLのrootのパスワードを変更することで引き起こされました(サーバーはLinux)。

ファイルがあります、~/.my.cnf、これらの行が含まれています:

[client]
user=root
password=mypassword

これにより、ユーザーの操作を必要とせずにbashスクリプト内でmysqlコマンドを実行できます。 Drushの動作にも影響しているようです。このファイルを更新せずにrootのパスワードを変更すると、drushの問題が発生しました。このファイルを削除したのと同じように、パスワードを更新すると問題が解決しました。

0
millionleaves

うわー!私にとっては、settings.local.phpファイルがローカルで動作しなくなった。

以前はそのようにしましたが、まだ機能しているライブサーバーで実行していました。しかし、ローカルでMAMPを使用するmacOSでこれは間違ったパスを返したため、settings.local.phpファイルは含まれなくなり、Drushはデフォルトのサイトを見つけられなくなりました。

// OLD WAY.
if (file_exists(DRUPAL_ROOT . '/' . conf_path() . '/settings.local.php')) {
  include DRUPAL_ROOT . '/' . conf_path() . '/settings.local.php';
}

コードをDrupal 8および9で使用されているコードに置き換えることで修正し、バックポート用に開いています。 https://www.drupal.org/project/を参照) drupal/issues/111852

// NEW WAY.
$local_settings = dirname(__FILE__) . '/settings.local.php';
if (file_exists($local_settings)) {
  include $local_settings;
}
0
leymannx