Cakephp+SQLite
■半日がかり
かーかーりましたねェー、SQLite。動かすまでに一苦労。
MySQLと違って、データベースのサーバを用意する必要が無くデータベースを格納するファイル1つだけ。サーバの引越しとかでも設定いらずですぐ動いてくれる軽快さ。
AndroidにもSQLiteが入ってるそう。
ということでちょっと使ってみようと思ったワケです。が。簡単なDB作ってCakePHPで試しに入れてみたが、これがさっぱり認識してくれない。
いくらごにょごにょイジってもなんともならんから、sqlite_open(‘test.db’)とだけ打ち込んだファイルを作って開いてみると反応なし。エラーログを見ると
[Thu Jul 14 14:14:39 2011] [error] [client XXX.XXX.XXX.XXX] PHP Fatal error: Call to undefined function sqlite_open() in /var/www/test.php on line 3
sqlite_open関数が未定義になってやんの。
つまりこれ、サーバにSQLiteが入ってないということ?
Fedora13では、パッケージでphpをインストールするとsqliteはwitohout、入ってないの。
自前で入れろってことですか。ですね。
1.以下からサーバに入ってるバージョンのPHPをダウンロード。
php本家:http://www.php.net/downloads.php
2.サーバに放り込んで解凍して、/ext/sqlite のディレクトリに入る。
tar zxvf php-5.3.6.tar.gz
cd php-5.3.6/ext/sqlite
3.なんかごちゃごちゃする。何しているか実のところよく分かっていない。
phpize
./configure
make
make install
この4工程を入力すればインストール完了。
/extに入ってるPHPの拡張モジュールは、とりあえず馬鹿の一つ覚えのようにこの4つのコマンドを打ち込めばインストールできる、みたい。
4./etc/php.dフォルダにsqlite.iniファイルを新規作成してextension=sqlite.soを記述。
5.最後にapache再起動。
/etc/rc.d/init.d/httpd restart
めでたく入りましたぁ!
この方法の欠点は、PHPのバージョンが上がってしまうと、その都度同じ作業をしないといけなくなるらしい。
5.3.6よりバージョンがあがったら、また検証してみましょう。
今回、こちらのサイトを参考にさせていただきました。
肉とご飯と甘いもの:http://d.hatena.ne.jp/sotarok/20080607/php_5_with_sqlite










