[pgsql-jp: 28469] Re: PHPでPostgreSQL モジュールインストール失敗。
Takao Kato
sirius @ jp.fujitsu.com
2002年 12月 24日 (火) 16:38:14 JST
自己フォローです。
良く読み直すと意図するところは正しいと思っているのですが、初めて読む人
には勘違いすると思われる文言が....
> PHP基本部分への拡張機構としてPostgreSQL関連機構(pg_*)を追加する際には
> (コンパイルして出来上がる)pgsql.soが必要になりますが、PHP基本部分に
> PostgreSQL関連機構を組み込んでしまう場合には不要です。
>
> 逆に、基本部分として組み込む場合に必要なのがPostgreSQL『の』ライブラリ
> 群(libpq.so*とincludeファイル)です。前述のように --with-pgsql をオプショ
> ンとして configure をかけると必要なライブラリを探索してMakefileに自動
> 反映されます。見付からなかったりすると「必要なものが見付からんぞ」とお
> 叱りが出力されますが、たいていは場所を指定してやることで回避可能です。
ダウト。
どっちも「PostgreSQLのライブラリ群は必要」ですから、前者の文はこれだと
前提としてPostgreSQLがある上でpgsql.soが必要にも関わらず、PostgreSQLの
ライブラリ群が不要に読めます。
正しく(?)書くと、
PostgreSQLのライブラリ群(libpq.so*とinclude)はPHPにPostgreSQL機
構(*1)を入れる場合には必要です。PHPの拡張機構でPostgreSQL機構を
追加する場合、別途PostgreSQLの拡張機構(extentions/pgsql)の追加が
必要です。この際、pgsql.soが生成されるので、pgsql.soをphp.iniに
追加する必要があります。拡張機構として組み込んだ場合、PHP基本機
構の再インストール不要の場合、拡張機構だけ再インストール/追加を
実行することが可能です。(ライブラリのAPIなど変更されていなければ
不要でしょうが)
これに対して、PHP基本機構にPostgreSQL機構を組み入れる場合(*2)は
基本機構に組み入れられるため、拡張機構の追加処理は不要です。た
だし、PostgreSQLの更新時には注意が必要です。ライブラリを静的に組
み込んでしまうと、PostgreSQLのバージョンアップごとにPHP全体を再
インストールする必要があります。(動的ライブラリ/API無変更なら話
は別ですが)
*1: pg_*と言うPHP関数群
*2: --with-pgsql を指定しconfigureを実行&インストール
ですね。お詫びして訂正します。
----
加藤@川崎
お便りは kato @ lantc.cs.fujitsu.co.jp まで
pgsql-jp メーリングリストの案内