«Make_sock: не удалось привязать к адресу [::]: 443» при перезапуске apache (установка trac и mod_wsgi)


92

Я пытаюсь установить trac и mod_wsgi через SSL. Я попытался установить его вручную, но это не сработало, поэтому я начал следить за этим: 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

Почему он говорит, что что-то еще использует порт, когда ничего не отображается?

EDIT: вы, ребята, будете смеяться над этим. У меня был лишний Listen 443 в ports.conf, которого там не должно было быть. Удаление этого решило эту проблему.


Хорошо, что вы нашли дополнительное сообщение Listen. Собирался предложить именно это как возможную причину, пока не добрался до вашего редактирования. :-)
Грэм Дамплтон 05

3
Возможно, вы захотите переписать свою правку в ответ и принять его. Это рекомендуемый способ пометить вопрос как «решенный» и не требующий дополнительной поддержки.
hasienda 05

2
К сожалению, у меня есть эта проблема, но лишнее «Слушай 443» не является причиной ...
Керин

1
У меня была точно такая же проблема. Удалил самый верхний 443 из ports.conf, перезапустил apache2 и все заработало.
PrestonDocks

8 лет спустя еще один человек, который не хочет называть свое имя, столкнулся с этой проблемой. И, конечно же, 8 лет спустя в поисках сообщения об ошибке вы попадаете в переполнение стека. Вот почему мне просто нужно было разместить сообщение;)
NME New Media Entertainment,

Ответы:


228

Вы, ребята, будете над этим смеяться. У меня был лишний Listen 443 в ports.conf, которого там не должно было быть. Удаление этого решило эту проблему.


44
Спасибо, мой был в /etc/httpd/conf.d/ssl.conf
Nabil Kadimi

15
Я обновил apache с помощью YUM, и он создал новый файл ssl.conf с другим прослушиванием 443 ....
zzarbi

4
Спасибо ... Когда-нибудь, я надеюсь, что веб-сервер, столь же широко развернутый, как apache, не будет сложной головной болью для настройки
Майк Пеннингтон,

3
В моем случае обновление httpd на Centos вызвало переустановку ssl.conf ... но мы объявляем Listen 443 в другом файле конфигурации. Puppet удаляет ssl.conf ... но марионетка запускается с именем пассажира / httpd. Итак, у марионеточного агента не было возможности удалить ssl.conf, поэтому было 2 директивы Listen 443, как описано здесь.
rfay

1
Я запустил certbot, который вставил еще одну запись 443 в мой файл конфигурации. Благодарность!
Сеника Гонсалес

16

Спасибо за ответы, в версиях apache 2.4.x, если вы установили ssl_module с помощью команды yum, не хотите добавлять порт : 443 в файл httpd.conf (основной),

Чтобы узнать порт 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

Просто удалите строку или команду (Listen 443) из файла httpd.conf .


1
Это сработало! В моем случае эта ошибка появилась после yum update:-P
Pathros

15

Я добавляю еще один ответ на этот вопрос, поскольку у меня была такая же проблема, и я решил ее таким же образом: я установил SSL на apache2, используя a2enmod 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

Я использую apache версии 2.4.27, тоже есть эта проблема, решил ее изменить

conf / extra / httpdahssl.conf, прокомментируйте содержимое 18 строк (Listen 443 https), он отлично работает.


Можете ли вы использовать https, если прокомментируете эту строку?
Хамфри,

1

Я допустил ошибку, неправильно назвав файл резервной копии в каталоге /etc/httpd/conf.d. В README указано, что он в алфавитном порядке просматривает все файлы .conf.

Я создал ssl- < date > .conf (предназначенный для резервного копирования), и он загружался до ssl.conf. Он привязывал порт: 443 к ssl- < date > .conf и не работал с ssl.conf.

Как только я переименовал файл резервной копии в ssl.conf. < Date >, служба запустилась без проблем.

Обратите внимание: на сервере, на котором я работаю, работает RHEL 6.


Что-то подобное случилось со мной, поэтому я подумал, что упомяну об этом, если это кому-то поможет. Я переименовал ssl.conf, чтобы помнить, что он настроен на использование letsencrypt. Позже я разрешил то, что я считал незначительным обновлением Apache. Это обновление вернуло ssl.conf в conf.d, что привело к конфликту в операторах Listen. Не уверен, что с этим делать, кроме как быть бдительным. Если бы я придерживался имени файла ssl.conf по умолчанию, обновление, вероятно, испортило бы его!
Брайан Доэрти

Я сделал то же самое, но Apache не запустился. Я удалил этот резервный файл, и он начал работать. Большое спасибо за этот ответ, вы спасаете жизнь.
Умеш Патил,

1

Добавлю еще одну причину ошибки. В httpd.conf я явно включил

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

пока не заметил предыдущий подстановочный знак

Include etc/apache24/extra/*.conf

Grepping 443 этого не обнаружит.


0

Я использую Ubuntu. Я просто отключил ssl-режим apache2, и у меня это сработало.

a2dismod ssl

а затем перезапустил apache2.

service apache2 restart

0

Я проверил и исправил следующее и решил:

  1. файл httpd.conf по адресу /etc/httpd/conf/
  2. Проверил прослушивающий IP и порт, например 10.12.13.4:80
  3. Удалены лишние порты прослушивания
  4. Перезапустил службу httpd, чтобы взять

0

Я сталкиваюсь с проблемой в windows7, phpeclipse, когда запускаю XAMPP. Мое решение:

  • 1. закомментировал \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule ssl_module modules / mod_ssl.so

  • 2.line539 -> # Включить conf / extra / httpd-ssl.conf

или вы можете поменять порт 443 на другой


0

Я поддержал ответ Матье

Я прокомментировал #Listen 443 в файле httpd-ssl, и можно запускать apache

Поскольку файл уже имеет значение VirtualHost по умолчанию : 443


0

Вместо этого в httpd.conf:

Listen *:443

Вам нужно написать Listen 127.0.0.1:443 У меня работает.


Вы могли бы использовать 127.0.0.1в операторе listen только в том случае, если хотите ограничить прием соединений только интерфейсом обратной связи локального хоста. Удаление повторяющегося Listenзаявления, как утверждают многие, является более типичным решением. Если у вас были дубликаты, *:443то изменение одного из них на 127.0.0.1самом деле не должно было иметь никакого значения, поскольку другой *:443все равно будет пытаться привязать тот же порт 127.0.0.1.
Грэм Дамплтон

0

У меня была такая же проблема, из-за нескольких копий ssl.conf в /etc/httpd/conf.d - должен быть только один.


Извините, но это комментарий, а не ответ. Если у вас есть дополнительная информация о решении, что вы узнали о случае, сообщите нам об этом.
RobertS поддерживает Монику
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.