Edit report at http://bugs.php.net/bug.php?id=47630&edit=1
ID: 47630
Comment by: webmaster at gleitgeb dot at
Reported by: metala at metala dot org
Summary: Unknown error using fsockopen() when with php-cgi
through php cli
Status: Closed
Type: Bug
Package: Network related
Operating System: Windows XP SP2
PHP Version: 5.2.9
New Comment:
Is it possible just to add a check if the environment variables are
correct/existing paths?
Otherwise the process should not start or it should add a comment in
some logfile ..
That stupid problem caused me hours of unnecessary work because I could
not find the connection between a wrong environment variable and a not
working socket connection (in my case imap_open didn't work as it always
said "Host not found")
Previous Comments:
------------------------------------------------------------------------
[2009-03-18 12:58:11] metala at metala dot org
I don't think "bug" need a fix.
A note in the PHP manual, in proc_open() function or elsewhere, would be
OK.
------------------------------------------------------------------------
[2009-03-18 12:50:34] metala at metala dot org
OK, problem solved.
The problem is in the Environment variables of the new process:
$env = array (
'SCRIPT_FILENAME' => dirname(__FILE__).'\\child.php',
);
The missing variable is SystemRoot, which in my case is "C:\WINDOWS".
So with the final settings:
$env = array (
'SCRIPT_FILENAME' => dirname(__FILE__).'\\child.php',
'SystemRoot' => $_ENV['SystemRoot'],
);
Network functionality is working perfectly.
------------------------------------------------------------------------
[2009-03-16 21:04:30] metala at metala dot org
It failed again.
As I wrote in the description "any network function fails".
What I did was:
$fp = fsockopen('google.com', 80, $errno, $errstr);
And the result was:
H:\test\php>php parent.php
X-Powered-By: PHP/5.2.9-1
Content-type: text/html
<br />
<b>Warning</b>: fsockopen() [<a
href='function.fsockopen'>function.fsockopen</a
>]: php_network_getaddresses: getaddrinfo failed: No such host is known.
in <b>
H:\test\php\child.php</b> on line <b>2</b><br />
<br />
<b>Warning</b>: fsockopen() [<a
href='function.fsockopen'>function.fsockopen</a
>]: unable to connect to google.com:80 (php_network_getaddresses:
getaddrinfo fa
iled: No such host is known. ) in <b>H:\test\php\child.php</b> on line
<b>2</b><
br />
int(0)
string(69) "php_network_getaddresses: getaddrinfo failed: No such host
is known.
"
When I run it in DOS:
>SET SCRIPT_FILENAME=child.php
>php-cgi
There appears to be no error.
------------------------------------------------------------------------
[2009-03-16 20:37:06] metala at metala dot org
I disabled it before testing.
I have another Windows XP machine I can test on. Results coming soon.
------------------------------------------------------------------------
[2009-03-16 19:53:11] [email protected]
Are you sure there is no firewall blocking?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=47630
--
Edit this bug report at http://bugs.php.net/bug.php?id=47630&edit=1