バーチャルの実世界日記

バーチャルの実世界日記

CentOS5.1でphp-sqliteを利用するときのメモ

2008-04-22 16:49:33 | Weblog

ローカルテスト環境で、某サンプルコードを実行してみると、
Fatal error: Call to undefined function sqlite_open()
が、表示されて、実行できず。エラーそのものは、sqlite_openの関数がない
というものだけど、いままで、SQLiteを使ったことがないのでいろいろ
調べた結果、
yum で、phpをインストールした場合、sqliteは利用できないことがわかった。
下準備として、
# yum install php-devel

そして、マニュアル通り、
# pecl install sqlite
を、行うとmakeエラーが生じインストールできない。

以下、ソースを変更してインストールします。
# wget http://pecl.php.net/get/SQLite-1.0.3.tgz
# tar xzf SQLite-1.0.3.tgz
# cd SQLite-1.0.3
# phpize
# ./configure

ソースの修正
# vi sqlite.c
56行目
static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
↓ 先頭に ”//”を追記してコメントアウトする
// static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };

125行目
PHP_FE(sqlite_open, arg3_force_ref)
↓ arg3_force_refを third_arg_force_refに変更
PHP_FE(sqlite_open, third_arg_force_ref)

126行目
PHP_FE(sqlite_popen, arg3_force_ref)
↓ arg3_force_refを third_arg_force_refに変更
PHP_FE(sqlite_popen, third_arg_force_ref)

を修正後
# make
# make install

最後に、phpの設定ファイルにインストールした、sqlite.soを読み込みように記述し
Apacheを再起動させます。

# vi /etc/php.d/sqlite.php
extension = sqlite.so

# service httpd restart

確認のためにphpinfo()で、sqliteが表示されていれば正常に動作しています。