在xampp开启apache服务时,才发现端口被占用,出现如下错误:
[Apache] Error:Apache shutdown unexpectedly.
[Apache] This may be due to a blocked port, missing dependencies,
[Apache] improper privileges, a crash, or a shutdown by anothermethod.
[Apache] Press the Logs button to view error logs and check
[Apache] the Windows Event Viewer for more clues
[Apache] If you need more help, copy and post this
[Apache] entire log window on the forums
然后就要查看一下Apache会用到的80端口和443端口的使用情况;
到cmd中,输入netstat –ano 查看查询,Apache需要的80端口被pid为4的进程占用,用任何管理器查看,发现pid为4的是system.exe,这是系统进程,也不能盲目停止它。
开始百度,找到了一个方法:
1. Win+r,输入regedit,打开注册表;
2. 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3. 找到项Start,将其值改为0
4. 然后重启电脑,打开xampp再打开Apache,发现还是报同样的错
再在cmd查看,发现80端口还是被system.ext占用,那只能再百度
1. 在cmd输入netsh http show servicestate查看哪个应用程序在使用Http.sys
2. 在最后发现是pid为5068的进程
3. 查看任务管理器,发现是SQL数据库的ReportingServicesService.exe,百度发现,停止这个进程并没有什么影响,所以我直接右键停止
4. 然后重启电脑,打开xampp再打开Apache,发现还是报同样的错
然后再去cmd查看发现4号进程已经不再占用80端口了,而且Apache的443端口没有被占用,可是还是显示端口被占用了
百思不得其解,我就去玩了~
回来之后,再百度有人说运运apache/bin/httpd.exe可以看看哪个端口被占用,可是我打开都是闪退的,然后用cmd运行(自己的安装路径)D:\software\xampp\apache\bin\httpd.exe –k start
然后不闪退了。。。。。。。
可是报错了……
报的是
httpd.exe:
Syntax error on line 35 of
D:/php\xe5\xbc\x80\xe5\x8f\x91/appache/conf/httpd.conf:ServerRoot must be a
valid directory
这就不是端口占用的错了。。。
当然还是要百度的,得出来的结果是:
原因:httpd.conf里面配置的ServerRoot路径跟实际路径不一致,导致路径无效。
然后第一反应,改配置文件。
一打开httpd.conf发现和网友说的不也一样,尝试改了一个路径,发现无效。
然后看到
所以我决定直接把我的xampp直接拉到D盘根目录下,然后,我的apache绿了!!!