【问题标题】:httpd is not startinghttpd 没有启动
【发布时间】:2016-04-14 16:22:50
【问题描述】:

我是 root,我无法启动 httpd。

我执行/etc/init.d/httpd status 并得到:

httpd 已停止

当我尝试/etc/init.d/httpd start 时,我得到:

正在启动 httpd:(98)地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:80
没有可用的监听套接字,正在关闭
无法打开日志
[失败]

我认为它可能被挂起,所以我检查了sudo netstat -tulpn | grep :80。

我什么都没有。

我检查了/var/log/httpd/error.log,它与此无关

只是想试试,我试过/etc/init.d/httpd reload 我收到了[FAILED]。

我需要做什么?

【问题讨论】:

标签: linux apache


【解决方案1】:

首先我们需要找出哪个服务占用了80端口

netstat -anp |grep LISTEN |grep ":80"

使用此 cmd,您将了解该服务,如果它不是您想要停止的服务,它会启动您的 httpd (apache) 服务。

对于我的服务器,它的 nginx 不是 apache,cmd 的响应是这样的:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      10266/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      10266/nginx: master 

这意味着 pid : 10266 (nginx) 正在使用端口 80

【讨论】:

    【解决方案2】:

    grep 进程并杀死它们。然后尝试重新启动apache。这可能会解决您的问题。

    ps -ef | grep httpd
    
    kill -9 <PID>
    

    【讨论】:

      【解决方案3】:

      确保你的配置文件中有“监听端口”配置

      我的意思是你不能有两行

      Listen 80
      

      在您的 httpd.conf 文件中(或者一个 Listen 80 在 httpd.conf 中,另一个在另一个配置文件中,例如 welcome.conf)

      【讨论】:

        猜你喜欢
        • 2013-09-13
        • 1970-01-01
        • 1970-01-01
        • 2015-08-21
        • 1970-01-01
        • 2022-01-13
        • 2017-12-10
        • 2016-08-12
        • 2019-04-26
        相关资源
        最近更新 更多