CakePHPをAN HTTPD+SQLiteで動かす

以前から使ってみたかった、CakePHPを試してみました。

うちのこの環境で、CakePHPのScaffoldingを一通り動作させることができました。
ただその際、環境特有と思われる設定や変更が発生したので、メモ。

環境

【AN HTTPD関係】

mod_rewriteは使えないので、CakePHPmod_rewriteを使わないモードに切り替える。

/app/config/core.phpを変更

下のような行のコメントを外す:

define ('BASE_URL', env('SCRIPT_NAME'));

参考:A.5. mod_rewrite について

Routesの設定

参考:4.3. Routes の設定

REQUEST_URIの取得部分を変更

AN HTTPDでは、「/index.php/control_name/action_name/...」という形式のリクエストがされたとき、「index.php」より後の部分「/control_name/action_name/...」がenv('REQUEST_URI')から抜けてしまう模様?
そのため、/cake/basics.phpのsetUri関数内を、以下のように変更。

if (env('HTTP_X_REWRITE_URL')) {
    $uri = env('HTTP_X_REWRITE_URL');
} elseif (env('REQUEST_URI')) {
    //$uri = env('REQUEST_URI');
    $uri = env('REQUEST_URI') . env('ORIG_PATH_INFO');	// ここを変更
} else {
    :

SQLite関係】

/cake/libs/dbo/dbo_sqlite.phpを変更

SQLのINSERT文で、プライマリキーであるidの値の指定が、id='' となっていて、datatype errorが発生してしまう。dbo_sqlite.phpの不具合?
解決方法は以下の記事が参考になりました。感謝。
cakePHPとSQLite(&MySQL) - CPA-LABテクニカル