Apache-Fehlermeldung "httpd.pid overwritten..."
Ingo Werner
- perl
Hallo!
Ich habe schon alles mögliche durchforstet, aber zu meinem Problem keine Lösung gefunden:
Ich habe als lokalen Webserver den Omnihttpd als Dienst in WinNT (SP 6)installiert.
Meine Perl-Programme erzeugen auch! html- und andere Dateien in meinen Websites.
Lokal entwickle ich für's Web.
Der Omnihttpd macht alles wunderbar.
Jetzt will ich auch den Apache kennenlernen und habe ihn schon vor einem Jahr installiert.
Er zeigt alles an und Perl-Programme, die keine Dateien schreiben, laufen auch wunderbar.
Aber das Dateienschreiben klappt überhaupt nicht.
Er bricht mittendrin ab, die Datei wird nur zu einem geringen Teil geschrieben und das war's.
Deswegen hatte ich bis jetzt den Omnihttpd weiterbenutzt.
Jetzt will ich aber wissen, wie ich auch den Apache zum sauber funktionieren bringen kann.
Die Fehlermeldung lautet ausführlich (ist ja bekannt):
"[warn] pid file c:/programme/apache group/apache/logs/httpd.pid overwritten before the error.log file could be opened. More information may be available in the error.log file."
Nur im errorlog steht gar nichts drin.
Interessanterweise hat er einmal zwei ganz kleine Dateien Perl schreiben lassen.
Irgendjemand aus der Linux-Szene hat mir dann mal was über eine "Cachevergrößerung" erzählt, aber im config-File finde ich dazu nichts.
Wer hat denn damit schon Erfahrungen gemacht? Oder hat sogar die Lösung?
Danke und Gruß
Ingo
Hi Ingo,
Aber das Dateienschreiben klappt überhaupt nicht.
Das ist aber eine Funktion Deines Skripts, nicht des Apache.
Es könnte natürlich sein, daß sich Dein Skript auf irgendwas Undefiniertes,
das bei einem anderen Server zufällig gegeben ist, verläßt - beispielsweise
auf das current directory. Das wäre eine Möglichkeit, wieso ein CGI-Skript
unter dem einen Server läuft und unter dem anderen nicht.
"[warn] pid file c:/programme/apache group/apache/logs/httpd.pid
overwritten before the error.log file could be opened.
More information may be available in the error.log file."
Die Datei httpd.pid enthält die Prozeß-ID des Apache-daemons.
Geschrieben wird diese Datei m. E. nur zu einem einzigen Zeitpunkt, nämlich
beim Start des Apache-Servers.
Bei der Beendigung des Apache-Servers wird sie automatisch gelöscht.
Wenn diese Datei also _überschrieben_ wurde, dann ist vermutlich irgend
etwas mit Deiner Steuerung des Apache nicht so, wie es sein sollte.
Gefühlsmäßig würde ich sagen, Du hast versucht, den Apache mehrfach zu
starten oder etwas Ähnliches. Vielleicht hast Du den Apache so installiert,
daß er im Hintergrund als System Service läuft, und ihn zusätzlich noch mal
als Desktop-Programm gestartet? Solche Dinge sind mir auch schon passiert.
Viele Grüße
Michael
hi Michael,
"[warn] pid file c:/programme/apache group/apache/logs/httpd.pid
overwritten before the error.log file could be opened.
More information may be available in the error.log file."
Die Datei httpd.pid enthält die Prozeß-ID des Apache-daemons.
Geschrieben wird diese Datei m. E. nur zu einem einzigen Zeitpunkt, nämlich
beim Start des Apache-Servers.
Bei der Beendigung des Apache-Servers wird sie automatisch gelöscht.
Vollkommen korrekt. Aber: diese "Beendigung" muß korrekt erfolgt sein. Es kann vorkommen, daß die PID liegenbleibt, wenn du den Apache nicht mit -shutdown runterfährst, das ist abhängig davon, _wie_ er gestartet wurde. Leider hat uns Ingo nicht verraten, welche Apache-Version er installiert hat, da gibts halt auch noch geringfügige Unterschiede.
Wenn diese Datei also _überschrieben_ wurde, dann ist vermutlich irgend
etwas mit Deiner Steuerung des Apache nicht so, wie es sein sollte.
Auch völlig korrekt. Zusatz: wenn der OmniHTTPD "als Service" gestartet wird bzw. auf dem System installiert ist, könnte es auch sein, daß beide Webserver zeitgleich laufen und um irgendeinen registry-Eintrag konkurrieren. Ingo müßte uns den Eintrag in der httpd.conf zeigen, in der der Ablageort für die PID definiert wird. Wenn er dafür eine Variable - z.B. %systemroot% - eingesetzt hat, kann es sein, daß ihm der OmniHTTPD die eigentlich für den "Indianer" vorgesehene PID überschreibt - mit genau dem geschilderten Ergebnis. Außerdem ist bei WinNT auch noch der IIS standardmäßig aktiv, es sei denn, er wurde absichtlich deaktiviert. Dann laufen also drei ziemlich verschiedene Web-Server zeitgleich, was durchaus möglich ist, nur muß man sie halt alle drei ordentlich einweisen.
Gefühlsmäßig würde ich sagen, Du hast versucht, den Apache mehrfach zu
starten oder etwas Ähnliches. Vielleicht hast Du den Apache so installiert,
daß er im Hintergrund als System Service läuft, und ihn zusätzlich noch mal
als Desktop-Programm gestartet? Solche Dinge sind mir auch schon passiert.
Das würde heißen, daß nicht zwei verschiedene Instanzen des Apache aktiv sind (das gäbe keine Konflikte) sondern tatsächlich ein zweiter Programmstart unternommen wurde, während das Programm noch aktiv war. Bedauerlicherweise gibts dafür bei den Windows- Installationen keine "Notbremse", mit der bei einem versehentlichen Neustart des Programms das bereits laufende Programm bzw. sein Prozeß erst beendet würde. Auf einem LINUX-Rechner kannste das einrichten, für Windows ist es mir nicht bekannt.
Viele Grüße
von mir auch ;-)
Christoph S.
hallo
so schnelle antworten, toll, danke
ich werde mir eure tips zu gemüte führen
klar, daß ich meinen omni stoppe, wenn der apache läuft
an den iis habe ich nicht gedacht, daß der bei mir laufen könnte
danke erstmal
ingo
Hallo Michael, hallo Christoph!
Ich könnte Euch 'umarmen'.
Der IIS war der Übeltäter (schon viel auch unangenehmes von ihm gehört, aber nie auf die Idee gekommen, ihn auch bei mir zu entfernen), ich habe ihn jetzt deaktiviert und hoffe, daß ich ihn nicht konstant brauche (ohne ihn geht auch der Computersuchdienst nicht, aber momentan habe ich noch kein (großes) Netzwerk hier).
Gruß und herzlichen Dank
Ingo
PS: Ich sollte mir doch 'mal ein gutes Buch über NT besorgen.
PPS: Ich bin erstaunt und erfreut wie schnell hier im SELFHTML-Forum die Antworten kommen und daß antworten kommen, ich habe höchstens die Zeit, selbst eine Frage wie diesesmal zu stellen, aber die anderen Anfragen zu durchforsten und eventuell behilflich sein zu können, dazu komme ich leider nicht.