PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache 2 startet nicht, tut nichts



hfriedrich
25.10.04, 23:57
Hallo Liste,

auf meinem virtuellen Server lief seit einigen Monaten ein apache 2. Mehrere Updates liefen problemlos.

Eines Morgens lief er allerdings nicht mehr. In den Log-Files gab es die Meldung SIGHUP recieved - trying to restart (woher auch immer). Dieser Start schlug wohl fehl und alle anderen seither auch.

Ich habe das neueste release 2.0.52 kompiliert und installiert.

Wenn ich über /etc/init.d/httpd start den Server starte, dann gibt es keine Fehlermeldung, der Server erscheint in der Prozessliste, liefert aber keine Dokumente aus.

Wenn ich über apachectl versuche, den Server neu zu starten, dann erscheint die Fehlermeldung: httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

Hat jemand eine Idee? Ich habe einen uralten Thread gelesen, der sich ganz ähnlich anhörte, aber auch nie abschließend beantwortet wurde.
Ich bin froh über jeden Tipp
Hans Friedrich

bluesky666
26.10.04, 00:07
steht denn irgend etwas in den Logfiles drin, weil so ist es ziemlich schwierig zu sagen was es ist.Kann es sein das die Platte voll ist vom Server ?

hfriedrich
26.10.04, 00:11
Nein, die Platte kann es nicht sein. Das sind nur ein paar MB Daten.

In den Log Files steht überhaupt nichts verwertbares. Außer dem, was ich in meinem ersten Posting zitiert hatte.

Ich kann auch nicht verstehen, wieso der Apache stehen bleibt und ohne Änderung nicht wieder startet.

Tomek
26.10.04, 00:41
Stell mal das LogLevel in der Apache-Konfiguration auf debug und starte den Apache. Danach sollte das Error-Log mehr Informationen preisgeben.

hfriedrich
26.10.04, 00:52
Hatte ich auch gehofft, dass meine Logfiles dann mehr her geben.


[Tue Oct 26 00:24:16 2004] [info] mod_unique_id: using ip addr 63.75.218.64
[Tue Oct 26 00:24:17 2004] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Oct 26 00:24:17 2004] [info] Init: Initializing OpenSSL library
[Tue Oct 26 00:24:17 2004] [info] Init: Seeding PRNG with 136 bytes of entropy
[Tue Oct 26 00:24:17 2004] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Tue Oct 26 00:24:17 2004] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Tue Oct 26 00:24:17 2004] [info] Init: Initializing (virtual) servers for SSL
[Tue Oct 26 00:24:17 2004] [warn] RSA server certificate CommonName (CN) `208064.vserver.de' does NOT match server name!?
[Tue Oct 26 00:24:17 2004] [info] Server: Apache/2.0.50, Interface: mod_ssl/2.0.50, Library: OpenSSL/0.9.7a
[Tue Oct 26 00:24:17 2004] [notice] Digest: generating secret for digest authentication ...

Das einzige, was etwas seltsamm ist, ist, dass die Server-Version die Falsche ist. Nämlich die alte.

Tomek
26.10.04, 00:54
Das einzige, was etwas seltsamm ist, ist, dass die Server-Version die Falsche ist. Nämlich die alte.

Wenn die Version 2.0.50 angezeigt wird, dann läuft auch Version 2.0.50. Wie hast du Apache installiert? Wahrscheinlich ist dir dabei ein Fehler passiert. Wieso benutzt du außerdem nicht die originalen Apache-Pakete aus deiner Distribution?

hfriedrich
26.10.04, 01:06
apachectl -v gibt mir diese Angabe aus.

Server version: Apache/2.0.52
Server built: Oct 25 2004 13:14:11

Ich habe keine Ahnung, was bei der Installation schief gelaufen sein könnte. Ich habe die config.nice vom letzten Mal benutzt, Kompilation und Installation liefen ohne Fehler durch.

Zu deiner Frage: auf Apache 2 habe ich damals gewechselt wegen der besseren ssl-Unterstützung. Und bisher lief ja auch alles problemlos.

Mir fehlt leider völlig der Ansatzpunkt, wo ich den Fehler suchen soll. Wieso kann sich mein Browser mit dem httpd verbinden, erhält aber keine Daten? Wieso startet /etc/init.d/httpd die alte Version und apachectl schlägt fehl? Wieso funktionieren die alten Konfigurationsdateien nicht, die unverändert seit Wochen laufen...

Gruß
Hans Friedrich

Tomek
26.10.04, 01:15
Momentan ist es aber so, dass der alte Apache gestartet wird und eben nicht der neue.

Welche Distribution und Version hast du da?

hfriedrich
26.10.04, 01:18
Zwischendurch mal ein Dankeschön für deine Mühe und wahrscheinlich frage ich etwas blöd. Bezieht sich die Ausgabe von apachectl -v nicht auf den laufenden httpd-Prozess?

Als System verwende ich Redhat 9.

Tomek
26.10.04, 01:39
Zwischendurch mal ein Dankeschön für deine Mühe und wahrscheinlich frage ich etwas blöd.
Dafür ist das Forum da. ;)


Bezieht sich die Ausgabe von apachectl -v nicht auf den laufenden httpd-Prozess?
Nicht unbedingt. Mit dem Befehl which apachectl kannst du erstmal feststellen welches Skript beim Aufruf genau benutzt wird. Dann würde ich einen Blick in das Initskript werfen, dass du zum Starten des Apache benutzt.


Als System verwende ich Redhat 9.
Red Hat 9 wird seit dem 30. April 2004 nicht mehr unterstützt und erhält somit keine Sicherheitsupdates. Selbst wenn du Pakete vom "Fedora Legacy Projekt" einsetzt, sind nicht alle Sicherheitslücken, die nach dem 30. April 2004 entdeckt worden sind, geschlossen.
Ich würde an deiner Stelle über ein Upgrade auf das Nachfolge-Projekt Fedora (http://fedora.redhat.com/) nachdenken. Dort gibts auch neuere Pakete, wie z.B. eben Apache2. Ein Upgrade des vorhandenen Systems auf Fedora ist sogar möglich. Falls du daran Interesse hast, kannst du dir hier (http://www.brandonhutchinson.com/Upgrading_Red_Hat_Linux_with_yum.html) anschauen, wie man das Upgrade hinbekommt.

hfriedrich
26.10.04, 01:49
Vielen Dank, das werde ich mir auf jeden Fall mal anschauen.

olaf_m
26.10.04, 06:17
Hallo,


(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down

wenn ich das richtig interpretiere, heisst das, dass der Port 443 schon belegt ist, wenn der apache gestartet wird. Schau doch einfach mal mit "nmap localhost" nach, welche Ports vor dem Start geöffnet sind. Vielleicht hilft das weiter.

Gruss Olaf

hfriedrich
26.10.04, 17:57
Hallo Olaf, hallo Liste

du hast recht, der Port ist zu diesem Zeitpunkt belegt. Aber das liegt daran, dass ich zu diesem Punkt versucht habe, den Server neu zu starten. Hier noch einmal eine Zusammenfassung:

Ich starte den Apachen mit apachectl start. (alternativ dem initscript, macht keinen Unterschied) Es gibt keine Fehlermeldung, mit top sehe ich einen httpd-Prozess, ich kann mich über telnet mit dem Server verbinden. Aber wenn ich versuche, über den Webbrowser eine Seite zu laden, dann liefert der Apache keine Antwort, sondern die Anforderung endet irgendwann mit einem Timeout.

Wenn ich jetzt mit apachectl restart den Server neu starten möchte, dann kommt die Fehlermeldung httpd not running, trying to start. Jetzt sind die Ports aber belegt, so dass der gepostete Fehler protokolliert wird. Auch die verschiedenen stop-scripte haben keine Wirkung

Hat jemand eine Idee?

Gruß
Hans Friedrich

PigPen|tuX
27.10.04, 10:33
apachectl -v gibt mir diese Angabe aus.

Server version: Apache/2.0.52
Server built: Oct 25 2004 13:14:11

Ich habe keine Ahnung, was bei der Installation schief gelaufen sein könnte. Ich habe die config.nice vom letzten Mal benutzt, Kompilation und Installation liefen ohne Fehler durch.

Zu deiner Frage: auf Apache 2 habe ich damals gewechselt wegen der besseren ssl-Unterstützung. Und bisher lief ja auch alles problemlos.

Mir fehlt leider völlig der Ansatzpunkt, wo ich den Fehler suchen soll. Wieso kann sich mein Browser mit dem httpd verbinden, erhält aber keine Daten? Wieso startet /etc/init.d/httpd die alte Version und apachectl schlägt fehl? Wieso funktionieren die alten Konfigurationsdateien nicht, die unverändert seit Wochen laufen...

Gruß
Hans Friedrich

also in welchem Verzeichnis hast du den kompiliert?

hast du eine Statische Verlinkung ? z.B.

/usr/local/apache2/current -> /usr/local/apache2/apache2-0.52

das wird interessant, denn die Pfade stehen in der httpd.conf und auch im apachectl2

man sollte immer dann aus dem neu kompilierten apache sourcen aus dem /bin verzeichnis den "apachectl2" kopieren nach /etc/init.d/..

aus dem Grunde koennte auch die falsche Versions-Nummer resultieren.

piggi