“Make_sock: tidak dapat mengikat ke alamat [::]: 443” saat memulai ulang apache (menginstal trac dan mod_wsgi)

92

Saya mencoba menginstal trac dan mod_wsgi melalui SSL. Saya mencoba menginstalnya secara manual, tetapi itu tidak berhasil dengan baik jadi saya mulai mengikuti ini: trac-on-ubuntu

Saya melewatkan bagian svn karena saya ingin menggunakan git sebagai gantinya. Setelah pengeditan pertama httpd.conf:

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

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

Saya memulai ulang apache hanya untuk mendapatkan kesalahan ini:

* Restarting web server apache2                                                    

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

                                                                     [ OK ]

Melakukan ini tidak menunjukkan apa-apa.

 netstat -anp | grep 443 
 fuser 443/tcp

Melakukan ini tidak menghasilkan apa-apa kecuali perintah grep yang saya jalankan:

ps -aux | grep httpd

Mengapa dikatakan bahwa ada sesuatu yang lain menggunakan port ketika tidak ada yang muncul?

EDIT: Kalian akan menertawakan ini. Saya memiliki Listen 443 ekstra di ports.conf yang seharusnya tidak ada di sana. Menghapus itu memecahkan masalah ini.

sirip hiu
sumber
Baik Anda menemukan pernyataan Dengarkan ekstra. Akan menyarankan itu sebagai penyebab yang mungkin sampai saya mendapatkan hasil edit Anda. :-)
Graham Dumpleton
3
Anda mungkin ingin menulis ulang hasil edit Anda menjadi jawaban dan menerimanya. Ini adalah cara yang disarankan untuk menandai pertanyaan sebagai "terselesaikan" dan tidak membutuhkan lebih banyak dukungan.
hasienda
2
Sayangnya, saya memiliki masalah ini, tetapi "Dengarkan 443" tambahan bukanlah penyebabnya ...
Cerin
1
Saya memiliki masalah yang persis sama. Menghapus 443 teratas dari ports.conf, memulai ulang apache2 dan semuanya berfungsi.
PrestonDocks
8 tahun kemudian dan individu lain yang tidak ingin menyebutkan namanya menemukan masalah ini. Dan tentu saja 8 tahun kemudian mencari pesan kesalahan yang Anda temukan di stack overflow. Itulah mengapa saya hanya perlu mengiklankan pesan;)
NME New Media Entertainment

Jawaban:

228

Kalian pasti akan menertawakan ini. Saya memiliki Listen 443 ekstra di ports.conf yang seharusnya tidak ada di sana. Menghapus itu memecahkan masalah ini.

sirip hiu
sumber
44
Terima kasih, milik saya ada di
/etc/httpd/conf.d/ssl.conf
15
Saya memperbarui apache dengan YUM, dan itu membuat file ssl.conf baru dengan mendengarkan lain 443 ....
zzarbi
4
Terima kasih ... Suatu hari, saya berharap untuk server web yang digunakan secara luas sebagai apache yang tidak membuat pusing kepala yang berbelit-belit untuk dikonfigurasi
Mike Pennington
3
Dalam kasus saya, peningkatan httpd pada Centos menyebabkan penginstalan ulang ssl.conf ... tetapi kami mendeklarasikan Listen 443 di file konfigurasi yang berbeda. Puppet menghapus ssl.conf ... tapi wayang berada di bawah penumpang / httpd. Jadi agen boneka tidak pernah mendapat kesempatan untuk menghapus ssl.conf, jadi ada 2 arahan Listen 443, seperti yang dijelaskan di sini.
rfay
1
Saya menjalankan certbot, yang memasukkan entri 443 lainnya ke file konfigurasi saya. Terima kasih!
Senica Gonzalez
16

Terima kasih atas jawaban anda, pada versi apache 2.4.x jika sudah menginstall ssl_module menggunakan perintah yum, jangan mau menambahkan port : 443 di file httpd.conf (main),

Untuk mengetahui port 443 di file konfigurasi,

# 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

Hapus saja baris atau perintah itu (Listen 443) dari file httpd.conf .

lakshmikandan
sumber
1
Ini berhasil! Dalam kasus saya, kesalahan itu muncul setelah yum update:-P
Pathros
15

Saya menambahkan jawaban lain untuk ini karena saya memiliki masalah yang sama dan menyelesaikannya dengan cara yang sama: Saya telah menginstal SSL pada apache2 menggunakan a2enmod ssl, yang tampaknya telah menambahkan konfigurasi tambahan di /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>

Saya harus memberi komentar pertama Listen 443setelah NameVirtualHost *:443arahan:

NameVirtualHost *:443
#Listen 443

Tapi saya pikir saya bisa membiarkannya dan mengomentari yang lain. Bagaimanapun, terima kasih atas solusinya :)

Matthieu
sumber
4

Untuk semua orang yang tidak memiliki arahan Listen duplikat dan tidak ada proses yang berjalan di port: periksa apakah Anda tidak menyertakan ports.conf dua kali secara tidak sengaja di apache2.conf (seperti yang saya lakukan karena penggabungan yang buruk).

Andreas Gohr
sumber
3

Saya menggunakan apache versi 2.4.27, juga mengalami masalah ini, menyelesaikannya melalui modifikasi

conf / extra / httpdahssl.conf, komentari konten baris 18 (Dengarkan 443 https), berfungsi dengan baik.

tao.zhang
sumber
Apakah Anda dapat menggunakan https jika Anda mengomentari baris ini?
Hamfri
1

Saya membuat kesalahan dengan salah menamai file cadangan di direktori /etc/httpd/conf.d. Dalam README, dinyatakan bahwa ia menelusuri semua file .conf secara alfabetis.

Saya telah membuat ssl- < date > .conf (dimaksudkan sebagai cadangan) dan dimuat sebelum ssl.conf. Itu mengikat port: 443 berdasarkan ssl- < date > .conf dan gagal pada ssl.conf.

Setelah saya mengganti nama file cadangan menjadi ssl.conf. < Date >, layanan dimulai tanpa masalah.

Sebagai catatan, server tempat saya menjalankan RHEL 6

Mike F.
sumber
Sesuatu seperti ini terjadi pada saya, jadi saya pikir saya akan menyebutkannya jika itu membantu seseorang. Saya mengganti nama ssl.conf sehingga saya dapat mengingat bahwa itu diatur untuk menggunakan letsencrypt. Kemudian, saya membiarkan apa yang saya anggap sebagai pembaruan kecil untuk Apache terjadi. Pembaruan itu membuat ssl.conf kembali ke conf.d, membuat konflik dalam pernyataan Listen. Tidak yakin apa yang harus dilakukan tentang ini kecuali waspada. Jika saya terjebak dengan nama file ssl.conf default, pembaruan mungkin akan merusaknya!
Brian Doherty
Saya telah melakukan hal yang sama dan Apache tidak dapat memulai. Saya telah menghapus file cadangan itu dan mulai berfungsi. Terima kasih banyak atas jawaban ini, Anda adalah penyelamat.
Umesh Patil
1

Izinkan saya menambahkan satu alasan lagi untuk kesalahan tersebut. Di httpd.conf saya sertakan secara eksplisit

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

sementara tidak melihat karakter pengganti sebelumnya

Include etc/apache24/extra/*.conf

Grepping 443 tidak akan menemukan ini.

Vladimir Botka
sumber
0

Saya menggunakan Ubuntu. Saya baru saja menonaktifkan mode ssl apache2 dan itu berhasil untuk saya.

a2dismod ssl

dan kemudian restart apache2.

service apache2 restart
Baran
sumber
0

Saya telah memeriksa dan memperbaiki hal-hal berikut dan menyelesaikannya -

  1. httpd.conf file di /etc/httpd/conf/
  2. Memeriksa IP dan port mendengarkan misalnya 10.12.13.4:80
  3. Port mendengarkan ekstra dihapus
  4. Mulai ulang layanan httpd untuk mengambil
Rajorshe Mistry
sumber
0

Saya menemui masalah di windows7, phpeclipse, ketika saya memulai XAMPP. Solusi saya adalah:

  • 1. Mengomentari \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule ssl_module modules / mod_ssl.so

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

atau Anda dapat mengubah port 443 ke port lain

XuLu
sumber
0

Saya mendukung jawaban Matthieu

Saya berkomentar #Dengarkan 443 di file httpd-ssl dan apache dapat dimulai

Karena file VirtualHost sudah memiliki default : 443

Sitti Munirah Abdul Razak
sumber
0

Di httpd.conf sebagai gantinya:

Listen *:443

Anda perlu menulis Listen 127.0.0.1:443 Itu berhasil untuk saya.

Aleksey Povar
sumber
Anda hanya akan menggunakan 127.0.0.1dalam pernyataan mendengarkan jika Anda ingin membatasi penerimaan koneksi ke antarmuka kembali loop host lokal saja. Penghapusan Listenpernyataan duplikat seperti yang dinyatakan oleh banyak orang adalah solusi yang lebih umum. Jika Anda memiliki duplikat, aktif *:443, maka mengubah satu untuk digunakan 127.0.0.1seharusnya tidak membuat perbedaan karena yang lain *:443masih akan mencoba dan mengikat port yang sama 127.0.0.1.
Graham Dumpleton
0

Saya memiliki masalah yang sama, karena banyak salinan ssl.conf Di /etc/httpd/conf.d - Seharusnya hanya ada satu.

Tidak diketahui
sumber
Maaf untuk mengatakannya, tapi ini adalah komentar, bukan jawaban. Jika Anda memiliki informasi lebih lanjut tentang solusi apa yang telah Anda temukan tentang kasus ini, beri tahu kami.
RobertS mendukung Monica Cellio