cakephp-instaweb で始めるCakePHP

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を始めたい!という方にはおすすめですね!

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ