Hi Apache is serving php correctly and i can see this from a <?php phpinfo(); ?> and everything else works fine just this one call to fsockopen using ssl://. Is there some sort of extra configuration required for apache to be able to do this that i am not aware of? Bob ----- Original Message ---- From: Ólafur Waage <olafurw@xxxxxxxxx> To: php-general@xxxxxxxxxxxxx Sent: Monday, 19 May, 2008 10:26:58 AM Subject: Re: [PHP] Re: fsockopen on ssl:// Are you doing the command line on the same machine as the server? Have you checked out the apache configuration? Since phpcli runs alone. (iirc) 2008/5/18 bob pilly <bobpilly@xxxxxxxxxxx>: > Hi Manuel > > Thanks for the reply. I have tested it with a timeout of 20 seconds and the same thing occurs. It works as before from the command line and not form within apache.. Any more ideas? > > Cheers > > Bob > > > ----- Original Message ---- > From: Manuel Lemos <mlemos@xxxxxxx> > To: bob pilly <bobpilly@xxxxxxxxxxx> > Cc: php-general@xxxxxxxxxxxxx > Sent: Wednesday, 14 May, 2008 4:26:41 PM > Subject: Re: fsockopen on ssl:// > > Hello, > > on 05/13/2008 04:37 PM bob pilly said the following: >> Hi all >> >> I have tried researching this issue but havent come up with any solution so im hoping someone has seen it before and can help. I have the following test script that uses fsockopen to connect to a https site, get the contents and outputs it. >> >> <?php >> $host = "www.microsoft.com"; >> $path = "/"; >> $fh = fsockopen("ssl://".$host, 443, $errno, $errstr, 5);//opens url for reading with a timeout of 2 seconds >> >> if (!$fh){ >> echo "FAIL: $errno $errstr "; >> } >> else{ >> $out = "GET $path HTTP/1.1\r\n"; >> $out .= "Host: $host\r\n"; >> $out .= "Connection: Close\r\n"; >> $out .= "\r\n"; >> fwrite($fh, $out); >> stream_set_timeout($fh,2); >> $info = stream_get_meta_data($fh); >> if($info['timed_out']){ >> echo "TIMEOUT\n"; >> } >> else{ >> $haystack = ""; >> while (!feof($fh)) { >> $haystack.= fgets($fh, 4096); >> } >> } >> print $haystack; >> fclose($fh); >> } >> ?> >> >> if i run this script using php -f test.php it works fine. However if i try and run this on my loca apache server i get the following error: >> >> Warning: fsockopen() [function.fsockopen]:unable to connect to ssl://www.microsoft.com:443 (A connection attemptfailed because the connected party did not properly respond after aperiod of time, or established connection failed because connected hosthas failed to respond.) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test.php on line 4 >> FAIL: 10060 A connection attempt failed because the connected party didnot properly respond after a period of time, or established connectionfailed because connected host has failed to respond. >> >> As you can see from that error i am using windows and apache 2.2. My php version is 5.25. I have Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tlsin my config. > > I suspect that you are giving a very short timeout but then you are not > handling the timeout error properly. > > Anyway, before reinventing the wheel, you may to try this HTTP client > class that supports many options including establishing SSL corrections > and setting and handling timeouts correctly. > > http://www.phpclasses.org/httpclient > > -- > > Regards, > Manuel Lemos > > PHP professionals looking for PHP jobs > http://www.phpclasses.org/professionals/ > > PHP Classes - Free ready to use OOP components written in PHP > http://www.phpclasses.org/ > > > > __________________________________________________________ > Sent from Yahoo! Mail. > A Smarter Email http://uk.docs.yahoo.com/nowyoucan.html -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php __________________________________________________________ Sent from Yahoo! Mail. A Smarter Email http://uk.docs.yahoo.com/nowyoucan.html