使用用户缓存时APC崩溃

时间:2012-06-08 14:04:25

标签: php crash apc

我正在开发一个PHP应用程序,并希望在APC中缓存一些数据。 APC正在运行并启用,当我打开apc.php时,我可以看到统计信息,表明操作码缓存正常。

但是,每当我尝试使用apc_store()apc_add()来存储某些数据时,apache进程就会崩溃。

这是在Windows 7 Professional 64位系统上,并且都使用这两种版本组合:

  • Apache 2.2.21,PHP 5.3.9,APC 3.1.6
  • Apache 2.2.22,PHP 5.3.13,APC 3.1.9

使用第一个配置,崩溃立即发生,并在apache错误日志中发生:

[Fri Jun 08 12:51:58 2012] [notice] Parent: child process exited with status 255 -- Restarting.

第二个有一些延迟,我明白了:

[Fri Jun 08 16:18:48 2012] [notice] Child 5052: Exit event signaled. Child process is ending.
[Fri Jun 08 16:18:48 2012] [warn] (OS 995)Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen.  : winnt_accept: Asynchronous AcceptEx failed.
[Fri Jun 08 16:18:48 2012] [warn] (OS 10038)Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist.  : setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed.
[Fri Jun 08 16:18:52 2012] [warn] pid file C:/wamp/bin/apache/apache2.2.22/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Fri Jun 08 16:18:52 2012] [notice] Apache/2.2.22 (Win64) PHP/5.3.13 configured -- resuming normal operations

可以采取哪些措施来解决这个问题?

1 个答案:

答案 0 :(得分:1)

似乎我想要存储的数组包含本机资源,这导致了崩溃。

在存储之前使用serialize(),之后unserialize()解决问题。