yumで入れたPHP5でsqliteを使う ~phpize, pecl, sqlite~

SentOS に PHP5 を yum で入れた場合に、SQLite を使いたくて、でもなかなか使えなくて苦労した。その時のメモ。

phpize と pecl を使えるようにする

まず、phpizepecl を利用できるようになってないとダメらしい。使えるようになってない人は、この手順で使えるようにしないといけない。
参考にさせて頂いたのはこちらのサイト

# yum install php-devel
# yum install php-pear

php-pear を入れると pecl が使えるようになるようだ。

SQLiteをインストールする

とりあえずSQLiteを入れようとしてみる。
さっきインストールした pecl を使って、

# pecl install sqlite

とやってみる。

が、

make: *** [sqlite.lo] エラー 1
ERROR: `make' failed

となって失敗したようだ。
何がいけないのかと調べてみたら、次のサイトに答えが載っていた。

どうも元のソースに問題があるらしく、自分でソースを修正して再コンパイルする手順のようだ。解説にある通りにやってみる。

# 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行目:arg3_force_refthird_arg_force_ref に変更。

誤:PHP_FE(sqlite_open, arg3_force_ref)
正:PHP_FE(sqlite_open, third_arg_force_ref)

126行目:arg3_force_refthird_arg_force_refに変更。

誤:PHP_FE(sqlite_popen, arg3_force_ref)
正:PHP_FE(sqlite_popen, third_arg_force_ref)

そしたら、make して make install する。

# make
# make install

PHPの設定ファイルにインストールした sqlite.so を読み込みように記述する。

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

そして、Apacheを再起動。

# service httpd restart

ちゃんと動いているか確認する

phpinfo()を確認してsqliteが表示されていれば成功!


プロフィール

ときにはデザイナ、ときにはディレクタ、ときにはプログラマ、ときには何でも屋と、ウェブの世界で未熟ながらもいろいろやっている、コヤナギトモヤです。

ツイッター上ではこのヒト。
@tomk79

RSSフィード

ページの先頭へ戻る