web-dev-qa-db-ja.com

Acquia Dev Desktopに移行した後、Drushが機能しない

Acquia Dev Desktopをインストールしました。ほとんどのものは機能しますが、drushは機能しません。エラーが表示されます。DrushがDrupalデータベースを起動(ブートストラップ)できませんでした。

以前にローカルにphpとmysqlをインストールしていたため、それらの古いバージョンを削除し、〜/ .bash_profileを調整して、php、mysql、drushのAcquia Dev Desktopバージョンを確実にロードしました。テストするために、「which php」、「which mysql」、および「which drush」を実行して、すべてAcquia Dev Desktopバージョンを返しました。

Mysqlをテストするには、my drupal site directoryから "mysql"でmysql cliを入力しました。 "show databases"を実行して、このMysqlサーバーにAcquia Dev Desktop Databaseがあることを確認しました。

Phpをテストするには、my drupal site directoryから、「php -r 'phpinfo();'」を実行しました。PHP version/configがロードされていることを確認しましたAcquia Dev Desktopバージョンです。

Drushで〜/ .acquia/DevDesktop/Drush/Aliases/aliases.drushrc.phpでエイリアスを探しますが、そのファイルを調べて、loc.mysite.devとして構成されたエイリアスを確認しました。そのエイリアスを使用して、drushコマンドを試しました。 "drush @ loc.mysite.dev status"。これは違いがありませんでした。

私のdrupalインストールはマルチサイトのようにセットアップされています。マルチサイトを常に使用していて、この同じサイトに問題はなく、浮浪者の箱に(Acquia Dev Desktopを使用せずに)急いでいますが、おそらくそれは問題です。私は私の設定ファイル(sites/mysite.org/settings.php)があるサイトディレクトリ(sites/mysite.org)から自分のDrushコマンドを実行しています。

これは、いくつかのドラッシュデバッグ出力です。これは、Acquia Dev Desktopをインストールした後の問題です https://Gist.github.com/maestrojed/78ff27cfae1f65821ce8 これは、Acquia Dev Desktopをインストールした後の問題で、drushを取得しようとしましたDrushとPHPの正しいAcquia Dev Desktopバージョンを使用します。 https://Gist.github.com/maestrojed/45c1635f5d1d88d4bd9e

私はAcquia Dev Desktopを使用する必要があり、ドラッシュなしでは生活できないと思います。デバッグに役立つその他の情報を提供させていただきます。ヒントは大歓迎です!ありがとう。 -詳しくは次をご覧ください https://forums.acquia.com/acquia-products-and-services/dev-desktop/cant-get-drush-work#sthash.bZJBgcc0.dpuf

2
maestrojed

AcquiaおよびAcquia Dev Desktopを使用する場合、settings.phpはAcquiaによって自動生成されます。そのsettings.phpファイルを確認すると、データベース資格情報がないことに気づくでしょうが、代わりにAcquia構成ファイルが条件付きで含まれています。その条件とファイルは次のとおりです。

// <DDSETTINGS>
// Please don't edit anything between <DDSETTINGS> tags.
// This section is autogenerated by Acquia Dev Desktop.
if (isset($_SERVER['DEVDESKTOP_DRUPAL_SETTINGS_DIR']) && file_exists($_SERVER['DEVDESKTOP_DRUPAL_SETTINGS_DIR'] . '/cld_devcloud_mysite_dev_mysite_org.inc')) {
  require $_SERVER['DEVDESKTOP_DRUPAL_SETTINGS_DIR'] . '/cld_devcloud_mysite_dev_mysite_org.inc';
}
// </DDSETTINGS>

このインクルードファイルには、データベース接続情報が含まれています。 Drushにはこのファイルが含まれていないようです。 Drushで実行すると条件が満たされないためだと思います。

ローカルファイルが存在する場合はそれを含めるために、settings.phpの下部に独自の追加インクルードを追加しました。

/**
 * Include a local settings file if it exists.
 */
$local_settings = dirname(__FILE__) . '/local.settings.php';
if (file_exists($local_settings)) {
  include $local_settings;
}

Cld_devcloud_mysite_dev_mysite_org.incファイルからこのlocal.settings.phpファイルにまったく同じコンテンツを追加しました。

これで、Drushが機能します。私の条件は満たされています。サイトは引き続きAcquia Dev Desktopでローカルに正常に動作します。

DrushはそれらのAcquiaインクルードをロードする必要があるようですが、この問題を抱えた他の人は多く見られなかったため、ほとんどの人にとってそれは必要です。セットアップの動作が異なる理由がわかりません。

巨人

2
maestrojed

ADDに付属のコンソールを使用-ADDクライアントからコンソールを起動します。そのコンソールを使用すると、すべてが正しくセットアップされます。もちろん、「bash」内ですべてを機能させることもできます(「which」コマンドについて説明しているため、使用していると考えられます)が、ADDを使用するという全体の要点が取り除かれます-すべてがボックスで機能しています。 。

PS!私のGit作業にはGit Bashを使用し、Drush作業にはADD(cmd)コンソールを使用します。その後、私は考える必要はありません;-)

2
hansfn

Maestrojed自身の答えは設定ファイルを識別しており、hansfnはすでにDevDesktop自体を介してターミナルセッションを起動する必要があるかもしれないと指摘しています。

他にできること:

  • まず、drush statusを確認します(正しいデータベース名があるかどうかが表示されます)。
  • --verboseスイッチを使用してDrushコマンドを実行すると、bootstrap status(but beware the bootstrapデバッグメッセージは誤解を招く可能性があります
  • Drushを使用してMySQLコンソールを起動してみてください– drush sqlc
  • Drupal 8 composer setup(recommended))を使用している場合は、付属のバージョンに依存するのではなく、composerで最新バージョンのDrushをインストールしますDevDesktop(composer require drush/drushを実行)。私が持っていた奇妙な状況の1つは、drush updbコマンドが別のデータベースに他のすべてのものに接続し(--verboseオプションを追加してこれを見つけた)、修正されたアップグレードでしたそれ。
  • 〜/ .my.cnfファイルが誤ったユーザー名を強制することに注意してください
1
William Turrell