You haven't reply to me for this question.

Can you connect PostgreSQL server from other machine?

Please do not open new bug report at least while I'm still
trying to help you.

--
Yasuo Ohgaki

[EMAIL PROTECTED] wrote:

> From:             [EMAIL PROTECTED]
> Operating system: Solaris 2.8
> PHP version:      4.1.1
> PHP Bug Type:     PostgreSQL related
> Bug description:  pg_connect failing on iPlanet 4.1 nsapi
> 
> Revisiting bug #15282, I am unable to connect to a remote PostgreSQL
> database using server parsed php. I can connect when the script is run:
> 
>       a). On the command line
>       b). As a CGI binary
>       c.) Using a perl script
>       d.) Using psql
> 
> Postmaster on the remote server IS running with the '-i' option, even
> though the error message in the web server logs reads:
> 
>      [29/Jan/2002:22:50:18] info (14848): for host b-39-117-res1.mts.net
>       trying to POST /members.php, PHP_log_message reports: PHP Warning: 
>       Unable to connect to PostgreSQL server:  connectDBStart() --
> connect()
>       failed: No such file or directory
>               Is the postmaster running (with -i) at 'db1'
>               and accepting connections on TCP/IP port 5432?
>        in /usr/local/etc/httpd/htdocs/cardp.ca/members.php on line 100
> 
> No other errors appear and the server keeps on running.
> 
> The results of running snoop on the interfaces reveals that instead of the
> expected SYN/ACK, the system initiating the connection sends SYN/RST.
> 
> The connection fails identically when using either pg_connect or
> pg_pconnect.
> 
> Php configuration is as shown below, taken from the original report. As
> well, the contents of the script are included.
> 
> After the bug had been closed as bogus, I asked [EMAIL PROTECTED] if he
> could be more specific in his diagnosis that this behaviour is expected
> and in the manual. His only reply was that postgres needs to be run using
> the -i option, which I have already stated is the case. If it weren't,
> none of the other connections would suceed either.
> 
> Connections from the sames server to the same remote database using mysql
> as the database do not fail. Niether does running the script using apache
> as the web server. Unfortunately, these are not valid options in our
> production environment.
> 
> Any insight would be greatly appreciated.
> 
> - Dave Ruppel
> 
> From bug #15282:
> 
>    [29 Jan 1:56pm] [EMAIL PROTECTED] 
> 
>       When attempting to connecting to a remote database using
>       pg_connect(host=dbhost user=dbuser dbname=dbname), the operation
> fails.
> 
>       I can connect using psql from the command line or through a perl
> script
>       as any user. Running php as a CGI binary also works. However, when
>       running as an nsapi, the connection fails. A quick look using snoop
>       shows that the failed connection appears to be sending SYN/RST
> instead
>       of SYN/ACK (which is what is seen during a successful connection).
> 
>       Here's my system details:
>               OS: Solaris 2.8
>               Web Server: iPlanet 4.1
>               PHP version: php 4.1.1
>               PHP configure options:
>                       ./configure --with-nsapi=/usr/local/iws41 \
>                               --with-pgsql=/usr/local/pgsql \
>                               --enable-libgcc
>               PostgreSQL version: 7.0.3
>               
>       For what it's worth, connections to a mysql database between the
> same
>       systems works without a hitch.
> 
>       Any suggestions would be appreciated.
> 
> 
>    [29 Jan 8:42pm] [EMAIL PROTECTED] 
> 
>       Could you take a look at web server error log? 
>       Do you have anything related? (segfault, etc)
> 
>       Could you run iPlanet under gdb? (to see if it is exting or
>       segfaulting)
> 
>       Do you quote connection string?
>       Do you get any error message from pg_connect? 
>       Do you have multiple libpq? (find / -name "libpq*")
> 
>       Do you have the same problem with snapshot?
>       http://snaps.php.net/
> 
>       Attach *complete* script even if it is a few lines next time.
> 
>    [30 Jan 12:11am] [EMAIL PROTECTED] 
> 
>       I've also tried using the current CVS (01/26/2002) with no luck. The
> are
>       no multiple copies of libpq, it's a new system.
> 
>       I haven't tried running iPlanet under gdb yet, that'll be something
> to
>       try tommorow.
> 
>       In the mean time, here's the error from the logs:
> 
>       [29/Jan/2002:22:50:18] info (14848): for host b-39-117-res1.mts.net
>       trying to POST /members.php, PHP_log_message reports: PHP Warning: 
>       Unable to connect to PostgreSQL server:  connectDBStart() --
> connect()
>       failed: No such file or directory
>               Is the postmaster running (with -i) at 'db1'
>               and accepting connections on TCP/IP port 5432?
>        in /usr/local/etc/httpd/htdocs/cardp.ca/members.php on line 100
> 
>       No other errors appear and the server keeps on running.
> 
>       The source of the script (sans-HTML) calling the database follows:
> 
>       <?
> 
>               $db = pg_connect("host='db1' user='cardp' dbname='cardp'");
>               if(!$db) {
>                       echo "\nAn error occured connecting to the
> database.\n";
>                       exit;
>               }
> 
>               if($alpha=="Show All") {
>               $query = "SELECT last_name, first_name, address1, address2,
> address3,
>                                               city, province, country,
> postal_code, email 
>                                       FROM members WHERE active = TRUE
> ORDER BY last_name";
>               } else {
>               $query = "SELECT last_name, first_name, address1, address2,
> address3,
>                                               city, province, country,
> postal_code, email 
>                                       FROM members WHERE active = TRUE AND
> last_name LIKE '$alpha%' ORDER
>       BY last_name";
>               }
> 
>               $result = pg_exec($db, $query);
>               if(!$result) {
>                       echo "An error occured executing the query.\n";
>                       exit;
>               }
> 
>               $numFields = pg_numfields($result);
>               $numRows = pg_numrows($result);
> 
>               if($numRows > 0) {
>                       for ($rowCount=0; $rowCount < $numRows; $rowCount++)
> {
>                               $row = pg_fetch_array($result, $rowCount);
>                               if($rowCount % 2) {
>                                       print("<tr>\n");
>                               } else {
>                                       print("<tr class=\"shade\">\n");
>                               }
>                               print("<td align=left valign=top
> width=200>");
>                               print("<B>" . $row["last_name"] . ", " .
> $row["first_name"] .
>       "</B></td>\n");
>                               print("<td align=left valign=top
> width=200>");
>                               if($row["address1"]) {
>                                       print($row["address1"] . "<br>\n");
>                               }
>                               if($row["address2"]) {
>                                       print($row["address2"] . "<br>\n");
>                               }
>                               if($row["address3"]) {
>                                       print($row["address3"] . "<br>\n");
>                               }
>                               print($row["city"] . ", " .
> $row["province"]);
>                               if($row["postal_code"]) {
>                                       print(" " . $row["postal_code"] .
> "<br>\n");
>                               }
>                               if($row["country"] != "Canada") {
>                                       print($row["country"] . "<br>\n");
>                               }
>                               if($row["email"]) {
>                                       print("<a href=\"mailto:"; .
> $row["email"] . "\">" . $row["email"] .
>       "</a>\n");
>                               }
>                               print("</td>\n</tr>\n");
>                       }
>                       if(!($numRows % 2)) {
>                               print("<tr><td colspan=2
> class=\"shade\">&nbsp;</td></tr>\n");
>                       }
>               } else {
>                       print("<tr><td align=center valign=middle
> colspan=2>\n");
>                       print("<h2>Sorry</h2>\n");
>                       print("<B>There were no results that matched your
> query.</B>\n");
>                       print("<P>Please make another selection.</P>\n");
>                       print("</td></tr>\n");
>               }
> 
>       ?>
> 
>       - DR
> 
>    [30 Jan 1:24am] [EMAIL PROTECTED] 
> 
>       This is not a bug but usual result with your configuration.
>       Read manual. It's explained :)
> 
>    [30 Jan 6:02pm] [EMAIL PROTECTED] 
> 
>       It's in the manual? Could you please be a little more specific?
> I've
>       gone through the manual and cannot find anything regarding these
> results
>       from this configuration.
> 
>       I've managed to get this to work on a linux system using the same
>       configuration without encountering the same problem. However, this
> is
>       not an option within our current production environment.
> 
> 



-- 
Yasuo Ohgaki
Please CC me when you reply to news/list messages.
Do not reply only to me :)


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to