Wir haben kürzlich einen Sicherungsserver erhalten, auf den alle unsere Daten gespiegelt werden können, falls der Primärserver ausfällt.
Ich habe alle Site-Daten über rsync aktualisiert und alle Apache-Konfigurationen und -Datenbanken aktualisiert. Beide Computer befinden sich unter Ubuntu 9 (9.04 auf dem primären Computer, 9.10 auf dem Backup).
An diesem Punkt scheint also größtenteils alles synchronisiert zu sein (ich muss noch die Benutzersynchronisierung herausfinden), und ich versuche, Apache zu starten. Ich bekomme
* Starting web server apache2 [fail]
Nichts anderes deutet darauf hin, wo das Problem liegen könnte.
Ich weiß, dass ich nicht genug Informationen habe, um eine Lösung von euch zu erwarten, also möchte ich nur wissen, wohin ich von hier aus gehen kann, um dieses Problem weiter zu untersuchen. Würde es dafür Fehlerprotokolle geben?
Vielen Dank!
quelle
Antworten:
In bestimmten Fällen wird ein Protokolleintrag nicht auf die Festplatte geschrieben. Dies kann beispielsweise auftreten, wenn keine Protokolle vorhanden sind oder Apache aufgrund von Berechtigungsproblemen usw. einfach nicht in die Protokolldateien schreiben kann Der beste Weg, um einen Fehler zu diagnostizieren, ist die Verwendung von "strace":
Während die Ausgabe recht umfangreich sein wird, wenn Apache aus irgendeinem Grunde nicht anspringt, werden Sie eine write () am hinteren Ende mit dem Inhalt von dem, was würde in den Protokollen mit dem Grunde eingegeben wird es andernfalls (wenn es nicht die Protokollierung ist Warum im Fehlerprotokoll, wundern Sie sich nicht, wenn die Fehlermeldung "Protokoll kann nicht geöffnet werden" mit dem Pfad zum Protokoll enthält;).
Wenn Sie sich Ihren Kommentar zu mod_fcgid ansehen, würde ich vorschlagen, die Apache-Konfiguration zu überprüfen und Verweise auf mod_fcgid zu untersuchen. Es scheint, als würde versucht, eine wörtliche "mod_fcgid" -Datei zu öffnen, anstatt das Modul zu laden.
quelle
httpd -t
testet die Syntax Ihrer Konfigurationsdateien und spuckt alle Fehler an das Terminal aus.quelle
apachectl -t
.Alle Fehler sollten in die Fehlerprotokolle gedruckt werden (häufig unter / var / log / http / error_logs. Suchen Sie in Ihrer httpd.conf nach ErrorLog, um herauszufinden, wo.
Ich empfehle zwei Fenster. Führen Sie in einem Fenster ein 'tail -f error_log' aus und verwenden Sie ein anderes Fenster, um den Befehl 'apachectl restart' auszuführen. Nachdem Sie den Fehler gefunden haben, aktualisieren Sie Ihre Antwort hier mit der Fehlermeldung.
quelle
Ich hatte ein ähnliches Problem mit dem Debuggen von Apache-Servern unter Mac OS. Daher entschied ich mich, meine Erfahrungen zu teilen und anderen Zeit zu sparen. Ich fand Folgendes sehr hilfreich:
apachectl -S | grep log
tail -n 15 /var/log/apache2/ssl_engine.log
Falls es mehr als eine Protokolldatei gibt, verfolgen Sie diese weiter, bis Sie den Fehler finden, der dazu führt, dass Apache nicht gestartet wird
quelle
Wenn Ihr Apache nicht ausgeführt wird, überprüfen Sie Ihren Skype-Port. Meistens verwenden sowohl Skype als auch Apache Port 80. Dies bedeutet, dass Skype möglicherweise der Grund ist, warum Apache nicht gestartet werden kann. Stoppen Sie Skype, wenn es installiert ist.
quelle