apache httpd 闪退点击httpd.exe 闪退 是什么原因

httpd.exe占用cpu 100%解决办法-apache-Php教程-壹聚教程网httpd.exe占用cpu 100%解决办法
httpd.exe是apache的一个进程,有了它我们的网站才正常运行,但最近我发现我的httpd.exe占cpu 100%一直高居不下,下面我来分享一些解决办法。
网上说了是我们没有限制apache的并发数与子进行数,后来百度得出下面代码
编辑httpd.conf
Win32DisableAcceptEx ##加入这行
ThreadsPerChild 250
MaxRequestsPerChild 0
重启apache就解决了。
MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理&MaxRequestsPerChild 数字&个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出
另一种解决办法
如果你以前是没有问题,突然有问题了而且服务器安装了金山毒霸,这个可能是金山毒霸或者升级精灵修改了WINSOCK导致
在win命令行cmd下,输入以下命令
netsh winsock reset
还有可能碰到一种情况就是否cpu没有点,内存占很高或突然卡死过一会就好了,这个解决办法可尝试在httpd.conf加入
&IfModule mpm_winnt.c&
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
&/IfModule&
最后上面的办法解决了不根本的问题,我们可以对apache进行优化,最常用的就是apache缓存优化。
apache缓存分为两种缓存模式(mod_disk_cache与mod_mem_cache):
mod_disk_cache
一个基于磁盘的存储管理模块。
基于硬盘文件存储的缓存由mod_disk_cache 模块实现:
&IfModule mod_cache.c&CacheDefaultExpire& 3600
CacheMaxExpire& 86400
CacheLastModifiedFactor& 0.1
&IfModule mod_disk_cache.c&
CacheRoot& /usr/local/apache/cache
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheMaxFileSize&
CacheMinFileSize& 1
&/IfModule&
&/IfModule&
拷贝上面内容到apache 的 httpd.con文件中:
在httpd.conf文件中搜索
#LoadModule cache_module modules/mod_cache.so& // 去掉前面的# 号
使用磁盘文件缓存:
#LoadModule disk_cache_module modules/mod_disk_cache.so& // 去掉前面的# 号
mod_mem_cache
一个基于内存的存储管理模块。mod_mem_cache可以被配置为两种不同的操作模式:①缓存打开的文件描述符;②在堆(heap)上缓存对象。mod_mem_cache既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy缓存后端服务器输出的内容。
基于内存的缓存主要由 mod_mem_cache 模块实现:
&IfModule mod_cache.c&
&IfModule mod_mem_cache.c&
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount& 2000
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
&/IfModule&
&/IfModule&
安装完成之后,需要搜索
LoadModule cache_module modules/mod_cache.so& // 去掉前面的# 号
使用内存文件缓存:
#LoadModule mem_cache_module modules/mod_mem_cache.so& // 去掉前面的# 号
上一页: &&&&&下一页:相关内容Windows系统下Apache、PHP无法启动问题总结
作者:没有开花的树
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Windows系统下Apache、PHP无法启动问题总结,本文总结了常见的多种导致Apache、PHP无法启动问题,并给出了解决方法,需要的朋友可以参考下
最近经常被问到Apache无法启动的问题,所以写一篇文章,总结一下Windows下经常遇到的 Apache/PHP 无法启动的情况的解决方法。
Apache/PHP 无法启动分两种情况:
1、Apache无法启动,没加载php也无法启动
2、Apache可以启动,但加载php后无法启动
第一种情况多数是Apache配置问题,或者80端口被占用
使用Apache的配置检查:
C:\&D:\Apache2.2\bin\httpd.exe -t
根据错误提示,纠正错误。
如果是80端口占用,这个在Windows机器比较常见,经常被IIS抢占。
注销IIS服务:
iisreset /stop
iisreset /disable
sc stop w3svc
sc delete w3svc
如果不是IIS,可以使用命令杀掉强占80端口的进程:
# 查找占用80端口的进程pid
netstat -ano|find ":80"
# 假设该进程pid为2013,查看进程名称:
tasklist /fi "pid eq 2013"
# 杀掉该进程命令
taskkill /f /pid 2013
如果不是上述问题,那可能是系统网络问题,如下警告:
setup_inherited_listeners(), WSASocket failed to open the
inherited socket.
使用命令修复Windows网络:
netsh winsock reset
重启机子,如果问题还无法解决,尝试以下方法:
本地连接 -& 属性 -& 高级 -& Wins标签 -& 去掉启用LMhosts查询前的勾选
/********& 无情的分割线 ********* /
& 作者:没有开花的树
/ *******&& 无情的copy& *********/
第二种多数是PHP编译器的问题:
查看Apache错误日志,有类似下面这些内容:
httpd.exe: Syntax error on line 63 of D:/Apache2.2/conf/httpd.conf: Cannot load D:/php/php5apache2_4.dll into server: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
php5.5使用的编译器是vc11,php5.4和php5.3的是vc9,php5.2是vc6。同时还要注意是x86版本,还是x64版本。目前只有php5.5提供x64版本,其他都只有x86版本。
apache.org下载的Apache都是vc6版本,否则就根据不同文件说明安装不同的运行库。
vc11运行库x86/x64版本:
vc10运行库x86版本:
vc10运行库x64版本:
vc9运行库x86版本:
vc9运行库x64版本:
如果不清楚你的情况,可以安装全部运行库,再也不用为这个问题担忧了。
如果Apache/PHP还无法启动,那最可能是php5_module模块的问题:
1、Apache2.0对应的PHP模块为 php5apache2.dll
2、Apache2.2对应的PHP模块为 php5apache2_2.dll
3、Apache2.4对应的PHP模块为 php5apache2_4.dll
换句话说,根据php5_module模块,可以知道当前版本php支持哪种Apache
所以,Apache/PHP的搭配有以下几种情况:
1、php5.2支持Apache2.0和Apache2.2;
2、php5.3、php5.4同时支持Apache2.2和Apache2.4;
3、php5.5只支持Apache2.4
除非你自己手动编译php5_module模块,否则只能有以上3种选择。
如果Apache/PHP还是无法启动,检查php配置(php.ini)是否存在,运行php.exe有没有提示错误。根据错误提示,纠正错误。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具apache ab.exe打不开是怎么回事?点击ab.exe 直接闪一下就关闭了。找不到原因啊。谁知道?谢谢_百度知道13:37 提问
Apache如何启动,我在Windows服务中找不到Apache
我在Windows服务里没有找到Apache,要怎么启动Apache,我双击ApacheMonitor.exe,
但是它说“No Serveces installed”,我在cmd中运行d:\Apache2.4.12\Apache24\
bin\httpd.exe -k start,它说系统找不到指定文件,把start换成install,说拒绝访问,因为没以管理员身份登录,这是为什么?求大神帮助。
按赞数排序
应该是apache没有安装好吧,安装好在Windows服务中肯定有Apache的服务。看下我电脑上的apache服务
也许你用的非安装版在服务里面就没有,你可以直接在tomcat的bin目录里面启动startup.bat启动。
如果是安装版,建议重新安装。
我觉得还是重新安装吧!
在可执行目录下找到httpd.exe命令,然后运行cmd,执行类似以下命令:
C:\"Program Files"\"Apache Software Foundation"\Apache2.2\bin\httpd.exe -k start
就可以启动服务了。如果端口被占,你可以编辑.conf文件,更改监听端口,改之前备份conf文件。
我也遇到了这个问题,求解决!
我也遇到这个问题了
但是访问localhost还是可以访问
773关注|164收录
800关注|426收录
737关注|1142收录
其他相似问题你可能喜欢的教程
热门的教程
&系统教程专题
&win7系统下载分类
&win7系统教程人气排行
&win7热门系统推荐
&|&&|&本站发布的电脑系统及电脑软件仅用于人个测试学习使用,不得使用于任何商业用途,请在下载后24小时内删除,请支持正版软件。
如侵犯到您的权益,请及时通知我们,我们会及时处理。邮箱:[请将#换成@]
Copyright @ 2014 系统盒

我要回帖

更多关于 点击mysql.exe闪退 的文章

 

随机推荐