APACHE的一个异常及解决方法

From http://xiuluo999.bokee.com/viewdiary.12862739.html

看到的一篇比较有价值的文章,:)

前段时间自己机器上安装的APACHE服务器突然出现异常,症状表现为apache.exe父进程不断产生和停止一个子进程apache.exe,内存被大量占用,导致服务器无法访问。无奈之下在网上找解决方案,查找到有朋友也遇到过类似情况,该网友是通过修改apache配置文件中 “MaxRequestsPerChild:一个服务进程允许的最大请求数 ”的值来解决的,默认情况下该值为0,改成100问题解决。但是我按照他的方法并不能解决自己的问题,可见虽然我们症状相同,但是问题的本质不同,我又在网上查了很多资料,配置文件被改的乱七八糟问题依然没有解决。apache服务器被重新安装了几十次也没有用,无奈之下把系统重装了,然后安装apache,终于恢复正常了。由此可见问题不是由配置错误而引起的,虽然不知道具体原因,但是既然问题解决了就算了。可是没过几天相同的问题又出现了,我已经快要崩溃了,这样要我如何学习PHP。于是决定找出问题的起因,网上搜遍了资料也没解决问题,后来只能在apache日志中找答案了,在日志中发现如下信息:

[Sun Sep 24 11:13:36 2006] [notice] Apache/2.0.59 (Win32) PHP/5.0.3 configured --
resuming normal operations
[Sun Sep 24 11:13:36 2006] [notice] Server built: Jul 27 2006 15:55:03
[Sun Sep 24 11:13:36 2006] [notice] Parent: Created child process 1736
[Sun Sep 24 11:13:36 2006] [notice] Child 1736: Child process is running
[Sun Sep 24 11:13:36 2006] [crit] (OS 10022)提供了一个无效的参数。  : Child 1736:
setup_inherited_listeners(), WSASocket failed to open the inherited socket.
[Sun Sep 24 11:13:36 2006] [error] Parent: child process exited with status 3 --
Aborting.

此信息大量重复,基本意思是apache.exe父进程产生了一个apache.exe子进程-子进程开始运行-子进程函数setup_inherited_listeners()错误,WSASocket打开inherited socket失败-子进程以异常中断状态退出,显然问题的关键在:
[Sun Sep 24 11:13:36 2006] [crit] (OS 10022)提供了一个无效的参数。  : Child 1736:
setup_inherited_listeners(), WSASocket failed to open the inherited socket.
不是很懂这个函数干什么的,为什么会发生错误,这个估计只有apache开发人员才知道了。但是看到socket这个词还比较敏感,因为很多病毒流氓软件都喜欢在winsock里面做文章,关于winsock的描叙,在百度中有一段这样的描叙:
“WinSock是Windows Sockets的缩写,它作为Windows和TCP/IP之间的接口。而我们都知道TCP/IP在

互联网举足轻重的作用,如果希望了解Socket,那么Berkeley Socket不可不提,它是在UNIX下对
TCP/IP进行编程的标准模式。WinSock的设计和它很象,这样可以使UNIX上的应用程序在Windows平台
上使用。但是,两者也有一些区别,如WinSocket利用了Windows的一些特点,而这些特点对于UNIX来
说是没有的。”
  于是抱着试一试的心态检查了一下自己电脑winsock中的文件,这里用的是工具hijackthis(一款国外软件,在反病毒界比较流行,主要用来对系统中病毒喜欢修改的地方进行扫描),果然在hijackthis的日志中发现这个项目:
O10 - Unknown file in Winsock LSP: c:\windows\system32\tcpipdog0.dll
在百度中搜索dll文件名,发现这个东西是DR.com(网络管理软件,学校用这个来管理校园网)插入在系统中的,难道这个就是问题所在,此10项无法直接用hijackthis删除,于是我就用专门删除winsock中文件的工具:LSPfix.exe把该文件删除。当然删除winsock中的文件会有一定的风险,可能造成无法上网的现象,如果删除后无法上网,需要用软件:WinsockxpFix.exe修复winsock。一切完成之后,apache服务器正常运行了,问题终于解决了,心情好多了。但是我不能在用这个DR.COM了,一旦再次使用,winsock中又会被插入文件,那么apache又出问题。郁闷了,看来只能放弃用校园望了,曾经在学校论坛上发现有高人知道某种方法避免了这种情况,但是自己没有仔细看,下次要好好

研究一下。
 总结:在winsock中插文件的不一定就是DR.COM,很多软件都可能在其中插入文件,所以造成apache服务器异常的原因会很多,但是这类问题总体来说应该还算是软件的冲突。为什么这类软件会引起apache服务器异常,这个还需要专业人员来解答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat作为一款非常流行的Java Web服务器容器,在使用过程中难免会出现各种异常。下面是一些常见的Tomcat异常及其解决办法: 1. java.net.BindException: Address already in use: JVM_Bind 该异常表示端口已被占用。可能是由于上次Tomcat没有正常关闭,导致端口没有被释放。可以通过命令行查看并杀死占用端口的进程,或者修改Tomcat的配置文件指定其他端口。 2. java.lang.OutOfMemoryError: PermGen space 该异常表示永久代空间不足。可以通过增加Tomcat的JVM内存限制或者调整JVM的GC策略来解决。 3. java.lang.OutOfMemoryError: Java heap space 该异常表示堆内存不足。可以通过增加Tomcat的JVM内存限制或者调整JVM的GC策略来解决。 4. org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet 抛出异常异常表示Servlet在处理请求时出现了异常。可以查看Tomcat日志文件或者应用程序代码来定位问题并解决。 5. java.lang.NoClassDefFoundError 该异常表示类文件没有找到。可能是由于类路径配置错误或者缺少依赖库。可以检查类路径配置和依赖库是否正确。 6. java.lang.UnsupportedClassVersionError 该异常表示类文件的版本不受支持。可能是由于编译Java代码使用了高版本的JDK,而Tomcat使用的JDK版本过低。可以升级Tomcat的JDK版本或者重新编译Java代码。 7. java.lang.IllegalStateException: Cannot forward after response has been committed 该异常表示响应已经被提交,无法进行转发。可能是由于在响应已经提交后仍然尝试进行转发。可以检查代码逻辑并确保在响应提交后不再进行转发。 以上是一些常见的Tomcat异常及其解决办法,但并不是所有的异常都在此列出。在遇到其他异常时,可以通过查看Tomcat日志文件和调试代码来定位问题并解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值