« | »

2011.07.14

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が入ってないということ?
phpinfo

phpinfo


 
 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
 

データベースOK

データベースOK

SQLite確認

SQLite確認


めでたく入りましたぁ!
 
 この方法の欠点は、PHPのバージョンが上がってしまうと、その都度同じ作業をしないといけなくなるらしい。
5.3.6よりバージョンがあがったら、また検証してみましょう。
 
今回、こちらのサイトを参考にさせていただきました。
肉とご飯と甘いもの:http://d.hatena.ne.jp/sotarok/20080607/php_5_with_sqlite

Comment & Trackback

Comments and Trackback are closed.

No comments.