[PHP-users 10060] Re: PHPからのDBリモートアクセス

Amemiya php-users@php.gr.jp
Thu, 12 Sep 2002 18:30:08 +0900


雨宮です。

自己レスばかりで申し訳ないですが
情報が明確に記述されてませんでした。
訂正します。

正常なアクセスのtcpdump結果ですが

16:28:54.571735 マシンC.1091 > マシンB.5432: S 2258201410:2258201410(0) win 5840 (DF)
16:28:54.571887 マシンB.5432 > マシンC.1091: S 1815104372:1815104372(0) ack 1469142049 win 32120  (DF)
16:28:54.572256 マシンC.1091 > マシンB.5432: . ack 1 win 5840  (DF)
16:28:54.572749 マシンC.1091 > マシンB.5432: P 1:297(296) ack 1 win 5840  (DF)
16:28:54.572855 マシンB.5432 > マシンC.1091: . ack 297 win 31856  (DF)
16:28:54.575824 マシンB.5432 > マシンC.1091: P 1:6(5) ack 297 win 31856  (DF)
16:28:54.576124 マシンC.1091 > マシンC.5432: . ack 6 win 5840  (DF)
16:28:54.616139 マシンB.5432 > マシンC.1091: P 6:16(10) ack 297 win 31856  (DF)

です。


> 
> 自分で調査した結果
> tcpdumpで、DBサーバへのアクセスを見てたんですが
> マシンA(コネクトできないマシン)からのアクセスと
> マシンC(コネクトできる)からのアクセスでは
> tcpdumpの結果が違う事が分かりました。
> 
> 正常なアクセス時のtcpdump結果
> 16:28:54.571735 マシンC.1091 > マシンB.5432: S 69142048:1469142048(0) win 5840  (DF)
> 16:28:54.571887 マシンB.5432 > マシンC.1091: S 1815104372:1815104372(0) ack 1469142049 win 32120  (DF)
> 16:28:54.572256 マシンC.1091 > brabo.5432: . ack 1 win 5840  (DF)
> 16:28:54.572749 マシンC.1091 > マシンB.5432: P 1:297(296) ack 1 win 5840  (DF)
> 16:28:54.572855 マシンB.5432 > マシンC.1091: . ack 297 win 31856  (DF)
> 16:28:54.575824 マシンB.5432 > マシンC.1091: P 1:6(5) ack 297 win 31856  (DF)
> 16:28:54.576124 マシンC.1091 > マシンC.5432: . ack 6 win 5840  (DF)
> 16:28:54.616139 マシンB.5432 > マシンC.1091: P 6:16(10) ack 297 win 31856  (DF)
> 
> 
> アクセスが出来ないマシンからのtcpdump結果
> 
> 16:26:28.400118 マシンA.49334 > マシンB.5432: S 2276320395:2276320395(0) win 32768  (DF)
> 16:26:28.400281 マシンB.5432 > マシンA.49334: S 1644241049:1644241049(0) ack 2276320396 win 32120  (DF)
> 16:26:28.401925 マシンA.49334 > brabo.5432: F 1:1(0) ack 1 win 32768 (DF)
> 16:26:28.402085 マシンB.5432 > マシンA.49334: . ack 2 win 32120 (DF)
> 16:26:28.402471 マシンB.5432 > マシンA.49334: F 1:1(0) ack 2 win 32120 (DF)
> 16:26:28.402855 マシンA.49334 > brabo.5432: . ack 2 win 32768 (DF)
> 
> 
> 最初のコネクションの時点で既にマシンAからのアクセスの場合は
> 情報が足りていないのです。「sackOK」や「[|tcp]」等
> 
> PHPのconfigure時の設定などで、足りないものや
> コンパイルが不十分な為、PHPのモジュールが足りていないのでしょうか?
> 以下にPHP及び、postgresのconfigureオプションを記述しておきます。
> どなたか、有識者の方是非御教授をお願いします。
> 
> postgres configureオプション
> #./configure --with-out=CXX
> 
> PHP configureオプション
> #./configure --enable-sigchild --libdir=/usr/lib/php
>  --includedir=/usr/include --with-pgsql=/usr/local/pgsql
>  --with-nsapi=/usr/netscape/server4 --disable-debug
>  --without-gd --enable-debugger --enable-magic-quotes
>  --enable-track-vars
> 
> >
> > 【使用マシン】
> > マシンA
> > OS:HP-UX11.00
> > DB:Postgres7.0.2(PHPインストール用で使用はしていません)
> > PHP:PHP4.2.2
> >
> > マシンB
> > OS:TruboLinux6.5J
> > DB:postgres7.0.2
> > PHP:PHP3.0.18-i18n-ja-2
> >
> > マシンC
> > OS:TurboLinux7
> > DB:postgres7.1.2
> > PHP:PHP4.0.6
> >
> > 【環境】
> > 三つのマシンとも、私がroot権限で自由に使用できます。
> > また、ネットワーク的も同一セグメント上にあり
> > FireWall等のセキュリティは一切してません。
> >
> > それぞれのマシンで、hosts.allowやipchainsなどで
> > アクセス制限も掛けていませんし、pg_hda.confでも
> > そのセグメントは全て、アクセス可能の設定を行っています。
> >
> > pg_hba.confの設定です。
> > host         all         192.168.20.0  255.255.255.0   trust
> >
> > この状況で下記のマシンAからマシンBにPHPでアクセスした場合に
> > 下記の様なエラーがブラウザに表示されます。
> >
> > Warning: pg_connect() unable to connect to PostgreSQL server:
> > connectDBStart() -- connect() failed: Invalid argument Is the
> > postmaster running (with -i) at 'dust' and accepting connections
> > on TCP/IP port '5432'? in /public/htdocs/phptest.php on line 21
> > It failed to the implementation
> >
> >
> > このエラー内容では、postmasterが"-i"オプションで
> > 動作していないと、言っている様ですが
> > マシンCからマシンBへアクセスする際は、エラーが表示されず
> > コネクトの値が表示されます。
> >
> > エラーメッセージを検索したりはしたのですが、
> > 検索エンジンなどでは、発見できなかったので
> > 皆様にご協力を仰ぎたいと思っております。
> >
> > また、たりない情報や不適切な発言等ありましたら
> > 言っていただければ、出来うる限り改善します。
> >
> > ご迷惑を掛けてすいません。


---------------------------
雨宮 薫
Amemiya kaoru

e-mail:k_all@infoseek.jp

------------------------------------------------------------------------
★秋風が心地よいこの季節 “住み替え”の季節です! by infoseek
 http://house.www.infoseek.co.jp/House/top?sv=RF&svx=971148