gpt4 book ai didi

linux - Amazon EC2 - Apache 服务器重启问题

转载 作者:IT王子 更新时间:2023-10-29 00:09:45 45 4
gpt4 key购买 nike

当我运行这个命令时

sudo /etc/init.d/httpd restart

它给出以下错误

停止 httpd:[失败]

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


我使用

检查了 80 端口上正在运行的程序

网络统计-lnp | grep :80(它给出以下输出)

tcp 0 0:::80:::* 收听 21739/httpd


为什么我无法使用 sudo/etc/init.d/httpd restart 停止停止 apache?

下面的命令没有问题

sudo apachectl 停止

sudo apachectl 启动

我正在使用 amazon ec2 的 linux 微型实例

最佳答案

我在从源码安装apache的时候遇到了这个问题,然后尝试运行

$ sudo /etc/init.d/httpd restart 

它使用的是预装的 apache 版本。/etc/init.d/httpd 中的停止指令没有删除在启动 apache 的源安装版本时创建的 httpd.pid 文件。

要确定这是否也是您问题的原因,请在运行时找到设置 httpd.pid 文件的位置

$ sudo apachectl start

如果您从源代码安装并且 apache2 位于/usr/local/apache2 中,那么 httpd.pid 文件应该在/usr/local/apache2/logs 中创建。当您通过运行停止 apache 时

$ sudo apachectl stop

这个文件应该被删除。因此,要测试 httpd.pid 文件是否导致您的问题,请通过调用启动 apache

$ sudo apachectl start

并找到 httpd.pid 文件。然后尝试使用

停止 apache
$ sudo /etc/init.d/httpd stop

如果原来的httpd.pid文件还在,那就是你用的时候apache无法启动的原因

$ sudo /etc/init.d/httpd start

为了让我的/etc/init.d/httpd 文件正常工作,我在启动和停止方法中明确调用了 apachectl:

#!/bin/bash
# /etc/init.d/httpd
#
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=/usr/local/apache2/logs/httpd.pid
prog=httpd
RETVAL=0

start() {
echo -n $"Starting $prog: "
$apachectl -k start
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
$apachectl -k stop
RETVAL=$?
echo
}

关于linux - Amazon EC2 - Apache 服务器重启问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557503/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com