12.2. PHP

12.2.1. 詳細

rhscl/php-73-rhel7 イメージは、アプリケーションをビルドして実行する PHP 7.3 プラットフォームを提供します。npm を使用する Node.js は、PHP イメージに事前インストールされます。

12.2.2. アクセス

rhscl/php-73-rhel7 イメージをプルするには、root で以下のコマンドを実行します。

# podman pull registry.redhat.io/rhscl/php-73-rhel7

12.2.3. 設定

環境変数を設定するには、ソースコードリポジトリー内の .s2i/environment ファイルにキーと値のペアとして配置します。

以下の環境変数は、php.ini ファイルに同等のプロパティー値を設定します。

変数名説明デフォルト

ERROR_REPORTING

PHP が、アクションを実行するエラー、警告、および通知を PHP に通知します。

E_ALL & ~E_NOTICE

DISPLAY_ERRORS

PHP がエラー、通知、および arning を出力するかどうか、および場所を制御します。

ON

DISPLAY_STARTUP_ERRORS

表示エラーとは別に処理するために PHP の起動シーケンス中に発生する表示エラーの原因

OFF

TRACK_ERRORS

最後のエラー/警告メッセージを $php_errormsg (ブール値) に保存します。

OFF

HTML_ERRORS

エラーに関連するドキュメントへのリンクエラー

ON

INCLUDE_PATH

PHP ソースファイルのパス

.:/opt/app-root/src:/opt/rh/rh-php73/root/usr/share/pear

PHP_MEMORY_LIMIT

メモリー制限

128M

SESSION_NAME

セッション名

PHPSESSID

SESSION_HANDLER

セッションの保存方法

files

SESSION_PATH

セッションデータファイルの場所

/tmp/sessions

SESSION_COOKIE_DOMAIN

Cookie が有効であるドメイン

 

SESSION_COOKIE_HTTPONLY

httpOnly フラグをクッキーに追加するかどうか

0

SESSION_COOKIE_SECURE

Cookie をセキュアな接続でのみ送信すべきかどうかを指定します。

OFF

SHORT_OPEN_TAG

<? タグと ?> タグ間のコードが PHP によって認識されるかどうかを決定します。

OFF

DOCUMENTROOT

アプリケーションの DocumentRoot を定義するパス (例: /public)

/

必要に応じて、rh-php7* Software Collection のバージョンを置き換えます。

以下の環境変数は、opcache.ini ファイルに同等のプロパティー値を設定します。

変数名説明デフォルト

OPCACHE_MEMORY_CONSUMPTION

OPcache 共有メモリーストレージサイズ (メガバイト単位)

128

OPCACHE_REVALIDATE_FREQ

更新のスクリプトタイムスタンプをチェックする頻度 (秒単位)。0 を指定すると、すべてのリクエストの更新が OPcache チェックされます。

2

OPCACHE_MAX_FILES

OPcache ハッシュテーブルの鍵の最大数 (スクリプト)。200 から 1000000 までの数字のみが許可されます。

4000

以下を設定して、PHP 設定の読み込みに使用されるディレクトリー全体を上書きすることもできます。

変数名説明

PHPRC

php.ini ファイルへのパスを設定します。

PHP_INI_SCAN_DIR

追加の ini 設定ファイルをスキャンするパス

Apache MPM のプレフォーク 設定を上書きして、PHP アプリケーションのパフォーマンスを向上させることができます。Cgroup の制限を設定すると、イメージは最適な値を自動的に設定しようとします。値を独自に指定すると、いつでも上書きできます。

変数名説明デフォルト

HTTPD_START_SERVERS

StartServers ディレクティブは、起動時に作成された子サーバープロセスの数を設定します。

8

HTTPD_MAX_REQUEST_WORKERS

MaxRequestWorkers ディレクティブは、サービスされる同時リクエストの数に制限を設定します。

256 (これは、TOTAL_MEMORY / 15MB 式を使用してコンテナーに Cgroup 制限を設定するすることで自動的に調整されます)15MB は、1 つの httpd プロセスの平均サイズです。

カスタムの composer リポジトリーミラー URL を使用して、デフォルトの packagist.org の代わりにパッケージをダウンロードできます。

変数名詳細

COMPOSER_MIRROR

カスタムの composer リポジトリーミラー URL を composer 設定に追加します。注記: これは、composer.json に記載されているパッケージにのみ影響します。

COMPOSER_INSTALLER

https://getcomposer.org/installer の Composer をダウンロードするためのデフォルトの URL を上書きします。非接続環境で役に立ちます。

COMPOSER_ARGS

composer install コマンドラインに引数を追加します (例: --no-dev)。

アプリケーションの DocumentRoot がソースディレクトリー /opt/app-root/src 内の入れ子になっている場合、ユーザーは独自の .htaccess ファイルを提供できます。これにより、Apache の動作のオーバーライドが可能になり、アプリケーションリクエストの処理方法を指定できます。.htaccess ファイルは、アプリケーションソースの root に置く必要があります。.htaccess の詳細は Apache HTTP Server Tutorial を参照してください。

12.2.4. イメージの拡張

PHP イメージは、source-to-image を使用して拡張できます。

たとえば、~/image-configuration/ ディレクトリーの設定を使用してカスタマイズされた PHP イメージ my-php-rhel7 を構築するには、以下のコマンドを実行します。

$ s2i build ~/image-configuration/ rhscl/php-73-rhel7 my-php-rhel7

ソースイメージのバージョンを適宜変更してください。

アプリケーションの構造は以下の例のようになります。

ディレクトリー名詳細

./httpd-cfg

追加の Apache 設定ファイル (*.conf) を含めることができます。

./httpd-ssl

独自の SSL 証明書 (certs/ サブディレクトリー内) とキー (private/ サブディレクトリー) を含めることができます。

./php-pre-start

httpd の起動前にソースとなるシェルスクリプト (*.sh) を含めることができます。

./php-post-assemble

assemble スクリプトの末尾で読み込まれるシェルスクリプト (*.sh) を含めることができます。

./

アプリケーションのソースコード