環境是win2008,apache 2.4.29 Win64 VC15,php 7.1.10(7.1.11)。事件完整內容:php
「--------------------------apache
錯誤應用程序名稱: httpd.exe,版本: 2.4.29.0,時間戳: 0x59e9c9a6
錯誤模塊名稱: ntdll.dll,版本: 6.1.7601.23915,時間戳: 0x59b94ee4
異常代碼: 0xc0000005
錯誤偏移量: 0x000000000004f23c
錯誤進程 ID: 0x900
錯誤應用程序啓動時間: 0x01d388072496fd60
錯誤應用程序路徑: D:\xwamp\Apache\bin\httpd.exe
錯誤模塊路徑: C:\Windows\SYSTEM32\ntdll.dll
報告 ID: c896327e-f3fe-11e7-8745-ff2c4350ba8c服務器
--------------------------」php7
apache日誌中頻繁按期出現重啓併發
[mpm_winnt:notice] [pid 1040:tid 392] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[mpm_winnt:notice] [pid 3208:tid 296] AH00364: Child: All worker threads have exited.
[mpm_winnt:notice] [pid 1040:tid 392] AH00430: Parent: Child process 3208 exited successfully.
[mpm_winnt:notice] [pid 1028:tid 392] AH00455: Apache/2.4.29 (Win64) OpenSSL/1.1.0f configured -- resuming normal operations
[mpm_winnt:notice] [pid 1028:tid 392] AH00456: Apache Lounge VC15 Server built: Oct 20 2017 12:12:11
[core:notice] [pid 1028:tid 392] AH00094: Command line: 'D:\\xwamp\\Apache\\bin\\httpd.exe -d D:/xwamp/apache -d D:\\xwamp\\Apache -f D:\\xwamp\\conf/httpd.conf'
[mpm_winnt:notice] [pid 1028:tid 392] AH00418: Parent: Created child process 1604
[mpm_winnt:notice] [pid 1604:tid 296] AH00354: Child: Starting 350 worker threads.框架
=====處理思路記錄===ide
網上出現相似錯誤的帖子和網頁有不少,基本都是提問的,沒有回答。測試
1.可能設置了MaxConnectionsPerChild值使得按期重啓。ui
將改值設置爲0,觀察一段時間後,仍是出現這樣的狀況。無效。spa
2.手賤安裝搜狗輸入法,卸載之。發現仍是沒有解決。
3.從新安裝官方版本的vc2017.待觀察效果如何。
4.將php目錄和其ext目錄加入環境path中.待觀察效果如何。
問題仍然存在。
=====新的問題記錄===
PHP錯誤日誌:
PHP Fatal error: Couldn't find implementation for method Nil\\Base\\Headers::getiterator in Unknown on line 0
PHP Fatal error: Couldn't find implementation for method Nil\\Log::getiterator in Unknown on line 0
緊接着apache錯誤事件
錯誤應用程序名稱: httpd.exe,版本: 2.4.29.0,時間戳: 0x59e9c9a6
錯誤模塊名稱: php7ts.dll,版本: 7.1.11.0,時間戳: 0x59f1053d
異常代碼: 0xc0000005
錯誤偏移量: 0x000000000001d953
錯誤進程 ID: 0xfd8
錯誤應用程序啓動時間: 0x01d3882389b740bc
錯誤應用程序路徑: D:\xwamp\Apache\bin\httpd.exe
錯誤模塊路徑: D:\xwamp\php\php-7.1.11-Win32-VC14-x64\php7ts.dll
報告 ID: 9d32a94e-f41e-11e7-8bb8-e17153452aaf
=====處理思路記錄===
1.php7ts使用的vc14,從新安裝vc14吧。VC15 is backward compatible to VC14. That means, a VC14 module can be used inside a VC15 binary (for example PHP VC14 as module).不須要安裝vc14.
2.將php升級到當前最新版本7.1.13。
仍是沒有用。。。
=====處理思路記錄===
1.使用ab測試,大量併發處理,直接出現錯誤
apr_pollset_add(): Not enough space (12)
與此同時,服務器出現以前的錯誤事件。
2.ab測試靜態文件,沒有問題。ab測試單個php文件,沒有問題。
3.因此嘛,最終的緣由就是php佔用太多的資源致使。
4.將nilcms框架的log日誌關閉,定義一個簡單路由(不寫入任何文件日誌),ab測試之,完整無缺!!
所以,下面分析:
服務器中大量的請求,致使頻繁寫入日誌,使得資源佔用太高,致使apache異常頻繁重啓。
驗證:
查看服務器中出現錯誤的那一刻,訪問的請求數量。五六個併發而已,就掛掉了。。。(窮。。。)
========可是沒有這麼簡單========
1.開啓opcache,目前沒有發現問題。
2.框架也有問題,測試發現使用ArrayObject類,ab測試就會崩潰,繼續測試中。