service httpd restart / (98) Adresse déjà utilisée

11

À l'improviste, je ne peux pas redémarrer apache sur mon serveur Web CentOS 6.8:

# 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]

J'ai essayé un tas de choses que je lis en ligne, y compris la suppression des fichiers de verrouillage.

J'ai décidé d'essayer de redémarrer le serveur. Après le redémarrage, une tentative de chargement de sites Web hébergés entraînerait «502 Bad Gateway».

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

Malgré le statut "mort", je peux maintenant charger des sites Web!

Parfois, le service httpd restart fonctionne ...

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

Mais d'autres fois, il en résulte la première erreur ci-dessus. Dans ce cas, je peux le réparer avec:

# killall -9 httpd
# service httpd start

Je peux donc contourner ce problème, mais je suis vraiment curieux de savoir ce qui se passe et je me demande si je devrais m'inquiéter.

stevland
la source
Votre système de fichiers est-il plein? Et: lorsque l'erreur se produit, exécutez netstat -tulpenet recherchez quelque chose à écouter sur le port 7080. Vous exécutez uniquement apache, non? Le port 7080 n'est pas une erreur?
Lenniey
tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
stevland

Réponses:

12

Vous avez peut-être défini votre écouteur sur ce port deux fois dans vos configurations quelque part.

Écouter *: 7080

Si vous exécutez un test de configuration Apache, il dira que la configuration est OK, jusqu'à ce que vous redémarriez réellement le service, il échouera avec une erreur similaire à ce que vous voyez.

Vérifiez également que votre emplacement de journalisation existe et est accessible en écriture et dispose d'un espace pour écrire, ce message à la fin est suspect.

Jeff W.
la source
9

SSH sur le serveur et exécutez ce qui suit:

setenforce 0

Cela désactivera selinux jusqu'au prochain redémarrage

Essayez ensuite de recharger Apache

service httpd restart

Si cela fonctionne, Selinux est activé.

Pour désactiver définitivement ce lien:

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

Anthony Fornito
la source
Autant que j'aime les réponses faciles, malheureusement, cela n'a pas fonctionné. :(
stevland
Pouvez-vous exécuter ces commandes pour voir ce qui utilise quels ports. Veuillez ajouter une sortie à la question ou coller. "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