ID: 47630 Comment by: metala at metala dot org Reported By: metala at metala dot org Status: Feedback Bug Type: Network related Operating System: Windows XP SP2 PHP Version: 5.2.9 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [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] johan...@php.net Are you sure there is no firewall blocking? ------------------------------------------------------------------------ [2009-03-12 13:01:43] metala at metala dot org I tested it on another Windows XP machine and got the same result. On the other hand with Debian GNU/Linux Squeeze I have no problems. ------------------------------------------------------------------------ [2009-03-12 06:06:29] metala at metala dot org Description: ------------ The problem persists in 5.2.6, 5.2.9 and 5.2.9-1 in Windows only. I have 2 script files, a parent.php and a child.php. The parent.php, which is running in CLI, starts the child.php with php-cgi.exe. fsockopen(), or any other network function fails. Reproduce code: --------------- parent.php <?php $env = array ( 'SCRIPT_FILENAME' => dirname(__FILE__).'\\child.php', ); $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"), ); $procName = 'php-cgi'; $proc = proc_open($procName, $descriptorspec, $pipes, null, $env, array('bypass_shell' => true)); $read = array($pipes[1]); stream_select($read, $null = array(), $null = array(), 100); echo fread($read[0], 1024); child.php <?php $fp = fsockopen('127.0.0.1', 445, $errno, $errstr); var_dump($errno, $errstr); Expected result: ---------------- I expect no error to be returned, because 445 is opened and even telnet manages to connect. Actual result: -------------- 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 >]: unable to connect to 127.0.0.1:445 (Unknown error) in <b>H:\test\php\child.p hp</b> on line <b>2</b><br /> int(0) string(0) "" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47630&edit=1