Knowledge Base/日本語のコンテンツとフォーラム/PHPのデプロイ

Engine Yard CloudでPHPを利用する

Keri Meredith
posted this on April 17, 2013, 5:41 PM

更新日: 2013年4月17日

このドキュメントはEngine Yard CloudでPHPを利用する方法について解説します。

Get started with PHP on Engine Yard Cloud

質問やフィードバック

早期アクセス機能について質問やフィードバックがある際はこちらのフォーラムをご利用ください。 早期アクセス機能フィードバックフォーラム.

事前条件

  • この記事では利用者はEngine Yardのアカウントを持っていると想定しています。アカウントをお持ちでない場合はこちらの記事をご覧ください。Engine Yard の登録.
  • アプリケーションをApril 17th stack release (又は、以降のバージョン)にアップグレード する必要があります。この機能を利用する際にはPHPを利用する全てのEngine Yard Cloudの環境がアップデートされていなければなりません。
  • 64 bit only - (optional) 以前からEngine Yardのアカウントを持ち、32ビットのインスタンスを管理している場合はこの設定が必要な場合があります。もしあなたが32ビットのインスタンスをデプロイしていない場合,はこのオプションを我々が設定します。このオプションについてはEngine Yard Supportにお問い合せください。

PHP アプリケーション環境を設定する

重要: 本番環境に変更を適用する前にステージング環境でテストを行う事を推奨します。

アプリケーションをApril 17th stack release (又は、以降のバージョン)にアップグレード する必要があります。

PHPアプリケーションの環境を設定するには

  1. Engine Yard CloudのダッシュボードからAddApplicationButton.pngをクリックします。

  2. PHPアプリケーションを設定する。

    PHPAppConfig.png

    • アプリケーション言語 (Application Language): PHP
    • GitリポジトリURI (Git Repo URI):サンプルの HowTo アプリをクリックするか自分自身のアプリのGit情報を設定します。
    • アプリケーション名 (Application Name): 一意なアプリケーションの名前 (空白を含まない)
    • Webルート (Web Root): デフォルトでは public/ とするのがセキュリティ上は好ましいでしょう。
  3. CreateApplicationButton.pngをクリックする。
  4. アプリケーションの環境を設定する。

    備考: PHPアプリケーションを既存の非PHP環境に追加しないでください。

    • アプリケーション サーバ スタック (App Server Stack): PHP-FPM を利用できます。
    • スタック (Stack): (任意) Engine Yard Gentoo 12.11 早期アクセスを有効にしている場合はstable-v4を選択します。
    • データベース (Database): PostgreSQLかMySQL、No Databaseを選択できます。MySQL5.5を使う場合は Engine Yard Gentoo 12.11 Early Access を有効にしてください。
    • 環境のオプション (Environment Options): その他のオプションについては Create an Environment (英語)をご覧ください。
  5. CreateEnvironmentButton.pngをクリックする。
  6. 設定ページでは必要なインスタンスを選択します。

    単一インスタンスの環境、複数のインスタンスの環境のどちらも選択できます。

  7. BootConfigButton.png をクリックします。
  8. アプリケーションをデプロイします。

PHP 環境変数

それぞれのPHPフレームワークは異なる方法とフォーマットをアプリケーションの設定に採用しています。Engine Yard Cloudはデータベースに関する設定を環境変数としてPHPアプリケーションに提供します。

標準の変数を使うには

  • DB_USER: データベースに接続するユーザ名
  • DB_PASS: データベースに接続するパスワード
  • DB_HOST: マスタデータベースのホスト名
  • DB_NAME: データベース名

これらの変数は下記のようにアクセスできます。例えばデータベースのホスト名を得るには:

$_SERVER["DB_HOST"]

備考: 場合によっては、(例えば、iniファイルをparse_ini_file()を使って解析している場合) 中括弧 (カーリーブレイス)を使います。:

${_SERVER["DB_HOST"]}

カスタムに変数を追加するには

  1. /data/APPNAME/shared/config/env.custom を開きファイル上部のサンプルを見ます。
  2. カスタム変数を追加しファイルを保存します。
  3. アプリケーションの環境のページの Apply をクリックします。

    あなたのカスタム変数は永続化されます。

重要な PHP ファイル

よく利用されるファイルへのアクセス方法は以下の通りです。

設定ファイルへのアクセス

  • PHP config/etc/php/[cgi,cli,fpm]-php5.4/php.ini
  • Extension configs/etc/php/[cgi,cli,fpm]-php5.4/ext-active/*.ini
  • PHP-FPM global config/etc/php-fpm.conf
  • PHP-FPM pool config (per app)/data/REPLACE_WITH_APPNAME/shared/config/fpm-pool.conf

ログファイルへのアクセス

  • PHP error log: 下記の設定に応じて Syslog が処理します。 E_ALL & ~E_DEPRECATED & ~E_STRICT
  • FPM error log/var/log/engineyard/php-fpm/error.log

rewrite について

標準のrewriteは多くの PHP アプリケーションで動作します:

  • ファイルが見つからない場合、リクエストは index.php へrewriteされます。
  • ユーザーが /config にアクセスしようとした場合、web rootを設定していない場合は404エラーが発生します。これは設定がこのディレクトリに格納されている為のセキュリティ上のベストプラクティスです。

FAQ

PHP on Engine Yard Cloudについて下記のような疑問をお持ちですか?

PHP on Engine Yard Cloudのテクノロジスタックは何ですか?

  • Load balancer: HAProxy
  • Web server: Nginx
  • CGI gateway (application server): PHP-FPM
  • PHP extensions: bcmath, bz2, calendar, curl, curlwrappers, exif, ftp, gd, gettext, imap, imap-ssl, mbstring, mcrypt, mhash, mysql, mysqli, ncurses, openssl, pgsql, pspell, soap, sockets, xmlrpc, xsl, zip, zlib
  • Database options: MySQL, PostgreSQL, No Database

このページについて、ご質問やフィードバックがある際は下記のコメント欄へお寄せください。サポートが必要な場合はチケットを登録してサポートまでご連絡ください。 Engine Yard Support.