Ich hatte einige Probleme beim Neustart von Apache mit 2000 virtuellen Hosts.
Ich verwende Apache 2.2.22 + PHP 5.4.6 auf CentOS 5.8 64-Bit.
Beim Neustartversuch wird Folgendes angezeigt:
/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]
Wenn ich killall -9 httpd
es mache, ist es für eine Weile ok und dann passiert es wieder :/
Antwort1
Für mich sieht es so aus, als ob Apache von Anfang an nicht lief, zumindest nicht unter der PID, unter der das Init-Skript ihn gestartet hat. Überprüfen Sie die Ausgabe von „ps auxwww“ (oder geben Sie sie hier ein).
Mein tiefstes Gefühl sagt mir, dass Ihr Apache-Root-Prozess abstürzt, die untergeordneten Prozesse jedoch am Leben bleiben und auf Port 80 lauschen. Wenn das so ist, sehen Sie in Ihrem Apache-Fehlerprotokoll und in den Systemprotokollen nach, was den Root-Prozess abstürzt.
Andere Möglichkeiten: Möglicherweise starten Sie Apache manuell außerhalb des Init-Skripts oder etwas anderes lauscht auf Port 80 (das würde jedoch nicht erklären, warum killall -9 httpd funktioniert).
Antwort2
Es war ein Paketproblem. Ich habe httpd aus dem Webtactic-Repo. Habe es auf das von Lxcenter umgestellt und es funktioniert sehr gut ;)