Acquia Cloud Platformローカル開発環境のセットアップ方法
はじめに
おはようございます、加藤です。Acquia Cloud Platform向けにDrupal10の環境の構築方法を紹介します。
使用するツール類
- Lando: 特定のユースケースに特化したローカル開発環境の提供ツールです、バックエンドとしてDockerを使用します。
- Docker Desktop: コンテナの管理を行います、今回はLando経由で使用するので直接操作することはありません。
- Acquia CLI: Acquia Cloud Platformを操作するCLIツールです。
プロジェクトの初期設定
まず、Landoをインストールします。Docker Desktopをインストールしていない場合は事前にインストールしておきましょう。
brew install lando
プロジェクトの作業ディレクトリを作成します。
WORK_DIR=任意のディレクトリパス・名
mkdir -p $WORK_DIR
cd $WORK_DIR
Landoのプロジェクトを作成します。
lando init --source cwd --recipe acquia
実行するとインタラクティブなプロンプトが表示されます。以下のように入力してください。
? Select an Acquia Cloud Platform API token
Acquia Cloud PlatformのAPIトークンを入力します。APIトークンは下記の手順で作成できます。
- Acquia Cloud Platformにログイン
- 右上のアカウント名をクリックしAccount Settingをクリック
- 左側のメニューからAPI Tokensをクリック
- Create Tokenをクリック
こちらのリンクから直接飛ぶこともできます。https://cloud.acquia.com/a/profile/tokens
? Which site?
使用するサイト(=アプリケーション)を選択します。アプリケーションが1つだけの場合はこの質問は表示されません。
最後に作成した環境を起動します。
lando start
これでPHPがインストールされたアプリケーションサーバーとデータベースサーバーが起動します。合わせてinbox、cacheというサーバーも起動しますが、これらは今回は使用しません。
DrupalをAcquia CMSディストリビューションでインストール
実行環境が用意できたのでDrupalをインストールします。インストールにはAcquia CLIを使用します。
Landoを使用している場合はlando acli
コマンドを使うことで、ホストOSから直接アプリケーションサーバーにログインせずにコマンドを実行できます。
lando acli new tmp && cp -r tmp/. . && rm -rf tmp
続いてDrupalのセットアップを行います。DrupalはピュアなDrupalをセットアップする方法とディストリビューションを使ってセットアップする方法があります。今回はディストリビューションを使ってセットアップします。
ディストリビューションはAcquia CMSを選択しました。このディストリビューションはコミュニティエディションが存在しAcquia Cloud Platformを使わない場合を使用できます。
インストールはアプリケーションサーバー上で行う必要があるのでlando ssh
コマンドでコンテナ内に入って作業を行います。
lando ssh
./vendor/bin/acms acms:install
# Please choose bundle from one of the above use case [acquia_cms_enterprise_low_code]: acquia_cms_community
# Do you want to enable demo content (yes/no) ? [no]: yes
# Would you like to enable the Acquia DAM modules (configuration will need to be done manually later after site installation) ? [no]: no
# Please provide the Google Maps API Key: [空のままEnter]
# Database name [drupal]: acquia
# Database driver [mysql]: mysql
# Database username [drupal]: acquia
# Database password [drupal]: acquia
# Database host [127.0.0.1]: database
# Database port [3306]: 3306
# Do you want to continue? (yes/no) [yes]: yes
exit
Acquia Cloud Platform上でのDB接続の設定
先ほどローカル上でのDB接続設定をしましたがAcquia Cloud Platform上での設定が定義されていません。
設定ファイルが存在する場合は(=クラウドにデプロイされた状態なら)インポートするようにします。
docroot/sites/default/settings.php
を編集します。
if (file_exists('/var/www/site-php')) {
require '/var/www/site-php/YOUR_APP_NAME/YOUR_APP_NAME-settings.inc';
}
上記を$databases['default']['default'] = array (
と$settings['config_sync_directory']
の間に記述します。(https://acquia.my.site.com/s/article/360059467034-You-have-set-the-path-for-config-directory-and-it-is-not-being-set-correctly)
記述する内容はAcquia Cloud Platformにログインし環境内のDB設定のPHPタブ設定を参考に設定しています。YOUR_APP_NAMEはそこで確認してください。
管理者ユーザーのパスワード設定
セットアップをした際に管理者ユーザーのパスワードが設定されますが、大量のログの中に埋もれてしまい探すのが面倒です。なので下記のコマンドでパスワードを変更します。
lando drush user:password admin $YOUR_PASSWORD
Drupalへアクセスする
lando info
を実行するとLandoが実行しているコンテナなどの情報が表示されます。
urls
はappserverのURLです。このURLにブラウザからアクセスするとDrupalのインストール画面が表示されます。複数表示されますが接続プロトコルおよびIPアドレスかドメイン名かの違いなのでどれか1つを選んでアクセスしてください。
adminユーザーで設定したパスワードを使いログインできれば完了です。
Discussion