※このブログは2018年7月時点の情報に基づいて作成されているため、現在の状況と異なる可能性がございます。
こんにちは id:dhigashi です。
前回に引き続いて Oracle Cloud 上で Mautic を稼動させていきます。
前回は Oracle MySQL Cloud Service を利用し MySQL サーバを構築しました。
今回は Oracle Application Container Cloud Service を利用し PHP アプリケーションをデプロイします。
Mautic
https://www.mautic.org/download/ からアプリケーションを取得し展開します。
$ cd mautic/2.13.1/ $ ls -1 LICENSE.txt app critical_migrations.txt favicon.ico index.php media offline.php plugins robots.txt themes translations upgrade.php vendor
チュートリアル 及び メタデータ・ファイルの作成 に従い manifest.json を作成します。
尚、起動コマンドの選択 にある通り、manifest.json で起動コマンドを指定しなければ PHP アプリケーションでは index.php (/html) が参照されるため今回は指定する必要はありません。
{ "runtime":{ "majorVersion":"7.1" }, "release": {}, "notes": "Hello World PHP application" }
manifest.json を index.php と同じ階層に配置し、再度アーカイブ化します。
Application Container の作成
Oracle Application Container Cloud Service を使用すると、Java SE、Java EE、Node.js、PHP、Python、Ruby、Go、および .NET アプリケーション を Oracle Cloud にデプロイできます。
他の Oracle Cloud サービスとの統合も選択でき、今回は Oracle MySQL Cloud Service を使用しデータを格納します。

Application Container のサービスページからアプリケーションを作成します。

Mautic は PHP アプリケーションの為、PHP を選択します。

アプリケーションの設定で、アプリケーション名やコンテナ数などを指定します。
Application には先に作成したアーカイブファイルを、Region には MySQL サーバと同じリージョンを指定しています。

暫く待つとアプリケーションが作成されます。
但し、このままでは前回作成した MySQL サーバを利用できない為、設定を行います。

サービス・バインディング を利用し Application Container Cloud Service から MySQL Cloud Service への接続を有効にします。

Service Type に Oracle MySQL Cloud Service を指定すると、Service Name に利用可能な MySQL サーバが表示されるので選択します。
今回は、前回作成した MySQL サーバ mauticdb を選択します。

サービス・バインディングにOracle MySQL Cloud Service が追加されました。
また、同時に環境変数に MYSQLCS_ から始まる変数が追加され、MySQL サーバの IP アドレスやポート、(今回は指定していませんが) ユーザ名、パスワードをアプリケーションが環境変数から取得することができます。
これは Twelve-Factor App の「Config」を実現するものと思います。
サービス・バインディングによるサービスの統合が完了したので、アプリケーションにアクセスし設定を行います。

URL で示されている url にアクセスすると、無事に起動できているようです。

データベースの設定で MySQL サーバへの接続情報を指定します。

その他アカウントの設定等を行い、Mautic が稼動する事を確認しました。
まとめ
MAツール「Mautic」を Oracle Application Container Cloud Service と Oracle MySQL Cloud Service を利用して構築してみました。
Oracle MySQL Cloud Service によって MySQL サーバを、Oracle Application Container Cloud Service によってサーバを意識しない実行環境をそれぞれ簡単に作成でき、統合も数ステップでできる事が分かりました。
また、今回は Oracle MySQL Cloud Service と Oracle Application Container Cloud Service を別々に作成しましたが、Oracle Cloud Stack Manager を使用するとそれぞれを単一のステップで構築することができます。
そちらの手順も今後ご紹介できればと思います。