[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 メーリングリストの案内