Webエンジニアのメモ帳

技術的な話を中心に書いています。

【pcf】phpのコードをデプロイする方法

pcf(pivotal cloud foundry)にphpのコードをデプロイする方法を説明します。

使用するbuildpackについて

phpのコードをデプロイする場合、manifest.ymlに記述するbuildpackはphp_buildpackを指定します。

このbuildpackについてはドキュメントに詳細が書かれています。

設定ファイルの配置場所

Apachephpの設定ファイルは、すべて./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をプロジェクトに含めてしまうこともできますが、上書きする分だけプロジェクトに含めるのが推奨のようです。