我正在开发一个 PHP 应用程序,并希望在 APC 中缓存一些数据。 APC 正在运行并启用,当我打开 apc.php 时可以看到统计信息,这表明操作码缓存工作正常。
但是,每当我尝试使用 apc_store()
时,apache 进程就会崩溃。或 apc_add()
存储一些数据。
这是在 Windows 7 Professional 64 位系统上,并且在以下两个版本组合中都会发生:
使用第一个配置,崩溃立即发生,这在 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
可以做些什么来解决这个问题?
最佳答案
似乎我要存储的数组包含 native 资源,这导致了崩溃。
使用 serialize()
在存储之前和 unserialize()
后来解决了这个问题。
关于php - 使用用户缓存时 APC 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950378/