1.打开XAMPP,启动Apache时报错:Apache shutdown unexpectedly。
百度查看到报错原因为端口被占用。
2.通过dos命令查看:cmd—键入netstat –ano—回车,80端口被PID 4占用。
3.打开使用任务管理器查看进程,结束PID为4的用户的任务进度失败。失败原因:因为是系统进程,无法结束它。
4.查看是否是SQL Server的原因:Microsoft SQL Server 2008---配置工具---停止SQL Server ReportingServices,后Apache依然无法正常启动,排除SQL Server造成的影响。
5.通过修改注册表判断:cmd—regedit—调出注册表—找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP—start值改为0,Apache启动失败。
6.将start值改为4,Apache程序启动成功。
7.总结注册表:HKEY_LOCAL_MACHINE—SYSTEM—CurrentControlSet—Services--HTTP—start分为5个值:0,1,2,3,4,这些数字分别代表的是服务器启动的类型。
0:引导,
1:系统,
2:自动,
3:手动,
4:禁用。
XAMPP Apache 无法启动原因1(缺少VC运行库):
这个就是我遇到的问题原因,下载安装的XAMPP版本是xampp-win32-1.7.7-VC9,而现有的Windows XP系统又没有安装VC9运行库,所以无法继续运行相关服务,这个可以在Windows事件查看器里看到错误日志提示。
既然找到问题原因,解决就很容易了,到微软下载中心搜索下载安装一个MicrosoftVisual C++ 2008 Redistributable安装包即可。
XAMPP Apache 无法启动原因2(80端口被占用):
这是无法启动Apache服务的最常见原因了,像迅雷等P2P软件都会占用80端口,一般关闭这些软件后就可以启动了,如果你有需要也可以先启动XAMPP后再开这些软件。
如果无法确定是哪个程序占用了80端口,可以按下面方法找出:
1、打开“开始菜单”——点击“运行”——输入“CMD”打开命令行窗口,在里面输入“netstat -ano”命令并回车(不包含双引号,为防止输入错误,你可以直接复制用鼠标右键粘贴)。
2、运行命令后,会显示一系列端口的使用情况,查找到“0.0.0.0: 80”对应的PID进程标识符,记录下来,等下会用到。
3、鼠标右键点击桌面任务栏,打开Windows任务管理器,在“查看”——“选择列”中勾选“PID(进程标识符)”确定,即可看到每个程序使用的端口状态。结合上面所查到的80端口对应的PID进程标识符,就可确定是哪个程序占用了80端口。要关闭该程序建议先从该软件界面中关闭,如果找不到软件界面关闭,可鼠标右键直接结束该进程。
如果不想这么麻烦,也可以修改XAMPP不使用80端口使用其它,修改方法:打开XAMPP安装目录,修改\apache\conf\httpd.conf文件,找到下面这两句,将端口修改为8081或其它即可。
Listen 80
ServerName localhost:80
XAMPP Apache 无法启动原因3(443端口被占用):
这个情况比较少见,会占用443端口的程序并不多。XAMPP启动除需要80端口外,还有一个加载SSL模块的443端口。如果你遇到443端口被占用的情况,有三种方法可以解决,分别是:
1、排查端口占用程序,关闭后再启动XAMPP(排查方法见上面)。
2、修改XAMPP SSL模块使用端口号,修改方法:打开XAMPP安装目录,修改\apache\conf\extra\httpd-ssl.conf文件,找到Listen 443这么一句,将443端口改成4433或其它。
3、如果你不使用Apache的https,也可以关闭掉SSL模块,方法如下:打开XAMPP安装目录,修改\apache\conf\httpd.conf文件,找到Include "conf/extra/httpd-ssl.conf"这句,将其注释掉即可。
XAMPP Apache 无法启动原因4(关闭mod_perl模块):
如果Apache服务启动后又马上自动关闭,那么你可以试着运行XAMPP安装目录下的xampp_start.exe程序文件,将mod_perl模块关闭掉。
以上方法只能治标不治本
1.查看占用80端口的pid是多少
2.在任务管理器里找到对应的pid参数(任务管理器->查看里面选中pid)
3.找到对应的的进程,右击选中转服务,结束服务即可,不过这只是暂时,一开机还是会出现
4.这时需要在服务里找到这个进程彻底禁止即可