我在 IIS 8.5、Windows Server 2012 R2 上运行 PHP 7.2.22 和 Wincache 2.0.0.8。大多数时候一切都运行良好。但每隔几天,Wincache 就会停止运行。PHP 和其他一切都运行良好,我只有在检查缓存状态时才会注意到 Wincache 已停止,并且发现它没有存储任何查询(主要是为了减轻 MySQL 的负载)。然后我通过重新启动 IIS 使其再次运行。然后它又可以正常工作几天。
有什么办法可以阻止错误发生吗?我可以设置一个每日批处理文件,以便在清晨重新启动 IIS,但我宁愿先尝试解决它,然后再解决它。
我在错误日志中看到了这个,但它并没有帮助我了解问题的实际根源。我没有在任何地方看到任何英文错误信息。
Faulting application name: php-cgi.exe, version: 7.2.22.0, time stamp: 0x5d664a16
Faulting module name: php_wincache.dll, version: 2.0.0.8, time stamp: 0x5a2044e3
Exception code: 0xc0000005
Fault offset: 0x000000000001339a
Faulting process id: 0x1dac
Faulting application start time: 0x01d8880af85afbf4
Faulting application path: C:\Program Files (x86)\PHP\php-cgi.exe
Faulting module path: c:\program files (x86)\php\ext\php_wincache.dll
Report Id: 094f751f-f3ff-11ec-811c-00155dc3e5e6
Faulting package full name:
Faulting package-relative application ID:
这些是我的 wincache 设置:
wincache.apppoolid no value
wincache.chkinterval 30
wincache.debuglevel 0
wincache.enablecli Off
wincache.fcachesize 24
wincache.fcenabled On
wincache.fcenabledfilter no value
wincache.fcndetect On
wincache.filecount 4096
wincache.filemapdir no value
wincache.ignorelist no value
wincache.localheap 0
wincache.maxfilesize 256
wincache.namesalt no value
wincache.reroute_enabled Off
wincache.scachesize 8
wincache.ttlmax 1200
wincache.ucachesize 8
wincache.ucenabled On
这些是我的快速 CGI 设置:
Instance MaxRequests 200
Max Instances 0
Activity Timeout 150
Idle Timeout 300
Queue Length 1000
Rapid Fails PerMinute 10
Request Timeout 250