在使用APMServ 启动时提示MySQL显示已经成功启动,php是作为Apache的模块加载的,而Apache服务80端口被占用则一直无法启动,Google了半天,终于发现是迅雷占用了80端口,导致Apache无法启动。
下面介绍一下我的处理方法:
1、通过netstat命令查找占用80端口的进程的pid: 以下为引用的内容:
netstat -o -an > C:portInfo.txt
然后进入C盘,查看protInfo.txt文件,找到Local Address这一列占用80端口的PID,打开“任务管理器”,“查看”菜单,“选择列”,选中PID,查看占用80端口的PID对应的进程。
2、设置占用80端口的进程,让出80端口:
通过第一步发现占用80端口的进程是Thunder5.exe,打开迅雷程序,配置对话框,修改TCP端口,这里我将80端口改为了8089端口:
除了迅雷,skype等软件也会占用80端口,只要将其端口设置为其它端口就可以解决80端口被占用的情况。
如果80端口被占用,安装Apache的过程中,可能不能成功安装Apache的Servcie。如果 不能正确安装Apache Service,那么执行Start或Restart等命令时,会报如“找不到Apache2的Service”的错误,然后执行失败。这样的话,修改了 httpd.conf文件,将端口改为其它值(如8088)也无法正确启动Apache服务。
在这样的情况下,可以在修改httpd.conf文件后,再执行Apache安装文件,然后选择修复功能。如果httpd.conf修改正确,修改完成后,Apache Service就会被正确安装,Apahce Http Server就能正常启动了。
总结:
一、安装Apahce;
二、修改httpd.conf,将端口改为其它未被占用的端口号;
三、重新运行Apache安装文件,选择修复功能执行。
当然,这里还有一种有效的办法,不仅可以不用更改默认的端口号,还能找到抢占端口的“凶手”是谁。链接:
一、开始->运行->cmd,输入netstat -o -an;
二、打开windows任务管理器, 查看->选择列 勾选pid;
三、找到那个进程占用了80端口的pid,解决之。
按这个方法处理了后,并没有解决问题,因为我根本找不到那个程序占用80端口
IIS用的是8081端口,所以就没有注意,但是有些事不能解释。
但是关闭掉IIS后,APMServ居然启动成功了。所以新闻朋友们不要犯这样的错误。机器也会骗人的。有不可预知的错误存在。。。
使用APMServ5.2.0,的时候,又重新启动了IIS
把IIS 端口改成了8080,但是又出现80端口被占用的问题,所以总结一个原因就是
如果用APMServ5.2.0 虚拟主机多站点的时候,IIS是不能启动的,因为以前没有使用虚拟主机的时候,IIS和APMServ
可以共用。
还有个常见的错误是PID为4的进程占用80端口,用任务管理器也看不到具体程序,其实这是World Wide Web Publishing Service服务占用了80端口,将其关闭禁用即可。