CentOS5.4 / PHP5.1.6 / MDB2 / SQLite2の設定
しかしSQLiteをPECLでインストールするも失敗する。
そこでソースをダウンロードしてインストールする。
cd /usr/local/src/
wget http://pecl.php.net/get/SQLite-1.0.3.tgz
tar zxvf SQLite-1.0.3.tgz
cd SQLite-1.0.3
phpize
./configure
問題のある部分のソースを以下のように修正
cp -a sqlite.c sqlite.c.org
vi sqlite.cdiff sqlite.c sqlite.c.org
56c56< //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,128c125,126< //PHP_FE(sqlite_open, arg3_force_ref)< PHP_FE(sqlite_open, third_arg_force_ref)< //PHP_FE(sqlite_popen, arg3_force_ref)< PHP_FE(sqlite_popen, third_arg_force_ref)
- -
> PHP_FE(sqlite_open, arg3_force_ref)
> PHP_FE(sqlite_popen, arg3_force_ref)
インストール成功
make
make install
service httpd restart
PEARのMDB2とsqliteのドライバのMDB2_Driver_sqliteをインストールする。
しかし何故かSegmentation Faultが起こってMDB2が動かない。
そもそもPECLのSQLiteはメンテナンスされてないので、PHPのソースに付属してくるSQLiteを入れる。
cd /usr/local/src/
wget http://museum.php.net/php5/php-5.1.6.tar.gz
tar zxvf php-5.1.6.tar.gz
cd php-5.1.6/ext/sqlite
phpize
./configure
make
cp modules/sqlite.so /usr/lib/php/modules/
echo extension=sqlite.so > /etc/php.d/sqlite.ini
service httpd restart