konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Old

Zend Core と Zend Frameworkを試すための環境を作成する方法

環境

説明のために、想定する環境は次のとおりです。

OS - WindowsXP
Zend Core 2.5.0
Zend Framework, PHP, Apache, MySQL - Zend Coreにバンドルされているもの

注意事項

  • 記載の内容は、特記しない限り 2007年12月25日時点の情報に基づきます。
  • 本番稼動用の環境を作成する方法を紹介する文書ではないことにご注意ください。
  • WebサービスとしてApacheを使用します。 他のWebサービス(たとえば Internet Information Server, Oracle HTTP Server など)が稼動している場合は、関係するサービスを停止してください。
  • インストール中に、MySQL及びZend Frameworkのモジュールをインターネット経由でダウンロードします。 インターネットに接続できない場合の対処方法はトラブルシューティングをご覧ください。
  • 以前にMySQLをインストールしたことがある場合は、残っているフォルダの内容が問題を発生させることがあります。 アンインストール後、C:\Program Files\MySQLフォルダを削除してから手順を開始してください。


1. ソフトウェアのダウンロード

(2011年12月現在、Zend Core のダウンロードは終了し、Zend Server に置き換えられています)

2. ソフトウェアのインストール

Zend Core

  1. exeファイルを実行します。 圧縮ファイルになっている場合は、解凍してexeファイルを得ます。
  2. Welcome to the Zend Core v2.5 Installation!画面で "Next" を押下します。
  3. License Agreement画面で、"I accept(後略)" を選択し、"Next" を押下します。
  4. Setup Type画面で、"Custom" を選択し、"Next" を押下します。 Comlete は、Custom よりも待ち時間とディスク消費量が増加します。
  5. Choose Destination Location画面では、そのまま "Next" を押下します。
  6. Select Features画面で、下記の選択肢を選んで "Next" を押下します。
    Zend Frameworkは既に選択済になっています。
    • phpMyAdmin
    • MySQL Database
  7. Web Server Selection画面で、下記の選択肢を選んで "Next" を押下します。
    • Install Zend Core's Bundled Apache 2.2.4
  8. Apache port number画面では、そのまま "Next" を押下します。 画面には、80 が表示されています。
  9. Extension Association画面で、下記の選択肢を選んで "Next" を押下します。
    • .php
    • .phtml
  10. Administration Password画面でパスワードを設定します。 このパスワードは、Zend Coreの管理画面にログオンするのに使用します。
  11. Zend Network Subscription画面では、そのまま "Next" を押下します。 画面では、No が選択されています。
  12. Proxy Configuration画面では、そのまま "Next" を押下します。 画面では、No が選択されています。
  13. MySQL Database Username for phpMyAdmin画面では、そのまま "Next" を押下します。 画面には、root が表示されています。
  14. MySQL Database Password画面でパスワードを設定します。 このパスワードは、MySQLにログオンするために使用します。
  15. Ready to Install the Program画面では、そのまま "Install" を押します。
  16. Setup Status画面が表示されます。 いくつかのダイアログが、瞬間的に表示されては消えていきます。
    引き続き、MySQLのインストールに続きます。

MySQL

  1. MySQLのインストーラのダウンロードが、ネットワーク経由で開始されます。 この処理はしばらく時間がかかります。 ダウンロードが終了すると、インストールするかどうか尋ねられるので、はい を押下します。
  2. Welcome to the Setup Wizard for MySQL Server 5.0画面で、Next" を押下します。
  3. Setup Type画面で、"Typical" を選択し、"Next" を押下します。
  4. Ready to Install the Program画面では、そのまま "Install" を押下し、しばらく待ちます。
  5. MySQL.com Sign-Up画面で、"Skip Sign-Up" を選択し、"Next" を押下します。
  6. Wizard Completed画面で、"Configure the MySQL Server Now" にチェックが付いていることを確認して "Finish" を押下します。
  7. ここから、MySQL Server Instance Configuration Wizard が始まります。 主に設定したいのは、デフォルト文字コードを "UTF-8" にすることです。 各画面で、それぞれ下記の値を選択して "Next" を押下していきます。
    画面 - 選択肢
    
    Please select a configuration type - Detailed Configuration
    Please select a server type - Developer Machine
    Please select the database usage - Multifunctional Database
    InnoDB Tablespace Settings - 2つの選択肢は各々 C: と Installtation Path
    
    Please set the approximate number - Decision Support
    Please set the Networking options - Enable TCP/IP Networking にチェック
                                        Port Number は 3306
                                        Enable Strict Mode にチェック
    
    Please select the default character set - Manual Selected Default Character Set /Collation を選択
                                              Character Set は utf8 を選択
    
    Please set the Windows options - Install As Windows Service にチェック
                                     Service Name はMySQL
                                     Launch the MySQL Server automatically にチェック
                                     Include Bin Directory in Windows PATH にチェック
  8. Please set the security options画面で、Modify Security Settings にチェックを入れずに次の画面に進みます。 パスワードの値は、既にZend Coreインストール手順のMySQL Database Password画面で設定済です。
  9. Ready to execute画面で、"Execute" を押下し、しばらく待ちます。
  10. Wizard Completed画面で、"Finish" を押下します。
  11. インストーラ (MySQL) を削除するかどうか尋ねられるので、"はい" を押下します。

    引き続き、Zend Frameworkのインストールに続きます。

Zend Framework

  1. Zend Frameworkの圧縮ファイルのダウンロードが、ネットワーク経由で開始されます。 この処理はしばらく時間がかかります。 ダウンロードが終了すると、インストールするかどうか尋ねられるので、"はい" を押下します。
  2. 圧縮ファイル(Zend Framework)を削除するかどうか尋ねられるので、"はい" を押下します。

    引き続き、Zend Core管理画面での設定に続きます。

3. 設定

Zend Core管理画面

  1. Zend Coreの管理画面とリリースノートの場所を示すダイアログが表示されるので、"OK" を押下します。
  2. Installation complete画面で、"Finish" を押下します。
  3. Webブラウザで、下記のアドレスにアクセスします。 http://localhost/ZendCore/ Zend Core インストール手順のAdministration password画面で設定したパスワードを入力してログオンします。
  4. Configurationタブを選択し、"PHP" タブを選択します。
  5. Error handling and Logging の "display_errors" を "On" に変更します。 これは、エラーを画面表示させるための設定で、お試し環境限定です。 本番では "Off" が適切です。
  6. Paths and Directoriesのinclude_pathを変更します。
    初期値が下記になっています。
    .;C:\Program Files\Zend\Core\ZendFramework-0.8.0
    このままではZend Frameworkを利用できないので下記に変更します。
    .;C:\Program Files\Zend\Core\ZendFramework\library
    円記号もしくはバックスラッシュ(英語表示の場合)を使ってください。
    スラッシュ記号は使わないでください。
    include_pathの区切り記号が除去されてしまったり、Zend Frameworkの一部の機能が動かなくなることがあります。
  7. Extentionsタブを選択して、下記項目を赤色(縦棒の下側に丸:Unload状態)から、緑色(縦棒の上側に丸:Load状態)に変更します。
    これらは、MySQLとphpMyAdminの機能を使うために必要です。
    mbstring - Multibyte Character Processing
    mysql - MySQL(念のため緑色になっていることを確認してください)
    pdo_mysql - MySQL PDO Driver(念のため緑色になっていることを確認してください)
  8. 右上の Saving Settings をクリックして保存し、ログアウトをクリックしてログアウトします。 実際にどのように変更されたか確認したい場合には、"C:\Program Files\Zend\Core\etc\php.ini" をご覧ください。

    引き続きhttp.confの設定に続きます。

http.conf設定

  1. "C:\Program Files\Zend\Apache2\conf\httpd.conf"をエディタで開きます。
  2. 下記の行の先頭の#を削除します。 これは、リダイレクト機能を使用するのに必要です。 #LoadModule rewrite_module modules/mod_rewrite.so
  3. リダイレクト設定の記述を追加します。
  • 記述例 [1] C:\mytest\zfw フォルダを http://localhost/zfwtest/ として扱い、そのフォルダ内限定でリダイレクトを設定する例です。
    Alias /zfwtest "C:/mytest/zfw"
    <Directory "C:/mytest/zfw">
    AllowOverride All
    Order allow,deny
    Allow from all
    RewriteEngine on
    RewriteBase /zfwtest/
    RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
    </Directory>
  • 記述例 [2] [1] と似ていますが、RewriteEngine から RewriteRule までの3行を C:\mytest\zfw フォルダ内に用意した .htaccess ファイル内に記述します。
    Alias /zfwtest "C:/mytest/zfw"
    <Directory "C:/mytest/zfw">
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
  • 記述例 [3] ドキュメントルートでリダイレクトを設定する例です。 2〜4行目は、Zend Core管理画面をリダイレクト対象外にするために必要です。
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/ZendCore
    RewriteCond %{REQUEST_URI} !/server-status
    RewriteCond %{REQUEST_URI} !/server-info
    RewriteRule !\.(js|ico|gif|png|jpg|css)$ index.php
    最後に コントロールパネル | 管理ツール | サービス を開き、ZendCoreApache サービスを再起動します。

    引き続きphpMyAdminの設定に続きます。

データベース設定

必要に応じてphpMyAdminを利用してMySQLのデータベースを操作してください。 下記アドレスで利用できます。 http://localhost/ZendCore/phpmyadmin/

4. とても簡単なコード例

フロントコントローラ

下記の内容を記述し、C:/mytest/zfw/index.phpに配置します。

<?php
require_once 'Zend/Controller/Front.php';
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('../application/controllers');
$controller->setParam('noViewRenderer', true);
$controller->dispatch();
  1. 1行目と2行目でフロントコントローラのインスタンスを作成します。
  2. 3行目でアクションコントローラがある場所(C:/mytest/application/controllers)を指定します。
  3. 4行目でビューのレンダリングをしないことを指定します。ビューを使用する場合は4行目は不要です。
  4. 5行目でディスパッチ処理を行います。URLパスを解釈して所定のアクションコントローラを呼び出します。

アクションコントローラ

下記の内容を記述し、C:/mytest/application/controllers/IndexController.phpに配置します。

<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action 
{
    public function indexAction() 
    {
        echo 'Hello!';
    }
    public function testAction()
    {
    	echo 'It is test!';
    }
}
  1. アクションコントローラー IndexControllerのなかにindexアクションとtestアクションを定義しました。
  2. アクションコントローラー名は大文字、アクション名は小文字で始めます。

エラーコントローラ

下記の内容を記述し、C:/mytest/application/controllers/ErrorController.phpに配置します。

<?php
require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_Controller_Action 
{
    public function errorAction() 
    {
        echo 'Not Found!';
    }
}
  1. 所定のアクションコントローラーまたはアクションが見つからない場合に実行する処理を定義することができます。
  2. ErrorControllerを定義し、その中にerrorアクションを定義します。

予想される結果

  1. http://localhost/zfwtest/ では Hello! と表示されます。
  2. http://localhost/zfwtest/Index/ でも Hello! と表示されます。
  3. http://localhost/zfwtest/Index/index でも Hello! と表示されます。
  4. http://localhost/zfwtest/Index/test では It is test! と表示されます。
  5. http://localhost/zfwtest/Index/testes では Not Found! と表示されます。
  6. http://localhost/zfwtest/Ind/test でも Not Found! と表示されます。

5. トラブルシューティング

MySQLのダウンロードが失敗する。

MySQLのモジュールのダウンロードが失敗する場合があります。

本来の場所に存在しない趣旨のメッセージが警告ダイアログに表示されます。
その場合は、ダイアログの "OK" を押下し、Zend Core自体のインストールはそのまま続行してください。
お手数ですが、MySQL 5.0のインストーラをMySQL ABのサイトから入手して別途導入してください。
導入後の設定作業の際の選択肢は、この文書の記載内容を利用していただけます。

Zend Frameworkのダウンロードが失敗する。

Zend Frameworkの圧縮ファイルのダウンロードに失敗する場合は、MySQLの場合と同様に、ダイアログの "OK" を押下し、Zend Core自体のインストールはそのまま続行してください。
お手数ですが、圧縮ファイルを http://framework.zend.com/ より入手してください。
zipファイルと、tar.gzファイルの2種類があります。
C:\Program Files\Zend\Core 下に、Zend Frameworkフォルダを作成し、その中にlibraryフォルダを配置します。
libraryフォルダは、ダウンロードしたファイルを解凍すると取得できます。
配置が完了すると、下記のフォルダが生成されるはずです。
C:\Program Files\Zend\Core\ZendFramework\library

インターネットを利用できない状況下で環境を作らなければいけない。

セキュリティ上の理由で外部ネットワークへのアクセスが許可されていない場合があります。

その場合は、ソフトウェアのインストール手順のうち、ZendCoreのインストールオプションを選択する箇所で Zend Framework のチェックを外し、phpmyadminのみを選択してください。
この選択の結果、Zend Core管理画面のPHPタブの「Paths and Directories」のinclude_pathの値がピリオド記号だけになります。
include_pathの値を「.;C:\Program Files\Zend\Core\ZendFramework\library」に変更してご利用ください。
MySQL及びZend Frameworkについては、お手数ですがそれぞれのダウンロードに失敗した場合の対象方法を参考にインストール、設定を行ってください。

MySQLの設定を反映しようとしてアクセス拒否される。

MySQLの設定をExecuteを押下して反映させると、rootへのアクセスが拒否されたという趣旨の比較的大きなダイアログのメッセージが表示されることがあります。

ウイルスチェックソフトにより妨害されている可能性もあります。
一時的に無効化してみて、"Retry" を押下してみてください。

または、以前にMySQLをインストールした際のデータが残っていてエラーを発生している場合があります。
その場合は、MySQLをアンインストール後、インストール先(当例では C:\Program Files\MySQL )のフォルダを削除してから、MySQLをインストールし直してください。

Zend Core管理画面を表示できない。

Apacheが使用するWebサービスと同じTCP/IPポート番号を別の機能で使用していないかどうか確認してください。
たとえば、下記サービスが稼動しているかもしれません。

  • Internet Information Server
  • Oracle HTTP Server

また、http.confの設定手順のうち、Zend Core管理画面をリダイレクト対象から除外するRewriteCondを忘れていないか確認してください。

「問題が発生したため、CGI/FastCGIを終了します。ご不便をおかけして申し訳ありません。」と表示される。

phpMyAdminとZend Core管理画面でこのメッセージが表示される場合、エラーログをみると下記のメッセージがあるかもしれません。

fcgi: Can not read response from C:\Program Files\Zend\Core\bin\php-cgi.exe


Zend Core管理画面の設定手順で mbstring - Multibyte Character Processing をLoad状態に変更したかどうか確認してください。

Zend Frameworkのどのクラス、メソッドの呼び出しもできない。

Zend Coreのインストール手順のSelect Features画面でZend Frameworkのチェックを無効にしたのかも知れません。
Zend Core管理画面の設定手順で行うinclude_path の設定が正しいかどうか確認してください。
稀に、フォルダ名の間の区切り記号として使われる円記号、もしくはバックスラッシュ(英語表示の場合)が消去されてしまっている場合があります。
C:\Program Files\Zend\Core\ZendFramework\library が存在するかどうか確認してください。

Zend_DBのメソッドを使うとエラーが発生する。

Zend Core管理画面で、"pdo_mysql - MySQL PDO Driver" がLoad状態であるか確認してください。

Zend Core管理画面の設定手順で指定する include_path の区切り記号に円記号、もしくはバックスラッシュ(英語表示の場合)を使用しているかどうか確認してください。

Zend Core管理画面で有効にしたはずの機能が利用できなかったり、設定した値と異なる挙動をする。

Zend Core以外のPHP処理系が存在してパスが通っているために優先されている可能性があります。
Zend Core以外のPHP処理系やPHP設定ファイルがあるかどうか確認してみてください。

mb_eregが利用できない。

Windows版のZend Coreでは、mbstringの設定に関わらず、PHPバイナリのextensionのうちmb_eregが有効にならないようになっています。
恐れ入りますが、Linux版のZend Coreのご利用をご検討ください。


最終更新のRSS