第1、2回ではCakePHPの概要を紹介し、第3回では情報収集に便利なサイトを紹介しました。今回からはCakePHPでのアプリケーション開発の実際の手順を紹介いたします。今回行う作業は以下になります。
- CakePHPの入手
- パッケージの展開と設置
- パーミッションの設定
- データベースへの接続設定
CakePHP(1.1)の動作には、WebサーバとPHP 4.3.2以降、DBはMySQL・PostgreSQL・ADODBのいずれかが必要です。今回は以下の環境を前提とします。
- Apache 1.3.37
- PHP 5.2.3
- MySQL
CakePHPの入手
CakePHP本体はhttp://www.cakephp.org/から入手できます。現在配布されているパッケージは安定版の1.1(Stable)と開発版の1.2(alpha)があります。今回は安定版(Stable)を使うことにします。
http://www.cakephp.org/にアクセスし、「Stable: 1.1.~」のリンクを選択します。3種類の圧縮形式が並んだ赤く示されたリストが表示されたら、圧縮形式を選んでください(図1)。中身はどれも同じです。
次に表示される画面がちょっとわかり辛いので注意が必要です。下のボックスに「Help the Cake Software Foundation grow CakePHP!」という見出しの文章がありますが、リンクはありません。
その上にある3つの「Donate Any」「Donate $1」「No Thanks」と書かれたタグのような画像が並んでいますので「No Thanks」を選びましょう(図2)。ちなみにDonateは寄付という意味で、下の文章は寄付についての呼びかけです。寄付はオープンソースプロジェクトへの立派な参加行為ですので、CakePHPプロジェクトへの協力手段の一つとして検討する価値があります。
とりあえず今回はNo Thanksを選び、表示されたページ下部の「Download Latest Release」リンクからパッケージをダウンロードします(図3)。
パッケージの展開と設置
パッケージを展開すると、以下のディレクトリとファイルが現れます。
設置方法は大きく分けて2種類あるのですが、今回はroot権限の無い制限された環境でも設置できる方法をご紹介いたします。仮に、サブドメインが利用できるサーバが利用可能で、設定されているサブドメインが
だったとして、このURLで公開されているディレクトリ(DocumentRoot)が
だったとします。
このディレクトリにCakePHP用のディレクトリを作成します。ディレクトリ名は任意でかまいません。ここでは「cake」とします。
cakeディレクトリを作成したら、展開したディレクトリとファイルをこのディレクトリ内に置きましょう。
これで設置は完了しました。
設置できたかを確認するためにhttp://yourdomain.example.com/cake/にアクセスします。mod_rewriteが使用可能であれば図4のような画面が表示されます。
mod_rewriteが使用できない場合は、ブラウザ標準のスタイルシートの見栄えとなり、図5のような画面が表示されます。
この2つのように表示されない場合は、アップロード先・URL・サーバの設定が誤っている可能性がありますので、単純なミスがないか確認してみてください。
パーミッションの設定
CakePHPは動作時にModelのキャッシュやViewのキャッシュなどの一時ファイルを作成します。そのためWebサーバが一時ファイルを書き込みできるように、書き込み先ディレクトリのパーミッションを適切に設定しておく必要があります。
sshなどでシェルが利用可能な場合は、app/tmp以下を「chmod -R 707」とするなどして、再帰的に丸ごと設定してもよいでしょう。シェルが利用できずFTPのみの場合は以下赤字部分の6つのディレクトリに書き込み権限を与えます。
データベースへの接続設定
今回の環境構築の仕上げとして、データベースへの接続情報を設定します。
app/config/database.php.defaultをコピーまたはリネームして、app/config/database.php を作成します。 database.phpではDATABASE_CONFIGクラスが定義されており、データベースへの接続情報をメンバ変数として定義しています。デフォルトの記述を参考にして、適切な情報に書き換えます。
デフォルトの記述では、DATABASE_CONFIG::$default変数と DATABASE_CONFIG::$test 変数があります。$default変数は動作時に接続先を指定しない場合に自動で選ばれる接続先を書きます。テストに使用するデータベースがある場合や、モデルによって接続先を変更したい場合は任意の変数名でここに接続先を列挙しておくことになります。
適切な情報に書き換えたら、再度、http://gihyo.example.com/cake/にアクセスします。
CakePHPからデータベースに接続に成功した場合は、図6のように表示されます。
接続できなかったときは以下のようなWarningメッセージとともに「Cake is not able to connect to the database.」と表示されます(phpの設定によってはWarningは表示されないことがあります)。
接続情報やデータベース側が適切に設定されているかを確認してください。
以上で一通りの準備が整いましたので、次回からはアプリケーション部分の開発を進めたいと思います。