ID:               22458
 User updated by:  jlondon at mail dot mcg dot edu
 Reported By:      jlondon at mail dot mcg dot edu
-Status:           Feedback
+Status:           Open
 Bug Type:         IIS related
 Operating System: Windows NT Server 4.0
 PHP Version:      4.3.0
 New Comment:

Ok...that sort of worked.  No more hangs and no more spawned processes,
but nothing is output to the screen.  The only thing I get is "command
returned 128" but no hello world.  Also what is the difference between
php.exe at the root of the dir and php.exe in the cli dir?  Why would
one work and the other not?  Should I be using the one in the cli dir
as my script processor?  Thanks a lot for you help.


Previous Comments:
------------------------------------------------------------------------

[2003-02-27 10:34:54] [EMAIL PROTECTED]

Please try using the following for the command string:

"C:\\php\\cli\\php.exe"



------------------------------------------------------------------------

[2003-02-27 10:30:32] jlondon at mail dot mcg dot edu

No change...still runs like mad and crashes IIS.  I can't even do a
"net stop".  I'm running the CGI version if that makes any difference. 
Also I have to refer to php as c:/php/php otherwise error-output.txt
has the message "he name specified is not recognized as an internal or
external command, operable program or batch file."

------------------------------------------------------------------------

[2003-02-27 08:51:50] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip



------------------------------------------------------------------------

[2003-02-27 08:26:25] jlondon at mail dot mcg dot edu

proc_open hangs on the example that is in the manual.  Here is the
code.

$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will
read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will
write to
   2 => array("file", "c:/temp/error-output.txt", "a"), // stderr is a
file to write to
);
$process = proc_open("c:\php\php.exe", $descriptorspec, $pipes);
if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0], "<?php echo \"Hello World!\"; ?>" . chr(3));
    fclose($pipes[0]);

    while(!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // It is important that you close any pipes before calling
    // proc_close in order to avoid a deadlock
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}

I'm running NT4 Server/PHP4.3.2.2/IIS4.  This bit of code opened up 54
php.exe/cmd.exe (that's 54 of each or 108 total) processes on my
machine.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=22458&edit=1

Reply via email to