2012-06-08 121 views
1

我正在開發一個PHP應用程序,並且想要在APC中緩存一些數據。 APC正在運行並啓用,當我打開apc.php時,可以看到統計信息,這表明操作碼緩存正常工作。使用用戶緩存時APC崩潰

但是,每當我嘗試使用apc_store()apc_add()來存儲一些數據時,apache進程崩潰。

這是Windows 7專業版64位系統上,並與這兩個版本的組合情況:

  • 的Apache 2.2.21,PHP 5.3.9,3.1.6 APC
  • 的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 

可以做些什麼來解決這個問題?

+0

你試過讓apache在崩潰時做核心轉儲嗎?也沒有在錯誤日誌? – ku6pk

+0

@ patyx7:我添加了有關錯誤日誌的信息。我還得到了一個Windows彈出窗口,介紹瞭如何向微軟發送信息,其中提到了三個文件,其中一個文件的名稱類似於WER2232.tmp.mdmp - 是核心轉儲?我將如何處理它,而不是C開發人員? –

回答

1

看起來像我想存儲的數組包含原生資源,並導致崩潰。

使用serialize()存儲它之前和unserialize()事後解決問題。