👌

Acquia Cloud Platformローカル開発環境のセットアップ方法

2023/04/04に公開

はじめに

おはようございます、加藤です。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トークンは下記の手順で作成できます。

  1. Acquia Cloud Platformにログイン
  2. 右上のアカウント名をクリックしAccount Settingをクリック
  3. 左側のメニューからAPI Tokensをクリック
  4. 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ユーザーで設定したパスワードを使いログインできれば完了です。

東急URBAN HACKS

Discussion