“Make_sock: không thể liên kết với địa chỉ [::]: 443” khi khởi động lại apache (cài đặt trac và mod_wsgi)


92

Tôi đang cố gắng cài đặt trac và mod_wsgi qua SSL. Tôi đã cố gắng cài đặt thủ công nó, nhưng điều đó không hoạt động tốt nên tôi bắt đầu làm theo điều này: trac-on-ubuntu

Tôi đã bỏ qua phần svn vì tôi muốn sử dụng git để thay thế. Sau lần chỉnh sửa đầu tiên của httpd.conf:

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

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

Tôi khởi động lại apache chỉ để gặp lỗi này:

* Restarting web server apache2                                                    

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

                                                                     [ OK ]

Làm những điều này không cho thấy gì.

 netstat -anp | grep 443 
 fuser 443/tcp

Làm điều này không mang lại bất cứ điều gì ngoại trừ lệnh grep mà tôi đã chạy:

ps -aux | grep httpd

Tại sao nó nói rằng một cái gì đó khác đang sử dụng cổng khi không có gì hiển thị?

CHỈNH SỬA: Các bạn sẽ cười với điều này. Tôi đã có thêm Listen 443 trong port.conf mà lẽ ra không có ở đó. Xóa đã giải quyết được điều này.


Tốt bạn đã tìm thấy câu lệnh Nghe bổ sung. Sẽ chỉ đề xuất nguyên nhân đó càng tốt cho đến khi tôi nhận được bản chỉnh sửa của bạn. :-)
Graham Dumpleton

3
Bạn có thể muốn viết lại bản chỉnh sửa của mình thành một câu trả lời và chấp nhận nó. Đây là cách được khuyến nghị để đánh dấu một câu hỏi là "đã giải quyết" và không cần thêm nhiều hỗ trợ.
hasienda

2
Thật không may, tôi có vấn đề này, nhưng thêm "Nghe 443" không phải là nguyên nhân ...
Cerin

1
Tôi đã có cùng vấn đề y hệt. Đã xóa 443 hàng đầu khỏi port.conf, khởi động lại apache2 và tất cả đều hoạt động.
PrestonDocks

8 năm sau và một cá nhân khác không muốn nhắc đến tên mình gặp phải vấn đề này. Và tất nhiên 8 năm sau khi tìm kiếm thông báo lỗi bạn gặp sự cố tràn ngăn xếp. Đó là lý do tại sao tôi phải quảng cáo một tin nhắn;)
NME New Media Entertainment

Câu trả lời:


228

Các bạn sẽ cười vì điều này. Tôi đã có thêm Listen 443 trong port.conf mà lẽ ra không có ở đó. Loại bỏ đã giải quyết điều này.


44
Cảm ơn, tôi đã ở trong /etc/httpd/conf.d/ssl.conf
Nabil Kadimi

15
Tôi đã cập nhật apache với YUM và nó đã tạo một tệp ssl.conf mới với một bản lắng nghe khác 443 ....
zzarbi

4
Cảm ơn bạn ... Một ngày nào đó, tôi hy vọng cho một máy chủ web như triển khai rộng rãi như apache đó không phải là một cơn đau đầu phức tạp để cấu hình
Mike Pennington

3
Trong trường hợp của tôi, việc nâng cấp httpd trên Centos đã gây ra việc cài đặt lại ssl.conf ... nhưng chúng tôi khai báo Listen 443 trong một tệp cấu hình khác. Con rối loại bỏ ssl.conf ... nhưng con rối chạy dưới hành khách / httpd. Vì vậy, đặc vụ ngụy không bao giờ có cơ hội xóa ssl.conf, vì vậy có 2 lệnh Listen 443, như được mô tả ở đây.
rfay

1
Tôi đã chạy certbot, đã chèn một mục nhập 443 khác vào tệp cấu hình của tôi. Cảm ơn!
Senica Gonzalez

16

Cảm ơn câu trả lời của bạn, trên phiên bản apache 2.4.x, nếu đã cài đặt ssl_module bằng lệnh yum, bạn không muốn thêm cổng : 443 vào tệp httpd.conf (main),

Để tìm ra cổng 443 trong cấu hình tệp,

# 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

Chỉ cần xóa dòng hoặc lệnh cho nó (Nghe 443) khỏi tệp httpd.conf .


1
Điều này đã thực hiện thủ thuật! Trong trường hợp của tôi, lỗi xuất hiện sau một yum update:-P
Pha-trốt

15

Tôi đang thêm một câu trả lời khác cho vấn đề này vì tôi đã gặp vấn đề tương tự và giải quyết nó theo cách tương tự: Tôi đã cài đặt SSL trên apache2 bằng cách sử dụng a2enmod ssl, có vẻ như đã thêm một cấu hình bổ sung trong /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>

Tôi đã phải nhận xét đầu tiên Listen 443sau NameVirtualHost *:443chỉ thị:

NameVirtualHost *:443
#Listen 443

Nhưng tôi nghĩ tôi cũng có thể để nó và nhận xét những người khác. Dù sao, cảm ơn bạn cho giải pháp :)


4

Đối với những người khác không có chỉ thị Nghe trùng lặp và không có quy trình nào đang chạy trên cổng: hãy kiểm tra để đảm bảo rằng bạn không vô tình đưa port.conf hai lần vào apache2.conf (như tôi đã làm do hợp nhất không hợp lệ).


3

Tôi sử dụng apache phiên bản 2.4.27, cũng gặp sự cố này, đã giải quyết nó thông qua sửa đổi

the conf / extra / httpdahssl.conf, bình luận nội dung 18 dòng (Nghe 443 https), nó hoạt động tốt.


Bạn có thể sử dụng https nếu bạn nhận xét dòng này?
Hamfri

1

Tôi đã mắc lỗi đặt tên tệp sao lưu không chính xác trong thư mục /etc/httpd/conf.d. Trong README, nó nói rằng nó đi qua tất cả các tệp .conf theo thứ tự bảng chữ cái.

Tôi đã tạo ssl- < date > .conf (có nghĩa là một bản sao lưu) và nó đang tải trước ssl.conf. Nó đã ràng buộc cổng: 443 dựa trên ssl- < date > .conf và không thành công trên ssl.conf.

Khi tôi đổi tên các tập tin sao lưu vào ssl.conf. < Ngày >, dịch vụ bắt đầu mà không vấn đề.

Xin lưu ý, máy chủ tôi đang sử dụng đang chạy RHEL 6


Chuyện như thế này đã xảy ra với tôi, vì vậy tôi nghĩ tôi sẽ đề cập đến nó trong trường hợp nó giúp ích cho ai đó. Tôi đã đổi tên ssl.conf để có thể nhớ rằng nó được thiết lập để sử dụng letsencrypt. Sau đó, tôi cho phép những gì tôi nghĩ là một bản cập nhật nhỏ cho Apache xảy ra. Bản cập nhật đó đặt ssl.conf trở lại conf.d, tạo ra xung đột trong câu lệnh Nghe. Không chắc chắn phải làm gì về điều này ngoại trừ cảnh giác. Nếu tôi bị mắc kẹt với tên tệp ssl.conf mặc định, thì bản cập nhật có thể đã chặn nó!
Brian Doherty

Tôi đã làm điều tương tự và Apache không thể khởi động. Tôi đã xóa tệp sao lưu đó và nó bắt đầu hoạt động. Cảm ơn bạn rất nhiều vì câu trả lời này, bạn là một người tiết kiệm cuộc sống.
Umesh Patil

1

Hãy để tôi thêm một lý do nữa cho lỗi. Trong httpd.conf, tôi đã đưa vào một cách rõ ràng

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

trong khi không nhận thấy ký tự đại diện trước đó

Include etc/apache24/extra/*.conf

Grepping 443 sẽ không tìm thấy điều này.


0

Tôi đang sử dụng Ubuntu. Tôi vừa tắt chế độ ssl của apache2 và nó đã hoạt động với tôi.

a2dismod ssl

và sau đó khởi động lại apache2.

service apache2 restart

0

Tôi đã kiểm tra và sửa lỗi sau và đã giải quyết được -

  1. tệp httpd.conf tại /etc/httpd/conf/
  2. Đã kiểm tra IP nghe và cổng, ví dụ: 10.12.13.4:80
  3. Đã xóa (các) cổng nghe bổ sung
  4. Đã khởi động lại dịch vụ httpd để sử dụng

0

Tôi gặp sự cố trong windows7, phpeclipse, khi tôi khởi động XAMPP. Giải pháp của tôi là:

  • 1. Nhận xét về \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule ssl_module module / mod_ssl.so

  • 2.line539 -> #Include conf / extra / httpd-ssl.conf

hoặc bạn có thể thay đổi cổng 443 thành một cổng khác


0

Tôi tán thành câu trả lời của Matthieu

Tôi đã nhận xét #Listen 443 trong tệp httpd-ssl và apache có thể được khởi động

Bởi vì tệp đã có VirtualHost mặc định : 443


0

Trong httpd.conf thay vào đó:

Listen *:443

bạn cần viết Listen 127.0.0.1:443 Nó hoạt động cho tôi.


Bạn sẽ chỉ sử dụng 127.0.0.1trong một câu lệnh nghe nếu bạn muốn hạn chế chấp nhận các kết nối đến giao diện quay lại của vòng lặp máy chủ cục bộ. Loại bỏ các Listencâu lệnh trùng lặp như nhiều người đã nêu là giải pháp điển hình hơn cả. Nếu bạn có các bản sao, *:443thì việc thay đổi một cái để sử dụng 127.0.0.1sẽ không thực sự tạo ra sự khác biệt vì cái kia *:443vẫn sẽ thử và liên kết cùng một cổng trên 127.0.0.1.
Graham Dumpleton

0

Tôi đã gặp vấn đề tương tự, là do nhiều bản sao của ssl.conf Trong /etc/httpd/conf.d - Chỉ nên có một bản sao.


Xin lỗi phải nói, nhưng đây là một bình luận, không phải là một câu trả lời. Nếu bạn có thêm thông tin về giải pháp mà bạn đã tìm ra về trường hợp này, vui lòng cho chúng tôi biết.
RobertS hỗ trợ Monica Cellio
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.