2013-05-12 8 views
8

Phusion Passengerを既に実行しているときに新しいバージョンにアップグレードすることはできますか?Phusion PassengerをNginxを再インストールしないでアップグレードする

passenger-install-nginx-moduleを使用して、Passenger 4.0.0.rc6をインストールしました。私のNginxの設定は今や入っています

passenger_root /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.rc6; 
passenger_ruby /usr/local/bin/ruby; 

今、私はPassenger 4.0.2にアップグレードしたいと思います。私はgemをインストールできますが、passenger-install-nginx-moduleを再度実行すると、Nginxを再コンパイルして再インストールしようとします。私は手動で新しい旅客宝石の場所にpassenger_rootを変更しようとしましたが、私はnginxの中に次のエラーを取得する

(私はインストールnginxのは、私が--prefixを使用して指定した場所にすでに存在しているに気づくためにとても賢いだろうと思いました)エラーログ:

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) 

passenger-install-nginx-moduleを実行するときにどうやらPassengerWatchdogが構築されています。何か変わったかもしれないので、古い宝石からPassengerWatchdogをコピーしたくないです。

Nginx(またはApache)を再コンパイルして再インストールせずにPassengerをアップグレードするにはどうすればよいですか?

+1

Nginxを再インストールしようとしていますか?更新後にプラグインを再コンパイルしなければならないのは正常です。私はこれがサーバー全体に影響するとは思わない。 – Wukerplank

答えて

17

@ Wukerplankのコメントは正しい軌道に乗っています。再びpassenger-install-nginx-moduleを実行しているとき、私は出力をチェックし、それは言う:

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. 

重要な部分は、nginxのは、旅客で動作するように再コンパイルすると、既存のnginxの設定が保存されているということで。

乗員をアップグレードするための正しい方法は

  1. にすることは、第1の時間とまったく同じパラメータでpassenger-install-nginx-moduleを実行し、新たな旅客宝石
  2. をインストールしている(ので同じnginxのバージョンとモジュールがコンパイルされ、それはです同じディレクトリにインストールされているなど)
  3. インストールする前に、「Phusion Passenger Nginxモジュールインストーラ、v4.0.2へようこそ」と表示されていることを確認してください。 Nginxがインストールされた後、新しいバージョン(私の場合は4.0.2)を
  4. に置き換えて、既存のNginx conf(path/to/nginx/conf/nginx.conf)のpassenger_rootを新しいgemバージョンあなたはnginxのを再コンパイルせずにアップグレードすることはできません
  5. 再起動nginxの
  6. 利益
5

(単に新しいと古いバージョン番号を交換してください)。フルアップグレードの手順については、the Phusion Passenger for Nginx manualをご覧ください。マニュアルから:

Nginxはロード可能モジュールをサポートしていない点で他のWebサーバーとは異なります。 Nginxを拡張する唯一の方法は、ソースから完全に再コンパイルすることです。 Phusion Passengerはいくつかの外部実行ファイルとNginxモジュールで構成されているため、Phusion Passengerを初めてインストールするときにNginxを再コンパイルする必要があります.Nginx自体をアップグレードするときやPhusion Passengerバージョンをアップグレードするときにも再コンパイルする必要があります。

NginxとPhusion Passengerの実行ファイルを再コンパイルすることは、この手順で行うことです。良いニュースは、Phusion Passengerがこれを簡単にするためのツールを提供していることです。

Phusion Passengerサポートの前にNginxを既にインストールしている場合は、まずそれをアンインストールする必要があります。既存のNginxと並行して、Phusion Passengerサポートを備えた別のNginxをインストールすることもできます。ユーザーの混乱を避けるために既存のものをアンインストールすることをお勧めしますが、選択はあなたのものです。

以前にPhusion PassengerサポートでNginxをインストールしていて、アップグレードする場合は、まず既存のNginxをアンインストールする必要はありません。代わりに、このステップを上書きします。しかし、前回使用したconfigureパラメータでNginxを再コンパイルすることが重要です。

+1

答えてくれてありがとう、@香港。 NginxをPassengerで再インストールするために必要な具体的な手順が含まれているので、私自身の答えを受け入れました。 –

関連する問題