近日打算做pdt的contributor,但是没有用过php,打算学习下。很久没碰Apache了,结果安装后,花了两个晚上只成功启动过2次。每次重启后,都不能正确启动Apache。今天终于彻底解决了,分享一下,自己也记下这个经验。:)
首先,去看logs\error.log,
错误1: (OS 10022)提供了一个无效的参数。 : Child 3288: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
[Fri Mar 20 09:41:00 2009] [crit] Parent: child process exited with status 3 -- Aborting.
网上办法:
解决办法:
1.网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾.
2.控制面版->windows防火墙->高级标签->本地连接->设置->服务的标签里勾选安全Web服务器(HTTPS)即可.(这上下两项完成后仍然有问题,选中:启用 TCI/IP 上的 NetBOIS.
若问题依旧尝试第三种方法。
3.修复winsock,在运行里输入:netsh winsock reset
不成功。
我最后下载了个WinSockFix ,点击Fix ,然后重启,结果就可以了。
错误2:
到apache的 bin目录,cmd下执行 httpd.exe - t,看语法是否正确,不正确到conf\httpd.conf文件的相应行里,修改,一般是路径问题和端口占用问题,将 Listen 80 改为Listen 8081,ServerName 127.0.0.1:8081,重启Apache就OK了。
如果还不行,关闭所有防火墙试试。或是网上的方法 :
1.防火墙 本地连接中已经起用 安全的Web 访问
2.防火墙中已经为Apache2.2建立了端口的开放
3.在任何能够限制程序端口访问的程序中都为Apache2.2开放端口,如:卡巴斯基,瑞星!!!
到这一步,你的Apache2.2应该可以启动了吧,呵呵,有问题可以留言。