apache-2.2 – 无法启动Apache – 已经在使用的地址 – httpd已停止

我正在尝试在“虚拟私有云”上设置Amazon EC2 Web服务器.我正在使用它而不是标准的EC2实例,因为我需要分配多个公共IP,这需要使用VPC.

无论如何,经过多次跳箍跳,我终于启动并运行实例并通过SSH连接.我从一个运行良好的标准网络服务器的图像中构建了实例.但是,我似乎无法启动Apache:

# service httpd status
httpd is stopped
# service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1243/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1275/sendmail
tcp        0      0 0.0.0.0:9306                0.0.0.0:*                   LISTEN      1225/searchd
tcp        0      0 0.0.0.0:9312                0.0.0.0:*                   LISTEN      1225/searchd
tcp        0      0 :::80                       :::*                        LISTEN      1289/httpd
tcp        0      0 :::22                       :::*                        LISTEN      1243/sshd
tcp        0      0 :::443                      :::*                        LISTEN      1289/httpd
# ps aux | grep httpd
root      1287  0.0  0.2 108476  1780 ?        S    21:17   0:00 /bin/bash /etc/rc3.d/S85httpd start
root      1288  0.0  0.2  11348  1332 ?        S    21:17   0:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/httpd
root      1289  0.0  1.2 211888  7764 ?        S    21:17   0:00 /usr/sbin/httpd

所以我有点困惑. Apache没有运行(作为服务,我没有设置它运行任何其他方式),我无法启动该服务,但这不是说Apache正在运行吗?任何想法如何解决?

添加04 / Dec / 2012

Apache已经安装并设置为在启动时自动启动chkconfig –levels 235 httpd on,这就是httpd进程在启动时运行的原因.但是,当您输入服务httpd状态时,它仍然显示为已停止并且无法通过Web浏览器访问.

为了实际重启Apache,似乎你需要优雅地终止进程(kill -15 1289有效,其中1289是进程ID),然后输入service httpd start.您现在可以毫无问题地启动,停止,重新启动和重新加载Apache.

但是,我希望能够立即使用服务命令,并且进一步探讨,导致我得出结论,没有人能够真实地提供:其中一个SSL密钥需要密码,并且无法在启动时输入(显然),因此该过程无法正常启动.我删除了密码(无论如何我们真的不想要)并重新启动.现在,当我检查服务httpd状态时,我得到httpd死了但是锁定了.我必须删除/ var / lock / subsys / httpd以使进程再次正确启动.

所以,感觉就像进步一样,但这个过程仍然没有自动启动.

想法,好吗?

最佳答案

tcp 0 0 :::80 :::* LISTEN 1289/httpd

Httpd正在运行,并且进程ID为1289.如果由于某些不寻常的原因而不是Apache和其他名为httpd的东西,那么您可以使用lsof -n -p 1289这样的命令找到更多信息. .

你可能只是杀了那个过程.

转载注明原文:apache-2.2 – 无法启动Apache – 已经在使用的地址 – httpd已停止 - 代码日志