cakephp-instaweb で始めるCakePHP
Debian GNU/Linuxのパッケージでcakephpを検索してみると、cakephp-instawebというパッケージが見つかりました。調べてみると、DjangoのrunserverやRailsのscript/serverのようなものらしいです。つまり、Apacheのような本格的なWebサーバーがなくても開発を始められるということでしょうか。試してみました。
追記2009/01/20 10:11・Debianの公式パッケージでインストールするCakePHPのバージョンはCakePHP1.2 RC2です
インストール
まず、cakephpでパッケージ検索すると、
tanaka@debian:~$ apt-cache search cakephp
cakephp - MVC rapid application development framework for PHP
cakephp-instaweb - Development webserver for CakePHP applications
cakephp-scripts - MVC rapid application development framework for PHP (scripts)
3件見つかりました。では、インストールしてみましょう。
tanaka@debian:~$ sudo apt-get install cakephp-instaweb
# (略)
アップグレード: 0 個、新規インストール: 15 個、削除: 0 個、保留: 0 個。
7273kB のアーカイブを取得する必要があります。
この操作後に追加で 26.6MB のディスク容量が消費されます。
続行しますか [Y/n]? Y
結構多くのパッケージが必要のようです。(PHPやPythonの実行環境もあわせてインストールします)さて、cakephpはどこに展開されているのでしょうか。どこで覚えたのか忘れましたが、debianではこういったスクリプト言語系の共有物は/usr/shareに配置されるものです。WikiのmoinmoinやブログシステムのMTOSなどがそうだった気がします。すぐに見つかりました。
tanaka@debian:~$ ls /usr/share/php/cake/
app bootstrap.php console libs tests
basics.php config dispatcher.php scripts
プロジェクトの作成
とりあえず、appをコピーして自分のプロジェクトを作りましょう。
tanaka@debian:~$ cd ~
tanaka@debian:~$ mkdir projects
tanaka@debian:~$ cd projects
tanaka@debian:~/projects$ cp -r /usr/share/php/cake/app myapp
tanaka@debian:~/projects$ vim myapp/webroot/index.php
appだけコピーしたので、cakeライブラリへのパス(60行目くらいのCAKE_CORE_INCLUDE_PATH)を変更して、アプリケーションがコアのライブラリを参照できるようにします。
define('CAKE_CORE_INCLUDE_PATH', DS . 'usr' . DS . 'share' . DS . 'php' . DS . 'cake');
今回は解説いたしませんが、もしApacheを利用するときはこのあとバーチャルホストの設定などに進みます。
サーバーを起動
次にヘルプを見てみます。
tanaka@debian:~/projects$ cakephp-instaweb -h
Usage: cakephp-instaweb [webroot]
Options:
-h, --help show this help message and exit
-p PORT, --port=PORT serve on port PORT (default: 3000)
-i INTERFACE, --interface=INTERFACE
interface to serve from (default: 127.0.0.1)
-r, --disable-rewrite
disable URL rewriting
-q, --quiet quiet mode
ヘルプを見たところ、webrootのパスを指定すると良いみたいです
tanaka@debian:~/projects$ cakephp-instaweb myapp/webroot/
CakePHP development server is running at http://localhost:3000/
Quit the server with CONTROL-C.
起動しましたが、アクセスできません。どうやらデフォルトではlocalhostからしかアクセスできないようです。VMWare Fusion上のdebianですので、mac本体向けNICのIPを指定すればいけそうです。(/sbin/ifconfigで、ネットワークインタフェースの情報を調べてみてください)
tanaka@debian:~/projects$ cakephp-instaweb -i 172.16.225.130 myapp/webroot
CakePHP development server is running at http://localhost:3000/
Quit the server with CONTROL-C.
[20/Jan/2009 04:11:30] "GET /"
[20/Jan/2009 04:11:31] "GET /css/cake.generic.css"
[20/Jan/2009 04:11:31] "GET /img/cake.power.gif"
[20/Jan/2009 04:11:31] "GET /img/cake.icon.gif"
↑起動して、(ホスト名):3000にアクセスしたところ
うまくいきました。これからSecurity.saltや一時ディレクトリの書き込み権限、DB設定などを始めるところまでいきました。
まとめ
Apacheを使わずにCakePHPの開発が始められるツールcakephp-instawebをご紹介しました。Apacheのことはよくわからないけど、Debianについては多少の経験があり、CakePHPを始めたい!という方にはおすすめですね!