環境設定とインストール
PHPのフレームワークZend Frameworkの環境設定方法とインストール方法です。
Zend Frameworkを使用するには、まずダウンロードサイトやSubversion(SVN)からソースファイルを入手します。
ダウンロードサイト
ソース内ではたとえば次のように使用するので、library内にあるZendディレクトリをインクルードできるようにする必要があります。
require_once 'Zend/Loader/Autoloader.php';
ディレクトリの設置
インクルードパスの設定
mod_rewriteの設定
.htaccessの記述
Zend Frameworkの動作確認
ディレクトリの設置
ダウンロードし、解凍したフォルダを、読み込み可能な階層に設置し、ディレクトリ名を『 ZendFramework 』にリネームする。
ZendFramework-【バージョン名】
↓
ZendFramework
バージョン名を消すことで、Zend Frameworkのソースファイルをバージョンアップしたときにも、そのディレクトリのみを更新するだけですみます。
インクルードパスの設定
Zend Frameworkのファイルを読み込めるように、インクルードパスを設定します。
これにはいくつかの方法があります。
php.iniに記述する方法
php.iniの下記の部分にインクルードパスを追記します。
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes"
↓
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" include_path = ".;【ZendFrameworkのパス】\library"
Windows版でgo-pearを使って、PEARを追加したときには、php.iniの最後にgo-pear用のインクルードパスの設定が追記されるので注意が必要です。
;***** Added by go-pear include_path=".;C:\Program Files\PHP\pear" ;*****
↓
;***** Added by go-pear include_path=".;C:\Program Files\PHP\pear;【ZendFrameworkのパス】\library" ;*****
メリット
1つのサーバでZend Frameworkを使用するプロジェクトが複数あったとしても、Zend Frameworkのソースファイルを一元で管理できる。
他の方法に比べて動作が速い。
デメリット
php.iniに記述した場合、同サーバで使用するすべてのPHPに影響します。
また別サーバに移行する場合などにも、php.iniに追記する作業が発生します。
.htaccessに記述する方法
実行ファイルを設置している階層の.htaccssに次のコードを記述します。
php_value "include_path" ".;【ZendFrameworkのパス】\library"
php.iniに別のパスがすでに記述されていた場合は、追加する書き方をします。
php_value "include_path" ".;C:\Program Files\PHP\pear;c:\ZendFramework\library"
メリット
プロジェクトそれぞれで、Zend Frameworkを使用するかどうかを分けることができる。
デメリット
php.iniでインクルードパスの設定を変更したときに.htaccessも修正しなければいけない。
Zend Frameworkのソースファイルの設置場所によって、記述が異なる。
httpd.confに記述する方法
.htaccessによる方法と同様に、実行ファイルを設置している階層のみphp.iniの設定を変更します。
<Directory "C:/〜/htdocs"> php_value "include_path" ".;【ZendFrameworkのパス】\library" </Directory>
メリット
httpd.confに記述するより動作が速くなります。
共有ライブラリに設置する方法
共有ライブラリにlibrary内にあるZendディレクトリを設置します。
メリット
1つのサーバの全てに反映されるので、サーバ領域の節約になります。
Zend Frameworkのバージョンアップをするときは、サーバ内に複数のZend Frameworkプロジェクトがあっても1つのパッケージのみの更新で完了します。
デメリット
1つのZend Frameworkパッケージが複数のZend Frameworkプロジェクトに影響します。
PHPの実行ファイルに記述する方法
最初に読み込むPHPの実行ファイルに次のコードを記述します。
set_include_path( "【ZendFrameworkのパス】\library" . PATH_SEPARATOR . get_include_path());
メリット
プロジェクトそれぞれで、Zend Frameworkを使用するかどうかを分けることができる。
Zend Frameworkのソースファイルをプロジェクトファイルに追加しておくことで、別サーバへの移行が容易になる。
インクルードパスの確認方法
phpinfo()のinclude_pathを見ます。
mod_rewriteの設定
Zend Frameworkでは、MVCモデルのURL変換にmod_rewriteを使用するため、webサーバでmod_rewriteを使用できるようにします。
#LoadModule rewrite_module modules/mod_rewrite.so ↓ LoadModule rewrite_module modules/mod_rewrite.so
.htaccessを使用できるようにします。
<Directory "C:/〜/htdocs"> AllowOverride All </Directory>
.htaccessの記述
mod_rewriteの設定を.htaccessに記述し、PHP実行ファイルのドキュメントルートに配置します。
RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
『 ( ) 』の中は、Zend Frameworkを通さないファイルの拡張子です。
逆に、Zend Frameworkを通すファイルの拡張子のみを設定するには次のようにします。
RewriteEngine on RewriteBase / RewriteRule \.(php|html|htm)$ index.php RewriteRule /$ index.php RewriteRule ^$ index.php
拡張子による判断を行わない場合は、次のようにします。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
IISサーバでは次のようになります。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^.*$" /> <conditions logicalGrouping="MatchAny"> <add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" /> </conditions> <action type="None" /> </rule> <rule name="Imported Rule 2" stopProcessing="true"> <match url="^.*$" /> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Zend Frameworkの動作確認
ドキュメントルートに動作確認用index.phpを設置します。
<?php require_once 'Zend/Version.php'; echo Zend_Version::VERSION;
インクルードパスをPHPの実行ファイルに記述するようにしている場合は
<?php set_include_path( "【ZendFrameworkのパス】\library" . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Version.php'; echo Zend_Version::VERSION;
http://www.example.com/hoge.php
にアクセスし、Zend Frameworkのバージョンが表示されれば、インストールと環境設定は完了です。
このときmod_rewriteの設定確認ができなくなるため、index.phpにアクセスしてはいけません。
関連記事
- Composerコマンドでウクライナへのメッセージが表示されたことがあります
- Live Commerceとは
- CakePHP、Symfony、Zend Frameworkの比較
- Zend_Authでは重複するID・パスワードに注意
- リダイレクトとフォワード
- クエリデバッグする方法
- 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error' とは
- Zend_DBのSELECTメソッドのまとめ
- Zend_DBの基本
- Zend_Authによる認証 (ログインページを作る)
- Zend Frameworkのデータベース接続
- Smartyを利用する方法
- ビューヘルパー
- 環境を分ける方法
- ビュー(テンプレート)の基本
- アクションコントローラの基本
- アクションコントローラとビューの関係
- コマンドで雛形を作る CLIツール
- 推奨ディレクトリ構成
- 最小版のファイル一覧
- ファイル一覧
- 基本的な特徴
- Live Commerce
- 基本的な特徴
- パッケージのディレクトリ構成
- インストール直後のディレクトリ構成
- Live Commerceのインストール
- サーバ移行時の設定(パス設定を設置場所に依存しないようにする方法)
- Zend Optimizerのインストール
スポンサーリンク