WEBデザイン・開発講義WEB Design&Development Lecture

PHP5.4移行と「Symfony2」のPHPフレームワーク動作環境

PHP5.3から5.4への移行と「Symfony2」のPHPフレームワークの動作環境づくり

「PHP5.3から5.4へ移行」のためのインストールと「Symfony2」インストール設定と確認

『PHP5.3から5.4へ移行』のためのインストール※画像クリックで拡大表示(リンク)

  • PHP5.4のダウンロードとインストール
    http://windows.php.net/download/のPHPダウンロードサイトから最新版の「PHP 5.4 VC9 x86 Thread Safe」の「Zip版」をクリックしてダウンロードする。
    PHP5.4のダウンロード
    • 現在の「PHP」フォルダをバックアップとして利用するため、「PHP_5.3」にリネームする上でWEBサーバの「Apache」をSTOPします。
    • ダウンロードした「php-5.4.29-Win32-VC9-x86.zip」を解凍して、Cドライブ直下に「PHP」フォルダとして配置します。

      C:¥
      ├ ...
      PHP ←配置した「PHP5.4」のフォルダ
      PHP_5.3 ←リネームした「PHP5.3用」フォルダ
      ├ ...

    • 今までの「PHP_5.3」フォルダから、不足している「PEAR」関連の「go-pear.bat」と「pear.bat」ファイルをコピーして「PHP」フォルダに配置し、「PHP」フォルダ直下に「PEAR」フォルダを作成して「go-pear.phar」をコピーペーストする。
    • 今までの「PHP_5.3」フォルダから、「Composer」関連の「composer.bat」「composer.phar」ファイルをコピーして「PHP」フォルダに配置する。
    • PHP初期設定ファイル「php.ini」は、「PHP」フォルダにある「php.ini-development」をコピーペーストして、リネームしPHP5.4用の「php.ini」を配置する。
      php.ini」の設定は、PHP5.3からPHP5.4で変更になった「short_open_tag」を「off」にし、他はPHP5.3での設定内容を照合して設定します。
    • 「SESSION」用の「php_session_temp」フォルダを「PHP」フォルダ直下に作成する。
  • PHP5.4用の「機能拡張」ダウンロードとインストール
    PHP5.4用の画像処理、映像処理の機能拡張モジュール(DLL)をダウンロードして配置する必要があり、「PHP機能拡張:画像と映像モジュールのインストール方法」を参照下さい。。
    • 画像処理の「ImageMagick」のダウンロードと配置
      「PECL」サイトの「imagick」からPHP5.4の「DLL」(PHP 5.4 Thread Safe Ver:3.1.2)をダウンロードします。ダウンロードした「php_imagick-3.1.2-5.4-ts-vc9-x86.zip」を解凍して、「php_imagick.dll」をPHPフォルダ直下の「ext」フォルダに配置します。
      PECLの「ImageMagick」の「DLL」ダウンロード
      「imagick-3.1.2」の「5.4 Thread Safe (TS) x86」ダウンロード
      PHP5.4用の「Imagick」には、相対パスのバグがあり、絶対パスでのリソース指定をする必要があります。[Package Bugs]をクリックしてサイト参照できます。
      PECLの「ImageMagick」のバグ内容
      「ImageMagick」の機能確認プログラム"imagick.php"の修正内容は、次のように「getcwd()」関数を利用して絶対パスの情報を得て、リソースのパスを設定します。
      「ImageMagick」の機能確認プログラム

      「ImageMagick」の機能確認修正プログラム:「imagick_test_program_upd.zip」のダウンロード

      (注)最新版「ImageMagick」ソフトの「ImageMagick-6.8.9-2-Q16-x86-dll.exe」では、PHP5.4で動作しないため、「ImageMagick-6.6.2-10-Q16-windows-dll.exe」のままで良いことを確認しました。
    • 映像処理の「FFmpeg」のダウンロードと配置
      『Zeranoe FFmpeg』サイト『ffmpeg6-php54-win32-vc9-all.zip』をダウンロードする。
      又は、「My Own Home Server」サイトから「ffmpeg6-php54-win32-vc9-all」をダウンロードします。
      ダウンロードした「ffmpeg6-php54-win32-vc9-all.zip」を解凍して、「php_ffmpeg.dll」をPHPフォルダ直下の「ext」フォルダに配置し、残りの「DLL」モジュールをPHPフォルダ直下に配置します。
    • メモリキャッシュ処理の「APC」のダウンロードと配置
      「PECL」サイトの「APC 3.1.13」からPHP5.4の「DLL」(PHP 5.4 Thread Safe (TS) x86)をダウンロードします。ダウンロードした「php_apc-3.1.13-5.4-ts-vc9-x86.zip」を解凍して、「php_apc.dll」をPHPフォルダ直下の「ext」フォルダに配置します。
      PECLの「APC」の「DLL」ダウンロード
      「APC」の「PHP 5.4 Thread Safe (TS) x86」ダウンロード
    • データの標準的なシリアライズ方式である「yaml」のダウンロードと配置
      「PECL」サイトの「yaml 1.1.1」からPHP5.4の「DLL」(PHP 5.4 Thread Safe (TS) x86)をダウンロードします。ダウンロードした「php_yaml-1.1.1-5.4-ts-vc9-x86.zip」を解凍して、「php_yaml.dll」をPHPフォルダ直下の「ext」フォルダに配置します。
      PECLの「yaml」の「DLL」ダウンロード
      「yaml」の「PHP 5.4 Thread Safe (TS) x86」ダウンロード
  • 「php.ini」ファイルの拡張モジュールの追加とAPC設定

    ;;; [add extension ] ;;;
    extension=php_imagick.dll
    extension=php_ffmpeg.dll
    extension=php_apc.dll
    extension=php_yaml.dll
     ...
    [APC]
    apc.enabled = 1
    apc.shm_size = 128M
    apc.cache_by_default = 0
     ...

    「apc.cache_by_default=0」の設定を追加しないと「Symfony2」では、エラーとなるため設定が必要です。
    • PHP5.4の機能拡張の確認
      PHPの機能拡張を設置し、「php.ini」ファイルを更新した後は、WEBサーバ「Apache」の再起動が必要です。「phpinfo.php」プログラムを起動して、PHP5.4のバージョンと「apc」「ffmpeg」「Imagick」「yaml」の機能拡張の表示を確認します。
      phpinfo.phpプログラムを起動して、機能拡張の表示
    PHP5.4用の初期設定ファイル:「php.ini」のダウンロード
  • PHP5.4用のPEARインストール
    コマンドプロンプトで、「go-pear.bat」を実行します。操作方法は、「PEARのインストール」サイトを参照して、再度「PEAR」関連のインストールを実施します。
    「PEAR」関連のインストールした操作内容(PDF)

『PHP5.4』の新機能と削除内容

  • 「PHP5.4への移行」の説明サイトで内容確認
    • php.iniで設定する「short_open_tag」の「<?= 」は常に有効となるため、offで良くなった。
    • 呼び出し時の参照渡しをサポートしなくなった。(例:foo(&$a);)
    • スーパーグローバルをパラメータ名として使用不可(例:function foo($_GET, $_POST) { ... })
    • WEBサーバの組み込み:コマンド(CLI)モードで動く、開発用のWEBサーバが組み込まれた。
    • 配列の短縮系(無名配列、無名連想配列)の利用可能。(例:$a = [1, 2, 3]; $a = ['one' => 1, 'two' => 2];)
    • トレイト(trait)のサポート:いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用できる、継承しなくてもクラスのメンバーに追加できる。
    「PHP5.4への移行」の説明サイト
    PHP5.4の移行上の留意点と新機能まとめ(PDF)

『Symfony2』のインストールと設定

  • 「Symfony2」のMVCは
    「ビュー」のデフォルト・テンプレートエンジン「Twig」を利用します。「モデル」は、「O/Rマッピング」の「Doctrine2」を利用して、データベースのPHP拡張モジュール「pdo_mysql」「pdo_odbc」「pdo_pgsql」他と連携します。今までの処理が重い点を「APC」PHP拡張モジュールでキャッシュメモリでのスピードアップを可能にします。
    WEBサーバとして、「Apache」を利用する場合と、コマンドで「Symfony2専用のWEBサーバ」を起動して「ポート番号:8000」指定で利用する場合が可能です。 Symfony2のMVC構成概略図
  • sympony2の環境設定のポイントは、
    • PHP5.3.3以上であること。(WEBサーバのApacheで、mod_rewriteのmoduleをLoadする)
    • Symfony2専用のWEBserverでは、PHP5.4.11+ 以上であること。
    • php.iniファイルの「short_open_tag」設定をoffにする。
      (従来のショートタグの指定は、PHP5.4ではデフォルトになったので、互換性の確保可能)
    • phpのcacheを利用する「APC」をPECLからダウンロードして「php_apc.dll」を「ext」に設置し、php.iniに「extension=php_apc.dll」を追加。
  • 「Composer」による「Symfony2」のインストール
    コマンドプロンプトで『Composer』を利用したインストールをします。
    上記のComposerコマンドの実行するので、「path」は、WEBサーバ内のhtdocs下に「Symfony」フォルダとして設置するため「/WEBserver/htdocs/Symfony/」となります。最新版のバージョンにしたい場合は、「*」を利用しますので「2.*」とします。

    C:¥PHP>php composer.phar create-project symfony/framework-standard-edition /WEBserver/htdocs/Symfony/ 2.*
    Warning: This development build of composer is over 30 days old. It is recommended to update it by running "composer.phar self-update" to get the latest version

    「Warning」メッセージ内容は、composerが古いバージョンなので、「php composer.phar self-update」をコマンドプロンプトで実行する。

    C:¥PHP>php composer.phar self-update
    Updating to version xxx
         Downloading: 100%
    Use composer self-update --rollback to ...
    C:¥PHP>

  • 【参考】Pearによる「Symfony2」インストール方法
    Pearによる「Symfony2」インストール方法
  • 「Symfony2」インストール内容の環境設定チェック操作
    「Symfony」フォルダに「CD」コマンドで移動し、「php app/check.php」コマンドを実行して、種々のチェックで全て「OK ...」メッセージが表示されれば、インストールがOKであることを意味します。

    C:¥WEBserver¥htdocs¥Symfony>php app/check.php
    *************************************
    *                                            *
    * Symfony requirements check *
    *                                            *
    *************************************
    * Configuration file used by PHP: C:¥PHP¥php.ini
    ...
    ** Mandatory requirements **
    OK   PHP version must be at least 5.3.3 (5.4.29 ins...
    OK   PHP version must not be 5.3.16 as Symfony ...
    ...

    Symfony2インストールと構成チェックしたコマンド操作内容:(PDF)

『Symfony2』の動作確認

  • 「Symfony2」の構成チェック
    開発用WEBサーバ「Symfony」を起動しないで、ブラウザから「Symfony2」の構成のチェックができます。「http://localhost/Symfony/web/config.php」のURLを入力して起動します。
    ブラウザから「Symfony」起動して構成チェック表示
    推奨設定のチェックで、PHP5.3環境であること、「apc」と「short_open_tag」の設定がされていない場合には、以下のような推奨設定の表示になりますので変更が必要になります。
    「Symfony」構成チェックの推奨設定と修正内容表示
  • 「Symfony2」の「Welcome!」起動
    「Symfony2」のWEBアプリケーション起動は、「http://localhost/Symfony/web/app_dev.php」のURLを入力して起動します。又は「構成チェック」ページからリンクをクリックすると以下の内容が表示されます。
    app_dev.php」はフロントコントローラーで、ユーザーからのすべてのリクエストに応答するアプリケーションごとの単一のエントリポイントです。下段の欄には、「Symfony」のバージョンや「PHP動作環境」「Symfony起動スピード」などを参照できます。
    「Symfony2」の「Welcome!」起動
  • 「Symfony2」の「Demo」の「Hellow World」起動
    • 「Symfony2」の「Welcome!」起動後に表示される「RUN THE DEMO」ボタンをクリックします。
      「Symfony2」の「DEMO」起動
    • 「Hello World」のリンクをクリックして起動させます。
      「DEMO」の「Hellow World」起動
    • 「Hello World」の仮想(バーチャル)パスの理解
      「/demo/hello/World」のパス部分は、ユーザーがアクセスしようとしているリソースのバーチャルパスです。
      実際の物理ディレクトリ・パスは、
      「C:¥WEBserver¥Symfony¥src¥Acme¥DemoBundle¥」フォルダ下に設置されています。
      (以降「デモパス」と表現します。)
      Acme」は、Symfonyのデモやドキュメントで使われるサンプル企業名です。
      デモパス」のディレクトリ内容
    • ルーティングは、「routing.yml」ファイル
      「デモパス」下にある「Resources¥config」にあります。
      Symfony2では、リクエストされた URL(バーチャルパス)に対して開発者が設定したパターンでマッチングを行い、対応するコードへリクエストを引き渡します。処理に使われるパターン(ルート)を「routing.yml」ファイルに記述します。
    • Controller」は、「DemoController.php」ファイル
      「デモパス」下にある「Controller」にあります。
    • Template」は、「hello.html.twig」ファイル
      「デモパス」下にある「Resources¥views¥Demo」にあります。「.twig」の拡張子は、テンプレートエンジンの「Twig」の形式です。
  • 開発用WEBサーバ「Symfony」の起動とブラウザ起動
    コマンドプロンプトで開発用WEBサーバ「Symfony」を起動するとブラウザでは、ポート番号「8000」を指定するとアプリケーションが起動することができます。
    • 開発用WEBサーバ「Symfony」の起動は、「php app/console server:run」を入力します。
      すると「Server running on http://localhost:8000」が表示されて、起動中であることを確認できます。

      C:¥WEBserver¥htdocs¥Symfony>php app/console server:run
      Server running on http://localhost:8000

    • 開発用WEBサーバ「Symfony」を停止するには、「Ctrl + C」を入力すると停止することができます。
      開発用WEBサーバ「Symfony」の起動と停止
    • ブラウザによる「Symfony」起動は、「http://localhost:8000」のURL+ポート番号でSymfonyのアプリケーション「Welcome!」ページが表示されます。
      ブラウザによる「Symfony」の起動
      「Symfony2」の構成チェックは、「http://localhost:8000/config.php」のURL+ポート番号でページが表示されます。

Symfonyの補足説明

PHPリファレンス

参考資料の表示

pagetopへ