Apache 无法在 Fedora 15 上启动

Apache 无法在 Fedora 15 上启动

我无法让 Apache 在 Fedora 15 上启动。我下载了一个项目/var/www/html并将自己更改为所有者(递归地),尽管我不认为我更改了任何 SELinux 上下文或类似内容。当我跑步时service httpd start我得到:

启动 httpd(通过 systemctl):作业失败。有关详细信息,请参阅系统日志和“systemctl status”。
[失败的]

当我httpd -k start以 root 身份运行时,我得到:

(98)地址已在使用: make_sock: 无法绑定到地址 127.0.0.1:80

我不知道为什么,但我认为这与 SELinux 有关。有任何想法吗?

答案1

您应该执行错误输出所示的操作:

有关详细信息,请参阅系统日志和systemctl status

不过,第二条错误消息对我来说非常清楚:某些程序已经在运行并使用端口 80。netstat以 root 身份运行以找出哪个程序正在占用端口 80:

netstat -ntlp

也许这是在上一个命令中启动的 httpd 进程。如果是这样,请在重试之前杀死它,或者使用restart代替start.

答案2

以 root 身份运行此命令来查找开放端口:

netstat -tpln

您将能够在“本地地址”列下看到开放的端口。您还将在最后一列中看到使用端口的进程的 PID。尝试通过以下方式杀死 pid:

kill -9 PID

其中 PID 是您刚刚找到的进程 ID。

Apache 现在应该启动了。

答案3

我也遇到这个问题,重装Apache解决了。在终端中输入(su在 root 之后,或者sudo在命令之前):

# yum remove httpd
Removed HTTPD 100%
# yum install httpd
Installed HTTPD 100%

然后处理.conf文件

然后在终端输入:

sudo service httpd start

那应该有效。

答案4

出于教育目的,我将解释一下:您可能使用了 Fedora 提供的基于 GUI 的 httpd 配置实用程序。它创建 system-config-http.conf 文件。 Apache 首先加载“正常”conf.d(指定了侦听端口)并开始侦听该端口。 Apache 然后加载其他.conf 文件并处理它们。 GUI 实用程序创建的新配置文件包含(td-da!)另一个用于端口 80 的“监听”指令!因此,Apache“看到”某些东西已经占用了端口 80,因此当 Apache 停止启动进程并完全退出时。

这一切的真正内幕在于,你会绝不查看80端口占用情况任何事物。我几年前就被这个咬过,现在当我安装 Fedora 15 时。我想一定他们很久以前就修复了配置实用程序以防止这种行为。错误的!

相关内容