pcf(pivotal cloud foundry)にphpのコードをデプロイする方法を説明します。
使用するbuildpackについて
phpのコードをデプロイする場合、manifest.ymlに記述するbuildpackはphp_buildpackを指定します。
このbuildpackについてはドキュメントに詳細が書かれています。
設定ファイルの配置場所
Apacheやphpの設定ファイルは、すべて./bp-config以下に配置します。
Linuxのサーバーにデプロイする場合などは、Apacheを使うかNginxを使うか選んで自分でインストールしますが、pcfの場合は、Apacheを使う場合は.bp-config以下にhttpdディレクトリを、Nginxを使う場合はnginxディレクトリを配置します。
これだけで、使うWebサーバーの種類を決められます。
Apacheの設定
Apacheを使う場合は.bp-config/httpd以下にhttpd.confを作成し、以下のように記述します。
ServerRoot "${HOME}/httpd"
Listen ${PORT}
ServerAdmin "${HTTPD_SERVER_ADMIN}"
ServerName "0.0.0.0"
DocumentRoot "${HOME}/#{WEBDIR}"
Include conf/extra/httpd-modules.conf
Include conf/extra/httpd-directories.conf
Include conf/extra/httpd-mime.conf
Include conf/extra/httpd-logging.conf
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-remoteip.conf
Include conf/extra/httpd-php.conf
confファイルをIncludeしていますが、この内容はGitHubで見ることができます。
書き換えたい場合は、.bp-config/httpd/extra/以下に同一の名前のファイルを作成して内容を記述します。
このディレクトリに新規にファイルを追加し、httpd.confでInclude文を追加して読み込むように設定することも可能です。
phpの設定
phpの設定ファイルはbp-config/php/以下に配置します。
pcfを使う場合、php.iniは配置しません。デフォルトのものが使われます。
追加で設定をしたい場合は、bp-config/php/php.ini.d以下に拡張子がiniのファイルを配置し、そこに記述します。ファイル名は何でも構いません。
拡張モジュールもiniファイルに記述します。
php-fpmに関して追加で設定をしたい場合は、bp-config/php/fpm.d以下に拡張子がconfのファイルを配置し、そこに記述します。
php.iniおよびphp-fpm.confをプロジェクトに含めてしまうこともできますが、上書きする分だけプロジェクトに含めるのが推奨のようです。