重新启动 apache 时出现“make_sock:无法绑定到地址 [::]:443”(安装 trac 和 mod_wsgi)

问题描述 投票:0回答:12

我正在尝试通过 SSL 安装 trac 和 mod_wsgi。我尝试手动安装它,但效果不太好,所以我开始遵循以下步骤:trac-on-ubuntu

我跳过了 svn 部分,因为我想使用 git 代替。第一次编辑 httpd.conf 后:

WSGIScriptAlias /trac /var/trac/apache/trac.wsgi

<Directory /var/trac/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

我重新启动apache只是为了得到这个错误:

* Restarting web server apache2                                                    

(98)Address already in use: make_sock: could not bind to address [::]:443

                                                                     [ OK ]

做这些没有任何结果。

 netstat -anp | grep 443 
 fuser 443/tcp

这样做没有产生任何结果,除了我运行的 grep 命令:

ps -aux | grep httpd

为什么在没有显示任何内容的情况下却说有其他东西正在使用该端口?

编辑:你们会笑的。我在 ports.conf 中有一个不应该存在的额外 Listen 443。删除它解决了这个问题。

apache ubuntu mod-wsgi trac
12个回答
241
投票

你们会笑这个的。我在 ports.conf 中有一个不应该存在的额外 Listen 443。删除它解决了这个问题。


22
投票

谢谢您的回答,在apache 2.4.x版本上,如果使用yum命令安装了ssl_module,则不想在httpd.conf(主)文件中添加端口:443

要在配置文件中查找端口 443,

# grep '443' /etc/httpd/conf.d/*

/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443

# grep '443' /etc/httpd/conf/httpd.conf 
Listen 443

只需从 httpd.conf 文件中删除该行或命令它(监听 443)即可。


16
投票

我对此添加了另一个答案,因为我遇到了同样的问题并以相同的方式解决了它: 我已经使用

a2enmod ssl
在apache2上安装了SSL,这似乎在
/etc/apache2/ports.conf
中添加了额外的配置:

NameVirtualHost *:80
Listen 80

NameVirtualHost *:443
Listen 443

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

我必须注释掉

Listen 443
指令之后的第一个
NameVirtualHost *:443

NameVirtualHost *:443
#Listen 443

但我想我也可以让它并评论其他人。 不管怎样,谢谢你的解决方案:)


4
投票

对于其他没有重复 Listen 指令且端口上没有正在运行的进程的人:检查您是否意外地将 ports.conf 包含在 apache2.conf 中两次(就像我由于合并错误而所做的那样)。


3
投票

我正在使用Ubuntu。我刚刚禁用了 apache2 的 ssl 模式,它对我有用。

a2dismod ssl

然后重新启动apache2。

service apache2 restart

3
投票

我使用apache版本2.4.27,也有这个问题,通过修改解决了

conf/extra/httpdahssl.conf,注释掉18行内容(Listen 443 https),就可以了。


2
投票

我错误地命名了 /etc/httpd/conf.d 目录中的备份文件。在自述文件中,它指出它按字母顺序遍历所有 .conf 文件。

我创建了 ssl-<date>.conf (旨在作为备份),并且它在 ssl.conf 之前加载。它基于 ssl-<date>.conf 绑定 :443 端口,但在 ssl.conf 上失败。

一旦我将备份文件重命名为 ssl.conf。<date>,服务就可以正常启动。

请注意,我所在的服务器正在运行 RHEL 6


1
投票

我赞同马蒂厄的回答

我在httpd-ssl文件中评论了#Listen 443,apache就可以启动了

因为文件已经有 VirtualHost default:443


1
投票

让我再补充一个错误原因。在 httpd.conf 中我明确包含了

Include etc/apache24/extra/httpd-ssl.conf

虽然没有注意到前面的通配符

Include etc/apache24/extra/*.conf

Grepping 443 不会找到这个。


1
投票

我有同样的问题,是由于 /etc/httpd/conf.d 中 ssl.conf 的多个副本 - 应该只有一个。


0
投票

我已经检查并修复了以下问题并解决了 -

  1. httpd.conf 文件位于
    /etc/httpd/conf/
  2. 检查监听IP和端口,例如
    10.12.13.4:80
  3. 删除了额外的监听端口
  4. 重启httpd服务即可

0
投票

我在windows7、phpeclipse中启动XAMPP时遇到了这个问题。 我的解决方案是:

  • 1.注释掉\xampp pach

© www.soinside.com 2019 - 2024. All rights reserved.