PHP実装環境作り
小さいWEBアプリを作って国内レンタルサーバーで運用するならPHPかなーと思います。
残念ながらRuby on Railsは国内レンタルサーバーではオーバースペックで遅いです。
ということで、WEBとDAOをCakePHPに、その他ユーティリティクラスをZend Frameworkに担当してもらう感じの作成手順です。
JavaでいえばStruts、Hibernate部分をCakePHPに、Jakarta Commons、Spring Frameworkの部分をZend Frameworkに担当してもらう感じです。
PHP
PHPダウンロード・インストール
- 上記からzipをダウンロード
- php.exeのディレクトリに環境変数パス(Path)を通す
- php.ini-distをphp.iniにリネームして以下のApacheルートディレクトリにコピー
- C:/Program Files/Apache Software Foundation/Apache2.2
※php.ini-recommendedは実運用のためにセキュリティ面などがより強化された設定内容
Apache設定(httpd.conf)
- LoadModuleの項に次の行を追加(2.2.9の場合 110行目)
LoadModule php5_module C:/TOOL/php-5.2.6-Win32/php5apache2_2.dll
phpのファイル形式を定義
- AddTypeの項の最後に次の行を追加(2.2.9の場合 406行目)
AddType application/x-httpd-php .php
PHP設定(php.ini)
doc_root = を以下のように変更(5.2.6の場合 479行目)
doc_root = "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
extension_dir = "./"を以下のように変更(5.2.6の場合 486行目)
extension_dir = "C:/TOOL/php-5.2.6-Win32/ext"
php_mbstring.dllを使用できるようにコメントアウト「;」を外す(5.2.6の場合 619行目)
extension=php_mbstring.dll
動作確認
PHPファイルをinfo.phpという名前で作成し以下に配備
- C:/Program Files/Apache Software Foundation/Apache2.2/htdocs
<?php phpinfo(); ?>
- 以下にアクセス
http://localhost/info.php
以下のように出ればOK
Eclipse3.3プラグインPDT
ZendDebugger
[Zend] zend_extension_ts="C:/TOOL/php-5.2.6-Win32/ZendDebugger.dll" zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=always
Eclipseのフィーチャー更新でPDTインストール
http://download.eclipse.org/tools/pdt/updates/
2009/02/03追記:2008/12/29に新しいPDT出ました。Eclipse3.4ならhttp://downloads.zend.com/pdtでインストールするだけで、ZendDebuggerも入るし、下のEclipse設定も特にいらないみたい。
Eclipse設定
PHPプロジェクト作成
「ファイル」→「新規」→「PHP」→「PHPプロジェクト」でPHPプロジェクト作成
※上記プロジェクトをC:/PROJ/SAMPLE_PHP_5_2_6_APP/に作成した場合、httpd.confに以下を記述
- (
タグ内 2.2.9の場合 328行目)
Alias /SAMPLE_PHP_5_2_6_APP/ "C:/PROJ/SAMPLE_PHP_5_2_6_APP/"
- (適当な箇所に追加)
<Directory "C:/PROJ/SAMPLE_PHP_5_2_6_APP/"> Allow from all </Directory>
PHPファイル作成
PHPエクスプローラーで上記プロジェクトを右クリック→「新規」→「PHPファイル」→「ファイル名」にindex.php→「次へ」→「New PHP file - HTML frameset」選択→「終了」
作成されたファイルを下記のように変更
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <p>TEST Page</p> <?php echo ' Hello World ! '; ?> </body> </html>
ブレークポイント設定
- echoの左をダブルクリック
SQLite2
※現在のCakePHP1.1.19.6305は、まだSQLite3に対応してないのでSQLite2を使う。ここでSQLite3を使うぐらいならMySQLを使ったほうがよい。
SQLiteダウンロード・インストール
SQLite起動・接続(2.8.17)
> cd C:\TOOL\sqlite-2_8_17 > sqlite
SQLite終了
> .exit
データベース作成
> cd C:\TOOL\sqlite-2_8_17 > sqlite SAMPLE
テーブル作成
sqlite> CREATE TABLE SAMPLES ( id INTEGER PRIMARY KEY, title VARCHAR(50), body TEXT, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL);
※必要があれば以下の手順でODBC設定
ODBCドライバダウンロード・インストール
CakePHP
インストール
解凍した中身をWEBアプリルートディレクトリに配備
C:\PROJ\SAMPLE_PHP_5_2_6_APP
├─[app]
├─[cake]
├─[docs]
├─[vendors]
├─.htaccess
└─index.php
Apache設定(httpd.conf)
ApacheにURLリライトモジュールを適用
-以下の行のコメントアウトを外す(2.2.9の場合 115行目) LoadModule rewrite_module modules/mod_rewrite.so
ドキュメントルートでindex.phpも探すように設定
- 以下の項目にindex.php追加(2.2.9の場合 238行目)
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
アプリディレクトリに.htaccessが適用されるように設定
<Directory "C:/PROJ/SAMPLE_PHP_5_2_6_APP/"> AllowOverride All Allow from all </Directory>
ディレクトリアクセス制御設定
C:/PROJ/SAMPLE_PHP_5_2_6_APP/.htaccessの
RewriteBase /SAMPLE_PHP_5_2_6_APP
C:/PROJ/SAMPLE_PHP_5_2_6_APP/app/.htaccessの
RewriteBase /SAMPLE_PHP_5_2_6_APP/app
C:/PROJ/SAMPLE_PHP_5_2_6_APP/app/webroot/.htaccessの
RewriteBase /SAMPLE_PHP_5_2_6_APP/app/webroot
※この時点でhttp://localhost/SAMPLE_PHP_5_2_6_APP/で動作確認ができます。
データベース設定
php.ini修正
extension=php_pdo.dll(5.2.6の場合 630行目) extension=php_pdo_sqlite.dll(5.2.6の場合 638行目) extension=php_sqlite.dll(5.2.6の場合 645行目)
データベース接続情報設定
C:/PROJ/SAMPLE_PHP_5_2_6_APP/app/config/database.php.defaultをdatabase.phpにリネーム
database.phpを以下のように修正
<?php class DATABASE_CONFIG { var $default = array('driver' => 'sqlite', 'connect' => 'sqlite_open', 'database' => '../../db/SAMPLE'); } ?>
動作確認
http://localhost/SAMPLE_PHP_5_2_6_APP/
以下のように出ればOK
※ここから先は以下のページを見ながらサンプルアプリケーションでも作ってみる
Cake ブログチュートリアル
Zend Framework
php.ini修正
include_path = を以下のように変更(5.2.6の場合 473行目)
include_path = ".;C:\TOOL\ZendFramework-1.6.1\library"
動作確認
PHPファイルをzendinfo.phpという名前で作成し以下に配備
- C:/Program Files/Apache Software Foundation/Apache2.2/htdocs
<?php require_once 'Zend/Version.php'; echo 'Zend Framework : version = ' . Zend_Version::VERSION; ?>
- 以下にアクセス
http://localhost/zendinfo.php
以下のように出ればOK
Zendコーディング規約
http://framework.zend.com/manual/ja/coding-standard.html
あとは作って壊してデバッグしてがんばる。
以下のようなCakePHP用CSSテンプレートとか利用して、ささっと作れるのがありがたいですね。
10 Free Business Templates for CakePHP: CakePHP のおいしい食べ方
実装、運用コストの軽さを重視するならPHP最強な気がしました。
でも、今回の実装環境作り手順は結構長かったね。