Ich habe hier eine Apache-Frage.
Während meiner gesamten Karriere als Entwickler habe ich Apache folgendermaßen neu gestartet:
sudo /etc/init.d/apache2 restart
Ich habe gerade heute meine erste Rails-Anwendung bereitgestellt, aber ich hatte Probleme, Apache auf dem Host-Computer neu zu starten. Wenn ich es so versuchte, versuchte Apache neu zu starten, blieb aber letztendlich hängen.
Dies funktionierte jedoch gut:
sudo apachectl restart
Was sind die Unterschiede zwischen diesen beiden Techniken? Ich hatte angenommen, dass letzterer bestenfalls "syntaktischer Zucker" für den ersten war, aber das muss nicht der Fall sein, da letzterer funktionierte, während ersterer nicht funktionierte.
Wenn es relevant ist (und ich vermute, dass es relevant ist), verwendet diese Rails-Anwendung Phusion Passenger. Meine vorherige Entwicklungserfahrung (wobei die frühere Methode gut funktioniert) ist hauptsächlich mit PHP. Ich bin ziemlich neu bei Rails.
Auf dem betreffenden Server wird Ubuntu 11.04 (Natty) ausgeführt.
quelle
Antworten:
Diese Methode verwendet die Init-Skripte Ihrer Linux-Distribution , um den Prozess neu zu starten. Diese Skripte werden beim Booten ausgeführt, um Apache zu starten.
Diese Methode verwendet das Steuerprogramm apachectl . In fast jeder Gelegenheit würde ich die Verwendung von Apachectl empfehlen, um den Apache-Daemon zu maniuplizieren. Sie haben eine genauere Kontrolle darüber, wie der Prozess neu gestartet wird (siehe ordnungsgemäß oder neu gestartet), Optionen für die Konfigurationsüberprüfung und eine Möglichkeit, Statusinformationen abzurufen.
Der Hauptunterschied zwischen der Verwendung der Init-Skripte zum Neustarten von Apache und Apachectl besteht darin, dass Apachectl speziell dafür entwickelt wurde, dass Administratoren Apache steuern können, während die Init-Skripte als allgemeine Möglichkeit für Unixes konzipiert sind, Prozesse nach dem Laden des Kernels und des Init-Daeamons zu starten.
EDIT: Leider habe ich keine Ahnung, wie ich Ihr Problem mit Rails oder Phusion Passenger angehen soll. Durchsuchen Sie Ihre Apache-Protokolle nach Hinweisen.
quelle