问题描述
我正在尝试通过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,它不应该在那里。删除解决了这个问题。
最佳方案
你们会为此而笑。我在ports.conf中有一个额外的Listen 443,它不应该在那里。删除解决了这个问题。
次佳方案
我添加了另一个答案,因为我遇到了同样的问题,并且以相同的方式解决了问题:我使用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>
在NameVirtualHost *:443
指令之后,我不得不注释掉第一个Listen 443
:
NameVirtualHost *:443
#Listen 443
但我认为我也可以允许它并评论其他人。无论如何,谢谢您的解决方案:)
第三种方案
谢谢您的回答,在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)。
第四种方案
对于在端口上没有重复的Listen指令且没有正在运行的进程的其他所有人:请检查您是否没有在apache2.conf中不小心将ports.conf两次包含在内(因为合并不当,所以我这样做了)。