パッケージで入れたPHP 5に最新版sqlite拡張を入れる
複雑な事情はあれど、とりあえずPHP5をパッケージで入れた人むけ。
PHP5の最新版をCentOS(Fedoraでも)にパッケージで入れる方法は、こっちに書いてある。⇒ #10 PHPのインストール・設定::VMWare×CentOS5 Windowsでカンタン開発環境 - 肉とご飯と甘いもの @ sotarok
で、実はこれで入れると、 without-sqlite されていて、php-pdo 入れれば sqlite3 系は使えるけど、sqlite2系の関数が使えない。
そいういうときはPECLだ!
と思ったら
% pecl install sqlite downloading SQLite-1.0.3.tgz ... Starting to download SQLite-1.0.3.tgz (371,189 bytes) ..................................done: 371,189 bytes 50 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 building in /var/tmp/pear-build-root/SQLite-1.0.3 running: /tmp/pear/download/SQLite-1.0.3/configure (snip...) running: make /bin/sh /var/tmp/pear-build-root/SQLite-1.0.3/libtool --mode=compile gcc -I/tmp/pear/download/SQLite-1.0.3/libsqlite/src -I. -I/tmp/pear/download/SQLite-1.0.3 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/SQLite-1.0.3/include -I/var/tmp/pear-build-root/SQLite-1.0.3/main -I/tmp/pear/download/SQLite-1.0.3 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/SQLite-1.0.3/sqlite.c -o sqlite.lo mkdir .libs gcc -I/tmp/pear/download/SQLite-1.0.3/libsqlite/src -I. -I/tmp/pear/download/SQLite-1.0.3 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/SQLite-1.0.3/include -I/var/tmp/pear-build-root/SQLite-1.0.3/main -I/tmp/pear/download/SQLite-1.0.3 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/SQLite-1.0.3/sqlite.c -fPIC -DPIC -o .libs/sqlite.o /tmp/pear/download/SQLite-1.0.3/sqlite.c:56: error: 'BYREF_NONE' undeclared here (not in a function) /tmp/pear/download/SQLite-1.0.3/sqlite.c:56: error: 'BYREF_FORCE' undeclared here (not in a function) /tmp/pear/download/SQLite-1.0.3/sqlite.c:125: warning: initialization from incompatible pointer type /tmp/pear/download/SQLite-1.0.3/sqlite.c:126: warning: initialization from incompatible pointer type make: *** [sqlite.lo] エラー 1 ERROR: `make' failed
make でこける。。。
解凍
% tar zxvf php-5.2.6.tar.gz
あとはPECLをインストールするかのように
% phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 % ./configure (snip...) % make (snip...) %sudo make install
iniファイルの設置も忘れずに
% sudo vi /etc/php.d/sqlite.ini
で、内容が
extension=sqlite.so
apacheのリロードも忘れずに。
% sudo /etc/init.d/httpd graceful