人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【総額1000ポイント】PHPとPostgreSQLの連携がうまくいきません。
やたら長くなったので、別ページに詳細を載せました。助けてください。なんとか宜しくお願い致します。
http://d.hatena.ne.jp/honestaholic/20061101#p1



●質問者: honestaholic
●カテゴリ:コンピュータ
✍キーワード:PHP postgreSQL ポイント 連携
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● Yota
●5ポイント

yumではPostgreSQLのバージョンが7のところ、8をインストールしようとしているため、はなしがややこしくなっていますね。

php-pgsqlというパッケージが、PostgreSQL7用にできているのではないですか。

わたしが考える解決策。

1.postgresql8とphp-pgsqlで同バージョンのrpmを探してくる。

2.PHPとPostgreSQLをソースからインストールする。

3.どうしてもPostgreSQL8でなければいけない理由を考えてみて、なければyumのパッケージに従う。

◎質問者からの返答

pgsql8は、その後の追加モジュールのために必須です。

1と2の両方でいろいろ検索しているのですが、決定的なものを見つけられません・・・


2 ● Yota
●0ポイント

yumではPostgreSQLのバージョンが7のところ、8をインストールしようとしているため、はなしがややこしくなっていますね。

php-pgsqlというパッケージが、PostgreSQL7用にできているのではないですか。

わたしが考える解決策。

1.postgresql8とphp-pgsqlで同バージョンのrpmを探してくる。

2.PHPとPostgreSQLをソースからインストールする。

3.どうしてもPostgreSQL8でなければいけない理由を考えてみて、なければyumのパッケージに従う。

◎質問者からの返答

なぜか多重投稿


3 ● furutanian
●20ポイント

RHEL や CentOS を使う価値の大半は、オフィシャルバイナリパッケージ以外を利用しないことによる、管理のしやすさです。

CentOS4 を使う場合、postgresql-7.4.7 を使うに越したことはないですが、どうしても 8 系を使いたい場合は、RHEL に近い Fedora のパッケージを利用するといいでしょう。

Fedora 4,5,6 で、以下のバージョンが収録されています(5が無難かな)。

Fedora Core 4: postgresql-8.0.3-1.i386.rpm

ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/4/i386/os/Fedora/RPMS...

Fedora Core 5: postgresql-8.1.3-1.i386.rpm

ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/5/i386/os/Fedora/RPMS...

Fedora Core 6: postgresql-8.1.4-1.1.i386.rpm

ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/6/i386/os/Fedora/RPMS...

関連する周辺パッケージについて個々に、rpm -e, rpm -ivh ですべて入れ替えてみましょう。

◎質問者からの返答

postgresql8はすでに入っています・・・

入らなくて困っているのは、php側のモジュールであるphp-pgsqlなのですorz


4 ● kunyami
●20ポイント

CentOS 4では実施していないのですが、CentOS 3では以下のような方法で可能でした。

以下はCentOS 4のファイルで記述しています。

yumで

postgresql-libs-7.4.13-2.RHEL4.1.i386.rpm

をインストールすることでphp-pgsqlの要求は満たすはずです。

これはクライアント用のライブラリですので、PostgreSQL本体のバージョンが8.1でも利用できます。

これに加えてphp-pgsqlをインストールします。

PostgreSQL8.1.5のパッケージ郡を必要に応じてインストールします。

これは最低限postgresql-server-8.1.5-6PGDG.i686.rpmがあれば大丈夫です。

◎質問者からの返答

なるほどなるほど・・・


5 ● O-saka
●850ポイント

(PostgreSQL 8.1.5 は本家のパッケージを利用しているものとして説明します)

CentOS 4.4 標準の PostgreSQL は 7.1.13 ですが、このパッケージが提供するライブラリは libpq.so.3 です。対して PostgreSQL 本家で提供されている PostgreSQL 8.1.5 が提供するライブラリは libpq.so.4 です。

CentOS 4.4 標準のパッケージ群で PostgreSQL を要求するものは、当然、前者である libpq.so.3 を必要とします。今回 honestaholic さんは、PostgreSQL 8.1.5 をインストールした上で、CentOS 4.4 標準の PHP をインストールしようとしたため、yum が次のような動作をしたものと考えられます。

1. php-pgsql (centos) が libpq.so.3 を必要としたため、既にインストールされている postgresql-libs-8.1.5-3PGDG.i686.rpm (postgres) を postgresql-libs-7.1.13-2.RHEL4.1.i386.rpm (centos) に差し替えようとした

2. しかし postgresql-server-8.1.5-3PGDG.i686.rpm (postgresql) などが libpq.so.4 を必要とするため、差し替えられない

3. 依存関係エラーとして終了

解決策はいくつか存在しますが、PHP のリビルドがよろしいのではないかと思います。

1. http://ftp.riken.jp/Linux/centos/4.4/centosplus/SRPMS/php-5.0.4-... を取得。5.0.4-5 は回答時点の最新版ですので、さらに新しいバージョンが存在しないか、事前に確認して下さい

2. rpmbuild --rebuild php-5.0.4-5.centos4.src.rpm を実行。この際、依存関係でエラーが出るかもしれませんが、エラーメッセージを確認の上、yum で不足しているパッケージをインストールして下さい。ただし、postgresql-devel だけは本家の postgresql-devel-8.1.5-3PGDG.i686.rpm を使うようにするのを忘れないで下さい

3. /usr/src/redhat/RPMS/i386 に php-pgsql-5.0.4-5.centos4.i386.rpm が生成されていますので、rpm -Uvh php-pgsql-5.0.4-5.centos4.i386.rpm としてインストールして下さい

4. 独自に生成した php-pgsql が上書きされないよう、/etc/yum.conf に exclude=php-pgsql という行を追加して下さい

以上です。本当は 2. で rpmbuild する前に spec ファイルを編集し、独自の Release 番号をつけた方がよいのですが、必須ではないのと、Linux 初心者であるということで、今回は省略しました。お時間が空いた時にでも、調べてみることをお勧めします。

また 4. によりセキュリティ修正などが行われた場合でも、php-pgsql は yum によって自動的にアップデートされなくなりますので、ご自身で管理される必要があるのを忘れない下さい。

◎質問者からの返答

この壷はよいものだ


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ