他の解決策を試しましたが、どれも私のセットアップに固有のものではありません。最近の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 all
はNo 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を動作させるために一番上の行が追加されました。複数回確認しましたが、パスは正しく設定されていますが、まだ機能しません。
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にあることを確認するだけの問題でした。
これがお役に立てば幸いです。
あなたのdrush status
出力doesが有効なroot
、site path
、database user
、およびdatabase name
を与えることに注意してください。資格情報が含まれている有効なsettings.php
ファイルを見つけて、読み取ることができます。
ただし、drush status
には行がありません
Drupal bootstrap : Successful
これは、実際にロードできることを示します。
走れば
drush sql-cli
それはデータベースへのmysqlクライアント接続を生成しようとします、そしてそれはおそらく何が起こっているかについてより読みやすいエラーを生成します。
また、drush sql-connect
には接続情報が表示されます(パスワードを含むため、貼り付けには注意してください)。
これは通常、drush
を呼び出すディレクトリがDrupalサイトでないか、Drupalサイトのサブディレクトリでないか、 Drushがあなたのサイトを認識できないかもしれません。
sites/default/settings.php
が存在することを確認してください。sites/example.com/settings.php
にサイトの設定ファイルがあります。ここで、example.com
は通常、サイトのドメインです。drush use example.com
を実行して、現在作業したいサイトに移動します。それが役に立てば幸い。幸せなコーディング!
DrushがDrupalインストールを見つけられない場合、Drupalサイトが見つかりませんというエラーが表示されます。以下に示すように、Drupalインストールへのパスを指定できます。
drush -r path/to/docroot cc all
これが発生する可能性のある特定のケースは、まったく同じコアステータスレポートで、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.cnf
にuser
エントリを追加するか、password
エントリを削除します。
[client]
user = your_mysql_username
password = your_mysql_pass
Windowsでdrupalを実行し、LinuxのWindowsサブシステムでdrushを使用するときにも同じ問題がありました。 jnpWebDeveloperの回答 で解決できました。これらは、行う:
シェルから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/bin
はmysql
コマンドへのパスです。
シェル起動スクリプトをリロードするには、次を実行します。
~/.bashrc
または再ログインします。これは、Bash Shellでecho $PATH
を使用してPATHをエコーすることでも確認できます。
他の同様の問題については、次を確認してください: Drushがインストールされ、実行されている。 URIを指定しても、Drupalサイトが見つかりません 。
私の場合、データベースのリードレプリカは、同じ問題を引き起こしていた別のエンドポイントを指しています。 1つを修正するためにコメントまたは変更すると、問題が修正されました。
これはEdgeのケースである可能性が高いですが、誰かを助けるために共有します。
私の場合、この問題はMySQLのrootのパスワードを変更することで引き起こされました(サーバーはLinux)。
ファイルがあります、~/.my.cnf
、これらの行が含まれています:
[client]
user=root
password=mypassword
これにより、ユーザーの操作を必要とせずにbashスクリプト内でmysqlコマンドを実行できます。 Drushの動作にも影響しているようです。このファイルを更新せずにrootのパスワードを変更すると、drushの問題が発生しました。このファイルを削除したのと同じように、パスワードを更新すると問題が解決しました。
うわー!私にとっては、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;
}