docs community blog github
Edit

Paketo Buildpacks で PHP アプリケーションをビルドする

This documentation explains how to use the Paketo PHP Buildpack to build applications for several common use-cases. For more in-depth description of the buildpack’s behavior and configuration see the Paketo PHP Buildpack Reference documentation.

サンプルアプリをビルドする

pack コマンドを使って、PHP Paketo Buildpack でサンプルアプリをビルドします。

git clone https://github.com/paketo-buildpacks/samples
cd samples/php/webserver
pack build my-app --buildpack gcr.io/paketo-buildpacks/php \
  --builder paketobuildpacks/builder:full
copy to clipboard
Copied!

アプリケーションの実行方法は README ファイル を参照してください。

注意:PHP Paketo Buildpack は Paketo Full ビルダーが必要です。Full ビルダーにしか含まれないOSのシステムライブラリを使用するからです。

PHP のインストールするバージョンを指定する

PHP Distribution Cloud Native Buildpack では、デプロイするときに使用する PHP のバージョンを、いろいろな方法で変更できます。 例えば、buildpack.ymlcomposer.json で指定できます。 PHP Distribution Cloud Native Buildpack で使用できるバージョンは、 PHP Distribution Cloud Native Buildpack のリリースノート で確認できます。

バージョンを指定する場所の優先順位は buildpack.yml, composer.json の順になっています。

buildpack.yml を使用する

Buildpack でアプリケーションをデプロイするときに使用する PHP のバージョンを buildpack.yml で指定できます。 バージョン番号は semver の形式で記述します。

---
php:
  version: 7.2.*
copy to clipboard
Copied!

composer.json を使用する

composer を使用するアプリケーションでは、composer.jsonrequire フィールドに使用する PHP のバージョンを指定できます。 例えば、v7.1 より新しいバージョンの PHP を使用するときは次のように記述します。

{
  "require": {
    "php": ">=7.1"
  }
}
copy to clipboard
Copied!

If your app has a composer.lock file, the buildpack will use the php version defined there. アプリケーションのルートディレクトリに composer.lock があるときは、そのファイルに指定されたバージョンの PHP を使用します。

Composer を使用する

composer を使用するアプリケーションでは、buildpack.yml で次のような設定ができます。

composer:
  # 使用する composer のバージョン番号を semver の形式で記述します
  version: 1.10.x

  # composer install の引数を記述します
  # default: ["--no-dev"]
  install_options: ["--no-dev"]

  # ベンダーディレクトリ名を指定します。初期値は vendor です
  vendor_directory: vendor

  # composer.json を配置したディレクトリを記述します。初期値はルートディレクトリです
  json_path: composer

  # compose global を実行させるときに指定する引数を記述します
  install_global: ["list", "of", "install", "options"]
copy to clipboard
Copied!

Web サーバーを指定する

PHP Paketo Buildpack では次の3種類の Web サーバーを選択できるようになっています。

  • PHP の組み込み Web サーバー
  • Apache HTTPd
  • Nginx

使用する Web サーバーは buildpack.yml で指定できます。

php:
  # Web サーバーの選択肢(初期値は php-server):php-server, httpd, nginx
  webserver: php-server
copy to clipboard
Copied!

httpdnginx を使用する場合、Buildpack が httpd.confnginx.conf などの適切な設定ファイルを生成します。

それぞれの設定ファイルが使用する設定項目を指定することもできます。

# buildpack.yml
php:
  # アプリケーションコードを配置するディレクトリ名。初期値は htdocs
  webdirectory: htdocs

  # ライブラリコードを配置するディレクトリ名。初期値は lib
  libdirectory: lib

  # 使用する cli スクリプト名。初期値は空
  script:

  # サーバー管理者の電子メール。初期値は admin@localhost
  serveradmin: admin@localhost
copy to clipboard
Copied!

外部化した composer のパッケージ

composer を使用するアプリケーションに正しい vendor ディレクトリがある場合、Buildpack はそこに含まれるパッケージをダウンロードしません。 vendor ディレクトリに配置したパッケージをそのまま使用します。

独自の .ini ファイルを使用する

Buildpack の提供する php.ini とは別に任意の .ini ファイルを使用するときは、アプリケーションのルートディレクトリに作成した .php.ini.d ディレクトリへ配置します。 詳しくは PHP_INI_SCAN_DIR のセクション「変数」を参照してください。

独自の CA 証明書をインストールする

PHP Paketo Buildpack では、ビルド時や実行時のどちらでも、CA 証明書の構成 手順に従って、ユーザーが自分で用意した CA 証明書をコンテナのルートトラストストアへ配置できます。

Buildpack の設定する起動プロセスを変更する

PHP Paketo Buildpack では、Procfiles の導入 手順に従って、アプリケーションのコンテナイメージが起動するプロセスを変更できます。

アプリケーションを起動するときの環境変数を設定する

PHP Paketo Buildpack では、環境変数の構成 手順に従って、アプリケーションのコンテナイメージを実行するときの環境変数を変更できます。

アプリケーションのコンテナイメージにラベルを設定する

PHP Paketo Buildpack では、ラベルの構成 手順に従って、アプリケーションのコンテナイメージにラベルを指定できます。

Edit

Last modified: September 13, 2021