“Make_sock: не вдалося прив’язати до адреси [::]: 443” під час перезапуску apache (встановлення trac та mod_wsgi)


91

Я намагаюся встановити 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, якого там не повинно було бути. Видалення цього вирішило.


Добре, що ви знайшли зайве твердження прослуховування. Збирався запропонувати саме таку можливу причину, поки я не дійшов до вашого редагування. :-)
Грем Демплтон

3
Можливо, ви захочете переписати своє редагування у відповідь та прийняти його. Це рекомендований спосіб позначити питання як "вирішене" і не потребує набагато більшої підтримки.
hasienda

2
На жаль, у мене є ця проблема, але додаткове "Слухай 443" не причина ...
Черін

1
У мене була точно така ж проблема. Вилучив найпопулярніші 443 з ports.conf, перезапустив apache2, і все працювало.
PrestonDocks

Через 8 років інша людина, яка не хоче згадувати своє ім'я, стикається з цією проблемою. І звичайно через 8 років пошук повідомлення про помилку, яке ви потрапляєте на переповнення стека. Ось чому мені просто довелося додати повідомлення;)
NME New Media Entertainment

Відповіді:


226

Ви, хлопці, будете з цього сміятися. У мене був додатковий 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 в іншому конфігураційному файлі. Маріонетка видаляє ssl.conf ... але маріонетка працює під пасажиром / httpd. Отже, маріонетка ніколи не мала можливості видалити ssl.conf, тому було 2 директиви Listen 443, як описано тут.
rfay

1
Я запустив certbot, який вставив ще 443 запис у мій конфігураційний файл. Дякую!
Senica Gonzalez

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

Просто видаліть рядок або накажіть його (Слухати 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 (як це було зроблено через погане злиття).


2

Я використовую apache версії 2.4.27, також маю цю проблему, вирішив її за допомогою модифікації

conf / extra / httpdahssl.conf, прокоментуйте вміст із 18 рядків (Слухайте 443 https), він чудово працює.


1

Я помилився, неправильно назвавши файл резервної копії в каталозі /etc/httpd/conf.d. У README зазначено, що він проходить за алфавітом усі файли .conf.

Я створив ssl- < date > .conf (мав бути резервною копією), і він завантажувався до ssl.conf. Він прив'язував порт: 443 на основі ssl- < дати > .conf та не працював на ssl.conf.

Одного разу я перейменував файл резервної копії в ssl.conf. < Дата >, служба запустилася без проблем.

Як примітка, на сервері, на якому я перебуваю, працює 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 модулі / 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тверджень, як зазначають багато людей, є найбільш типовим рішенням. Якщо у вас були дублікати, увімкнено *: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.