田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

PHP5.4のビルドインサーバーでCakephpを動かす。

着実にruby on rails に近づいてきている感じがします。
(ほとんど変わりがなくなったらrubyからphpに戻るかも・・・今でもできないことは無いでしょうが、環境の準備が面倒くさいです。)
で、今回はビルドインサーバーでCakephpを動かしてみます。
(会社のプロジェクトで言語選定をしているので、とりあえずPHPを調査することに・・・)

コマンドはこれです。

php -S localhost:8000 -t /path/to/cakephp2/app/webroot

はい簡単ですね。
コマンドが長くてめんどくさかったら「.bashrc」にコマンド登録しとけばOK
(あと、「.htaccess」あたりがどうなるか、ちょっとだけ調査が必要そうです。多分無くても動きそうな気がしますが。。。)

追記:完全な挙動はしませんでした。やはり「.htaccess」の設定はいるっぽいです。・・・どうするかね
とりあえずCakephp3が出るまではruby on railsに落ち着きそう。

さらに追記:と動かないと思ったら解決案が有りました。
(わざわざビルドインサーバーを使う理由も無くなってきましたが・・・)

1.「/app/Console」に「server_router.php」とかでファイルを作成

2.「server_router.php」を編集

<?php
$ds = DIRECTORY_SEPARATOR;
$app = dirname(dirname(__FILE__));
$www_root = $app . $ds . 'webroot';

$url = parse_url($_SERVER['REQUEST_URI']);
$resource = $www_root . $ds . $url['path'];

if (file_exists($resource)) {
    return false; // serve the requested resource as-is.
} else {
    $_SERVER['PHP_SELF'] = 'index.php';
    require $www_root . $ds . 'index.php';
}

3.起動

$ php -S localhost:8000 -t "../webroot" server_router.php

これで行けます。
細かい動作は確認していないので微妙ですが。。。