はじめに
Apigee Edgeを使ったときにローカル上でDrupalベースのApigeeポータルを構築する必要があったのでその備忘録。
前提
下記内容が必要になる。
- php
- Composerのため
- Composer
- パッケージライブラリ管理
- MAMP
- サーバ用
方法
PHP
https://www.php.net/downloads からダウンロード。
Thread Safe版をダウンロードすること。好きな場所に解凍。
Composer
https://getcomposer.org/doc/00-intro.md#installation-windows からインストーラをダウンロード。
インストーラでは先ほど解凍したPHPを指定。PATHが通っていない場合は Add this PHP to your path? チェックボックスが出てくるのでチェックを入れる。

iniファイルがない場合はエラーになるが、Create a php.ini file にチェックを入れて進めればOK。

MAMP
↓からダウンロード。MAMP PROやApple Bonjourは必要ない。
https://www.mamp.info/en/downloads/
スタートページからphpMyAdminページへ行き、データベースを作っておく(後で使う)。名前は何でもいい。

また、SSL認証エラー回避のため、https://curl.se/docs/caextract.html から cacert.pem をダウンロードして、MAMPの conf フォルダ内にある使用しているPHPバージョンの php.ini で curl.cainfo = ${cacert.pemの置き場所} を指定する。
Drupalからkickstartのテンプレートインストール
https://www.drupal.org/docs/contributed-modules/apigee-developer-portal-kickstart/get-started-with-kickstart に沿ってDrupal9を入れる。次のコマンドを作成したいフォルダで実行。
$ composer create-project apigee/devportal-kickstart-project:9.x-dev MY_PROJECT --no-interaction
php.ini をComposerインストールの際に自動生成するとここで以下のようにエラーになることがある。

この場合はエラー文より gd 拡張を有効にすればいいので php.ini の extension=gd2 のコメントアウトを外してもう一度上記コマンドを実行する。
インストールに成功すると下の画像のようになるため次に進む。

MAMPでサイトを立ち上げてApigee Edgeをインストール
そのままMAMPを起動してもデフォルトのhtdocsを使ってしまうのでPreferenceからwebを指定。

localhost へアクセスすると下の画面になる。設定が足りないのか日本語で進めようとすると私は通信エラーになったため英語で進める。

Requirements Review ではPHPのWarningが出るが、特に気にせず進める。
Database configuration ではMAMPインストール時に作成したデータベースを指定する。MAMPを使っていればユーザネームもパスワードもroot。
Configure Apigee Edge ではようやくApigee Edgeの認証情報を入力する。すると下のようなエラーが出る。

その場合は MY_PROJECT/web/sites/default/settings.php の Private file path のコメントアウトを外し、認証情報を置いてよい任意のフォルダを以下のように記載する。また、MAMPのところに記載したpem設定をしていないとここでSSL証明書エラーも発生する。
$settings['file_private_path'] = '${任意のフォルダ}';
ここまでやれば下のように、無事にApigee Edgeへ接続できる。

Configure Site ではサイト情報を入力すると、下記のようなエラーが発生する。

この場合は MY_PROJECT/web/profiles/contrib/apigee_devportal_kickstart/apigee_devlportal_kickstart.profile 内の ContactForm::load('feedback') を ContactForm::load('personal') に変更する。
あとはそのまま進めて終わり。