service httpd restart / (98) Alamat sudah digunakan

11

Tiba-tiba, saya tidak bisa memulai ulang apache di server web CentOS 6.8 saya:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

Saya mencoba banyak hal yang saya baca online, termasuk menghapus file kunci.

Saya memutuskan untuk mencoba me-reboot server. Setelah reboot, upaya memuat situs web yang di-host akan menghasilkan "502 Bad Gateway".

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

Terlepas dari status "mati", sekarang saya dapat memuat situs web!

Terkadang layanan httpd restart berfungsi ...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Tetapi di lain waktu itu menghasilkan kesalahan pertama di atas. Dalam hal ini saya dapat memperbaikinya dengan:

# killall -9 httpd
# service httpd start

Jadi saya bisa mengatasinya, tetapi saya benar-benar ingin tahu tentang apa yang terjadi dan bertanya-tanya apakah saya harus khawatir.

stevland
sumber
Apakah sistem file Anda penuh? Dan: ketika kesalahan muncul, jalankan netstat -tulpendan cari apa pun yang mendengarkan pada port 7080. Anda hanya menjalankan apache, kan? Port 7080 bukan kesalahan?
Lenniey
tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
stevland

Jawaban:

12

Anda mungkin telah menetapkan pendengar Anda di port itu dua kali di konfigurasi Anda di suatu tempat.

Dengarkan *: 7080

Jika Anda menjalankan tes konfigurasi Apache, itu akan mengatakan konfigurasi OK, sampai Anda benar-benar me-restart layanan, itu akan gagal dengan kesalahan yang sama dengan apa yang Anda lihat.

Juga verifikasi lokasi logging Anda ada dan dapat ditulis dan memiliki ruang untuk menulis, bahwa pesan pada akhirnya dicurigai.

Jeff W.
sumber
9

SSH ke server dan jalankan yang berikut:

setenforce 0

Ini akan menonaktifkan selinux sampai reboot berikutnya

Kemudian cobalah memuat ulang Apache

service httpd restart

Jika ini berhasil entah bagaimana selinux dihidupkan.

Untuk menonaktifkan secara permanen ikuti tautan ini:

https://kb.plesk.com/en/115626

Anthony Fornito
sumber
Meskipun saya menyukai jawaban yang mudah, sayangnya, itu tidak berhasil. :(
stevland
Bisakah Anda menjalankan perintah ini untuk melihat apa yang menggunakan port apa. Silakan tambahkan output ke pertanyaan atau pastebin. "netstat -ano | grep 80" "netstat -ano | grep 7080" "cat / etc / services | grep -w 80" "cat / etc / services | grep -w 7080" "nmap localhost | grep 80" "nmap localhost | grep 80 "" nmap localhost "
Anthony Fornito