Apache出现Cannot initialize zend_mm storage [win32]错误的解决办法


编辑: upupw 发布时间: 2015-09-30 15:00:47 来源: UPUPW绿色服务器平台 热度: 8917

Apache是大家经常在服务器中安装的webserver之一,配置Apache时往往有些参数设置不正确会引发很多问题。

今天UPUPW给大家详细解答下Apache错误报告中出现Cannot initialize zend_mm storage [win32]的原因

知识要点:

1、在win32下单个进程的最大内存限制是1024MB

2、Apache源码中设置的单个线程堆栈是2M

错误分析:

1、如果Apache的线程设置大于或等于512,那么如果连接数达到512把线程都占满的情况下则httpd.exe的工作进程内存占用会达到1024MB最大值

2、Apache如果以isapi的形式加载的PHP则httpd.exe进程还需要留出php的运行内存,否则就会报Cannot initialize zend_mm storage [win32]。

3、PHP的运行内存限制一般为128MB,如果httpd.exe内存占用接近或者达到了1024MB则PHP没有足够的运行内存了。

解决思路:

1、降低Apache的线程数量

2、换64位操作系统用64位Apache获得更大的内存空间

解决方法:

1、打开upupw下Apache/conf/httpd.conf(正常的在httpd-mpm.conf下)

2、查找ThreadsPerChild把参数修改为350(有的教程说调到512以下即可,因为考虑到预留php的内存所以350或者以下更为合适)

3、最后重启下Apache配置即可生效。