2.6. PHP


2.6.1. 概要

OpenShift Online には 、PHP アプリケーションのビルドおよび実行用に S2I が有効な PHP イメージが含まれています。PHP S2I ビルダーイメージは、必要な依存関係を使用してアプリケーションソースを組み立てて、PHP アプリケーションを含む新規イメージを作成します。結果として生成されるイメージは、OpenShift Online または Docker のいずれかで実行できます。

2.6.2. バージョン

現時点で、OpenShift Online では、PHP のバージョン 5.55.6、および 7.0 を提供しています。

2.6.3. イメージ

RHEL 7 イメージは、Red Hat レジストリーから入手できます。

$ docker pull registry.access.redhat.com/openshift3/php-55-rhel7
$ docker pull registry.access.redhat.com/rhscl/php-56-rhel7
$ docker pull registry.access.redhat.com/rhscl/php-70-rhel7

このイメージは、php イメージストリームで使用することができます。

2.6.4. ビルドプロセス

S2I は、ソースコードをコンテナーに挿入し、コンテナーにソースコードの実行を準備をさせることで、実行準備が整ったイメージを生成します。S2I では、以下の手順を実行します。

  1. ビルダーイメージからコンテナーを起動します。
  2. アプリケーションソースをダウンロードします。
  3. ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
  4. (ビルダーイメージから) assemble スクリプトを実行します。
  5. 最終的なイメージを保存します。

ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。

2.6.5. 設定

PHP イメージは数多くの環境変数を複数サポートし、環境変数を設定することで PHP のラインタイムの設定や動作を制御できます。

イメージの一部としてこれらの環境変数を設定するには、ソースコードリポジトリーの中にある .s2i/environment ファイル に配置するか、ビルド設定の sourceStrategy 定義の環境セクションに定義します。

また、新規アプリケーションの作成時に既存のイメージを使用するか、デプロイメント設定などの既存のオブジェクトの環境変数を更新して環境変数を設定できます。

注記

ビルドの動作を制御する環境変数は、s2i ビルド設定または .s2i/environment ファイルの一部として設定して、ビルドの手順で利用できるようにする必要があります。

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

表2.5 PHP 環境変数
変数名説明デフォルト

ERROR_REPORTING

PHP で対応する必要のあるエラー、警告、注意を PHP に通知します。

E_ALL & ~E_NOTICE

DISPLAY_ERRORS

PHP がエラー、注意、警告を出力するかどうか、さらに出力先を制御します。

ON

DISPLAY_STARTUP_ERRORS

PHP の起動シーケンス時に発生した表示エラーを通常の表示エラーとは別に処理するようにします。

OFF

TRACK_ERRORS

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

OFF

HTML_ERRORS

対象のエラーに関連するドキュメントにエラーをリンクします。

ON

INCLUDE_PATH

PHP ソースファイルへのパス

.:/opt/openshift/src:/opt/rh/php55/root/usr/share/pear

SESSION_PATH

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

/tmp/sessions

DOCUMENTROOT

アプリケーションのドキュメントルートを定義するパス (例: /public)

/

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

表2.6 PHP の他の設定
変数名説明デフォルト

OPCACHE_MEMORY_CONSUMPTION

OPcache 共有メモリーのストレージサイズ

16M

OPCACHE_REVALIDATE_FREQ

更新のスクリプトタイムスタンプをどの頻度で確認するかを秒単位で指定します。0 に指定すると、OPcache はすべての要求の更新を確認します。

2

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

表2.7 PHP の他の設定
変数名説明

PHPRC

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

PHP_INI_SCAN_DIR

追加の .ini 設定ファイル

デフォルトの 'packagist.org' ではなく、カスタムの Composer リポジトリーのミラー URL を使用して、パッケージをダウンロードできます。

表2.8 Composer 環境変数
変数名説明COMPOSER_MIRROR

2.6.5.1. Apache 設定

アプリケーションの DocumentRoot がソースディレクトリーの /opt/openshift/src にネストされている場合には、独自の .htaccess ファイルで、デフォルトの Apache の動作を置き換え、アプリケーションの要求の処理方法を指定することができます。.htaccess ファイルは、アプリケーションソースのルートに配置する必要があります。

2.6.6. ログへのアクセス

アクセスログは、標準出力にストリーミングされるので、oc logs コマンドを使用して表示可能です。エラーログは /tmp/error_log ファイルに保存されているので、コンテナーにアクセスする oc rsh コマンドを使用して表示できます。

2.6.7. ホットデプロイ

ホットデプロイでは、新しい S2I ビルドを生成する必要なしに、アプリケーションに変更をすばやく加え、デプロイすることができます。アプリケーションのソースコードに加えられた変更を即座に検出するには、環境変数を OPCACHE_REVALIDATE_FREQ=0 に指定してビルドイメージを実行する必要があります。

たとえば、oc new-app コマンドを参照してください。oc env コマンドを使用して、既存オブジェクトの環境変数を更新できます。

警告

このオプションは、開発またはデバッグの時にだけ使用するようにしてください。 実稼働環境でこの設定をオンにすることは推奨しません。

実行中の Pod でソースコードを変更するには、oc rsh コマンドを使用して、コンテナーに入ります。

$ oc rsh <pod_id>

実行中のコンテナーに入った後に、現在のディレクトリーを、ソースコードが配置されている /opt/app-root/src に設定します。

2.6.8. PHP テンプレート

OpenShift Online には、サンプル CakePHP アプリケーションまたは サンプル Laravel アプリケーションをデプロイするためのサンプルテンプレートが含まれます。各テンプレートは、ストレージの永続ボリュームを使用して MySQL データベースを含む PHP 7.0 のサンプルアプリケーションをビルドし、デプロイします。

サンプル CakePHP アプリケーションは、以下のコマンドで rhscl/php-70-rhel7 イメージを使用してビルドし、デプロイできます。

$ oc new-app --template=cakephp-mysql-persistent

サンプル Laravel アプリケーションは、以下のコマンドで rhscl/php-70-rhel7 イメージを使用してビルドし、デプロイできます。

$ oc new-app --template=laravel-mysql-persistent
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.