2013-05-12 7 views
8

Ist es möglich, Phusion Passenger auf eine neuere Version zu aktualisieren, wenn sie bereits läuft (mit Nginx in meinem Fall)?Upgrade von Phusion Passenger ohne Neuinstallation von Nginx

Ich installierte Passenger 4.0.0.rc6 mit passenger-install-nginx-module. Meine Nginx-Konfiguration enthält jetzt

Jetzt möchte ich auf Passenger 4.0.2 aktualisieren. Ich kann den Edelstein installieren, aber wenn ich wieder passenger-install-nginx-module ausführen, versucht es, Nginx neu zu kompilieren und neu zu installieren. (Ich dachte, es wäre so klug sein, es zu bemerken ist bereits eine installierte Nginx in den Speicherort angeben ich mit --prefix)

Ich habe versucht, manuell passenger_root auf die neue Passagier gem Lage zu ändern, aber das bekomme ich folgende Fehler in der Nginx Fehlerprotokoll:

2013/05/12 12:30:13 [alert] 14298#0: Unable to start the Phusion Passenger watchdog because its executable (/usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.2/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'passenger_root' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'passenger_root' directive, whichever is applicable. (-1: Unknown error) 

Anscheinend ist die PassengerWatchdog gebaut wird, wenn passenger-install-nginx-module läuft. Ich möchte nicht über PassengerWatchdog aus dem alten Juwel kopieren, weil sich etwas geändert haben könnte.

Also ... Was ist der richtige Weg, Passenger zu aktualisieren, ohne Nginx (oder Apache) neu zu kompilieren und neu zu installieren?

+1

Sind Sie sicher, dass es versucht, Nginx neu zu installieren? Es ist normal, dass das Plugin nach einem Update neu kompiliert werden muss. Ich denke nicht, dass dies den gesamten Server betrifft. – Wukerplank

Antwort

17

@ Wukerplanks Kommentar brachte mich auf den richtigen Weg. Ich habe den Ausgang, wenn passenger-install-nginx-module wieder zum Laufen, und es sagt:

Nginx doesn't support loadable modules such as some other web servers do, 
so in order to install Nginx with Passenger support, it must be recompiled. 

Do you want this installer to download, compile and install Nginx for you? 

1. Yes: download, compile and install Nginx for me. (recommended) 
    The easiest way to get started. A stock Nginx 1.4.1 with Passenger 
    support, but with no other additional third party modules, will be 
    installed for you to a directory of your choice. 

2. No: I want to customize my Nginx installation. (for advanced users) 
    Choose this if you want to compile Nginx with more third party modules 
    besides Passenger, or if you need to pass additional options to Nginx's 
    'configure' script. This installer will 1) ask you for the location of 
    the Nginx source code, 2) run the 'configure' script according to your 
    instructions, and 3) run 'make install'. 

Whichever you choose, if you already have an existing Nginx configuration file, 
then it will be preserved. 

Der wichtige Teil ist, dass Nginx neu kompiliert werden muss, mit Passagiere zu arbeiten und die bestehenden Nginx Konfigurationen erhalten bleiben.

So ist der richtige Weg, Passagier-Upgrade ist zu

  1. den neuen Passagiere gem
  2. passenger-install-nginx-module mit genau den gleichen Parametern wie beim ersten Mal ausführen installieren (so die gleiche Nginx-Version und Module kompiliert werden, es ist im gleichen Verzeichnis installiert usw.)
  3. vor der Installation, überprüfen Sie, dass es heißt "Willkommen bei der Phusion Passenger Nginx Modul Installer, v4.0.2." mit der neuen Version oben (4.0.2 in meinem Fall)
  4. nachdem Nginx installiert ist, ändern Sie die passenger_root in Ihrem vorhandenen Nginx conf (Pfad/zu/nginx/conf/nginx.conf), um auf die neue Edelsteinversion zu zeigen (ersetzen Sie einfach die alte Versionsnummer mit der neu)
  5. Restart Nginx
  6. Profit
5

Sie nicht ohne Neukompilierung Nginx aktualisieren. Vollständige Upgrade-Anweisungen finden Sie in . Aus dem Handbuch:

Nginx ist ein unterscheidet sich von anderen Webservern, dass es nicht ladbare Module unterstützt. Die einzige Möglichkeit, Nginx zu erweitern, besteht darin, es vollständig von der Quelle neu zu kompilieren. Da es sich bei Phusion Passenger um einige externe ausführbare Dateien und ein Nginx-Modul handelt, müssen Sie Nginx bei der ersten Installation von Phusion Passenger, aber auch beim Upgrade von Nginx selbst oder beim Upgrade der Phusion Passenger-Version neu kompilieren.

In diesem Schritt werden wir Nginx und die ausführbaren Dateien von Phusion Passenger neu kompilieren. Die gute Nachricht ist, dass Phusion Passenger ein Tool zur Verfügung stellt, um Ihnen das zu erleichtern.

Wenn Sie Nginx bereits installiert haben, jedoch ohne Unterstützung von Phusion Passenger, sollten Sie es zuerst deinstallieren. Das müssen Sie nicht, da Sie parallel zu dem vorhandenen Nginx auch ein anderes Nginx mit Phusion Passenger-Unterstützung installieren können. Wir empfehlen lediglich, das vorhandene zu deinstallieren, um Verwirrung zu vermeiden, aber die Wahl liegt bei Ihnen.

Wenn Sie zuvor Nginx mit Phusion Passenger-Unterstützung installiert haben und ein Upgrade durchführen, müssen Sie Ihr vorhandenes Nginx nicht zuerst deinstallieren. Stattdessen überschreiben wir diesen Schritt. Es ist jedoch wichtig, dass Sie Nginx mit den Konfigurationsparametern neu kompilieren, die Sie beim letzten Mal verwendet haben.

+1

Danke für deine Antwort, @Hongli. Ich akzeptierte meine eigene Antwort, da ich die spezifischen Schritte einschloss, die ich ergreifen musste, um Nginx mit Passenger neu zu installieren. –