7月 24, 2006 2

PECL SQLite が FedoraCore4 でインストール出来ない場合

By in PHP

ちょっと必要に迫られ PHP のライブラリ Pecl の SQLite をインストールすることに。
なんとかインストールは出来たものの、いつもの通りすんなりは行きませんでした…

通常ですと、

$ pecl install sqlite

で済むはずが、どうしてもエラーが出る…

/tmp/pear/cache/SQLite-1.0.3/sqlite.c:56: error: ‘BYREF_NONE’ undeclared here (not in a function)
/tmp/pear/cache/SQLite-1.0.3/sqlite.c:56: error: ‘BYREF_FORCE’ undeclared here (not in a function)

BYREF_NONE と BYREF_FORCE が定義されていないっすといった感じであろうか。困ったので検索しまくっていたらまたもや直接的な対処方法を発見。

対処方法: FC4 PHP and SQLite

ざっくり読むと FC4 だと問題が出る、解決方法はこうだ!とあります。なので、その通りソースをダウンロードしてインストールすることにします。

$ 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

で、ここでソースを直接編集します。

Line: 56 行目をコメントアウト /* ~ */ で囲う

/* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */

Line: 125, 126 の arg3_force_ref を third_arg_force_ref に変更

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)

でソースを編集し終わったら make してインストール。

$ make
$ make install

これで最後に php.ini で extension の設定をすれば、無事 SQLite のインストールは完了です。

※ 確認方法は、phpinfo() に SQLite が表示されていれば OK です。

2 Responses to “PECL SQLite が FedoraCore4 でインストール出来ない場合”

  1. u2 より:

    とっても助かりました。
    php3_sqliteもコンパイル通らないし途方にくれていたのです。

  2. plastik より:

    コメントありがとうございます!
    自分も文中にある blog で解決方法を知ったのですが、なかなかソース変更までの対処って難しいですよねぇ。

Leave a Reply