80端口一般被当做网页服务器的默认端口,使用本机搭建服务器环境的时候,都会默认使用80端口来作为网页访问端,但是有的时候80端口会被其他的不明身份的程序占用,导致 apache 启动失败,修改 apache 的默认端口后访问本机地址又非常麻烦。下面介绍一下如果80端口被占用后应该如何处理。
修改 apache 的默认端口(强迫症不要用)
修改 apache 端口的方法是最妥协的方法了,后果是当你开启 apache 服务器的时候,访问的本机地址将会附带端口号,比如 http://www.xlyVPS.com:8888 。
修改方式是直接修改 httpd.conf 文件,文件的位置在 apache 安装目录下的 conf 文件夹下,直接用记事本打开,找到 Listen 80 ,将80修改为其他未被占用的端口。
注:httpd.conf 文件中,以#开头的行是关闭的,不生效的,不以#开头的行是启用的。
查找80端口被谁占用的方法
进入命令提示行(开始运行输入 CMD),输入命令 netstat –ano ,就可以看到本机所有端口的使用情况,一般80端口在第一行,截图显示,端口已经被占用,PID 中写明 LISTENING 4。
PID=4 的程序是哪一个呢?接着在命令提示和下输入指令 tasklist ,列出所有当前运行的进程,
发现 PID=4 的进程,居然是 system 。
取消 system 进程对80端口的占用
其实本身我用的 apache 好好的,只是突然不能启动了,回想在此期间新安装的软件,面子这么大,能让系统占用80端口的,也只能有 sql Server 2008 了。经过查询,发现占用80端口的确是 sql Server 2008 里面的组件——sql Server Reporting Services (MSsqlSERVER)。是 sql Server 的日志系统,就是他好端端的突然占用了80端口,而且对于普通人来讲,这个组件的作用没啥用,关掉也是节约资源。
关闭方法很简单,在运行框中输入 services.msc ,进入服务窗口。或者直接在开始菜单里面的搜索框中输入“服务”即可打开。然后找到 sql Server Reporting Services (MSsqlSERVER) 这个服务,然后停止,被占用的80端口就被释放出来了。你也可以设置它的启动方式为“禁用”。
看清楚了,就是它。
另外的一个被占用的原因
除此之外,我还在网上找到了另外80端口被 system 占用的原因,就是微软家的 IIS 服务,关闭方式可以去控制面板去关闭即可。