Apache每次运行PHP脚本都会崩溃... Windows

时间:2012-02-29 05:41:18

标签: php .net windows com

XAMPP安装(Apache,MySQL,PHP,Perl)每次都通过PHP调用DOTNET对象时崩溃。例如php.net上的示例代码

<?php
  $stack = new DOTNET("mscorlib", "System.Collections.Stack");
  $stack->Push(".Net");
  $stack->Push("Hello ");
  echo $stack->Pop() . $stack->Pop();
  //$stack = NULL; tried this, with no luck
?>

这将首次显示Hello .Net,但如果我刷新页面,Apache会崩溃并立即重新启动。如果我再次刷新,我会看到Hello .Net。如果我再次刷新,你猜对了; Apache崩溃了....任何想法?也许我应该以某种方式释放这个对象?

由于

Apache日志:

[Wed Feb 29 00:59:44 2012] [notice] Apache/2.2.21 (Win32) SVN/1.6.6 DAV/2 mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Wed Feb 29 00:59:44 2012] [notice] Server built: Sep 10 2011 11:34:11
[Wed Feb 29 00:59:44 2012] [notice] Parent: Created child process 5156
[Wed Feb 29 00:59:45 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 29 00:59:45 2012] [notice] Digest: done
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Child process is running
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Acquired the start mutex.
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Starting 150 worker threads.
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Starting thread to listen on port 443.
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Starting thread to listen on port 443.
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Starting thread to listen on port 80.
[Wed Feb 29 00:59:46 2012] [notice] Child 5156: Starting thread to listen on port 80.
[Wed Feb 29 00:59:49 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Feb 29 00:59:50 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 29 00:59:50 2012] [notice] Digest: done
[Wed Feb 29 00:59:51 2012] [notice] Apache/2.2.21 (Win32) SVN/1.6.6 DAV/2 mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Wed Feb 29 00:59:51 2012] [notice] Server built: Sep 10 2011 11:34:11
[Wed Feb 29 00:59:51 2012] [notice] Parent: Created child process 5948
[Wed Feb 29 00:59:51 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 29 00:59:51 2012] [notice] Digest: done
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Child process is running
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Acquired the start mutex.
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Starting 150 worker threads.
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Starting thread to listen on port 443.
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Starting thread to listen on port 80.
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Starting thread to listen on port 80.
[Wed Feb 29 00:59:52 2012] [notice] Child 5948: Starting thread to listen on port 443.
[Wed Feb 29 00:59:55 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Feb 29 00:59:55 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 29 00:59:55 2012] [notice] Digest: done
[Wed Feb 29 00:59:57 2012] [notice] Apache/2.2.21 (Win32) SVN/1.6.6 DAV/2 mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Wed Feb 29 00:59:57 2012] [notice] Server built: Sep 10 2011 11:34:11
[Wed Feb 29 00:59:57 2012] [notice] Parent: Created child process 4596
[Wed Feb 29 00:59:58 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 29 00:59:58 2012] [notice] Digest: done
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Child process is running
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Acquired the start mutex.
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Starting 150 worker threads.
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Starting thread to listen on port 443.
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Starting thread to listen on port 80.
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Starting thread to listen on port 443.
[Wed Feb 29 00:59:59 2012] [notice] Child 4596: Starting thread to listen on port 80.

这显示了一些重新启动。

1 个答案:

答案 0 :(得分:1)

文件可能是

$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");

使用您的命令创建一个文件,而不是直接使用调用

$output = exec("php dotnet.php"); 

echo $output;