- PR -

PHPからPOSTGRESに接続できない。

1
投稿者投稿内容
いずみ
会議室デビュー日: 2005/06/16
投稿数: 19
投稿日時: 2005-10-04 17:48
FC4にPHP5.0.5をソースからコンパイルしてPHPからPOSTGRESに接続した時以下のエラーがでました。Fatal error: call to undefind function pg_connect() in

以前、REDHAT9.0の時はRPMでやっていたのでPGSQL−PHPをインストール
したら直りました。今回はPOSTGRES 、APACHEも含めソースからやっています。
PHPコンパイル時のCONFIGUREの問題だと思うのですがどこで指定していいか
解りません。どなたか教えてください。
  
waio
会議室デビュー日: 2005/08/03
投稿数: 7
投稿日時: 2005-10-04 18:25
こんばんわ。
スレッド重複してますよ。

何はともあれ2つ質問があります。
以下に回答してもらえるとこちらも回答ができると思います。

1. PHPのconfigure時のオプションは何をつけましたか?
(ソースディレクトリのconfig.statusに履歴があるはずです。)
 またconfigure時の checking for PostgreSQL support... の結果はyesでしたでしょうか?

2. postgresqlはソースからのインストールでしょうか?RPMでのインストールでしょうか?
またPHPと同一ホストへのインストールでしょうか?

追記
3. phpinfo()の結果PostgreSQL のサポートの欄は存在するのでしょうか?
  以下ソースを適当な名前でapacheの公開ディレクトリに設置して、ブラウザでアクセスすることで
  参照できると思います。
 
 <?php
phpinfo ();
?>

[ メッセージ編集済み 編集者: waio 編集日時 2005-10-04 18:42 ]
いずみ
会議室デビュー日: 2005/06/16
投稿数: 19
投稿日時: 2005-10-04 20:04
引用:

waioさんの書き込み (2005-10-04 18:25) より:
>こんばんわ。
>スレッド重複してますよ。

すいません。応答がないので2回クリックしてしまいました。


>1. PHPのconfigure時のオプションは何をつけましたか?
>(ソースディレクトリのconfig.statusに履歴があるはずです。)

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5/etc --with-config-file-scan-dir=/usr/local/php5/etc/php.d --with-layout=GNU --enable-mbstring --with-libmbfl --enable-mbregex --with-pgsql=shared,/usr/local/pgsql --with-regex=system


> またconfigure時の checking for PostgreSQL support... の結果はyesでしたでしょうか?

覚えていないので再度確認してみます。


>2. postgresqlはソースからのインストールでしょうか?RPMでのインストールでしょ>うか?

ソースです。本にのっていたのでちょっと古いです。7.4.6

> またPHPと同一ホストへのインストールでしょうか?

そうです。


追記
3. phpinfo()の結果PostgreSQL のサポートの欄は存在するのでしょうか?
  以下ソースを適当な名前でapacheの公開ディレクトリに設置して、ブラウザでアクセスすることで
  参照できると思います。
 
 <?php
phpinfo ();
?>

こんなのはありましたが。

additional .ini files parsed /usr/local/php5/etc/php.d/pgsql.
[ メッセージ編集済み 編集者: waio 編集日時 2005-10-04 18:42 ]

waio
会議室デビュー日: 2005/08/03
投稿数: 7
投稿日時: 2005-10-05 00:54
waioです。

どうやらconfigureオプションの--with-pgsql=shared,/usr/local/pgsql
が問題のようです。

php.iniに以下は記述されていますか?
extension_dir = /usr/local/php5/lib/php/20041030(pgsql.soが設置されているディレクトリ)
extension = pgsql.so

(extension_dir については当方の手元の環境のphp-5.0.5を
リコンパイルした結果できたディレクトリです。いずみ様の環境にあわせてください)

PHPをリコンパイル後、php.iniが従来のままだと
Fatal error: call to undefind function pg_connect() in
となりましたが、
extensionの設定をphp.iniに記述したところ問題なく接続できました。

なお共有ライブラリに関しては以下のURLが参考になります。
http://ns1.php.gr.jp/pipermail/php-users/2002-August/009435.html

いずみ
会議室デビュー日: 2005/06/16
投稿数: 19
投稿日時: 2005-10-05 22:14
[quote]
waioさんの書き込み (2005-10-05 00:54) より:
waioです。



>.iniに以下は記述されていますか?
>extension_dir = /usr/local/php5/lib/php/20041030(pgsql.soが設置されているディ>レクトリ)
>extension = pgsql.so

waio様。

お蔭様で動きました。有難うございました。

[ メッセージ編集済み 編集者: いずみ 編集日時 2005-10-05 22:15 ]
1

スキルアップ/キャリアアップ(JOB@IT)