webdevqa.jp.net

Phusionパッセンジャーステータス:passenger_instance_registry_dirの値は?

サーバーの1つにあるROR 4.2アプリのAppNetaからトレースコンポーネントを追加するために、ソースからUbuntu 14.04にnginx 1.6.3とパッセンジャー5.0.15の新規インストールを実行しました。 Nginxとパッセンジャーが実行され、ページを提供しています。サーバー監視のトレースデータを取得しています。すべてが順調に見えます、

しかし、「passenger-status」を(rootとして)実行すると、次のようになります。

エラー:Phusion Passengerが実行されていないようです。実行されていることが確かな場合、この問題の原因は次のとおりです。

  1. ApacheのPassengerInstanceRegistryDirオプション、Nginxのpassenger_instance_registry_dirオプション、またはPhusion Passenger Standaloneの--instance-registry-dirコマンドライン引数を使用して、インスタンスレジストリディレクトリをカスタマイズしました。その場合は、環境変数PASSENGER_INSTANCE_REGISTRY_DIRをそのディレクトリに設定し、再度passenger-statusを実行してください。
  2. インスタンスディレクトリは、オペレーティングシステムのバックグラウンドサービスによって削除されました。 ApacheのPassengerInstanceRegistryDirオプション、Nginxのpassenger_instance_registry_dirオプション、またはPhusion Passenger Standaloneの--instance-registry-dirコマンドライン引数を使用して、別のインスタンスレジストリディレクトリを設定してください。

これの問題は、カピストラーノの展開をブロックしているように見えることです。この同じエラーは、終了する前にキャップで表示されます。

乗客isが実行中です(ps出力にあり、ページが提供されています)。現在実行中のインスタンスの場所をパッセンジャーステータスに通知するだけです。 (これは 設計とアーキテクチャ のドキュメントに記載されています。)したがって、このインスタンスのレジストリディレクトリの値を設定することは必要なステップのようです。しかし、どのような価値がありますか?

Nginxリファレンス によると、デフォルトは/tmpおよび/var/run/passenger-instregです。/tmpにインスタンスディレクトリが見つかりました。したがって、PASSENGER_INSTANCE_REGISTRY_DIRをいくつかの異なる値に設定してみました。

  • / tmp
  • /tmp/passenger.JxmCeiA(現在のインスタンスディレクトリですが、これはNginxを起動するたびに変わります)

/ run/passengerにディレクトリを作成し、nginx構成ファイルにその値を設定して、nginxを再起動することも試みました。一時ディレクトリが作成されていますが、passenger-statusでも同じメッセージが表示されます。 /opt/passenger-5.0.15/bin/passenger-statusスクリプトを使用して、そのスクリプトの最新バージョンを使用していることを確認しても、.

乗客用の元の「location.ini」ディレクトリにはいくつかの設定値がありますが、インスタンスレジストリディレクトリではなかったため、再利用するものはありませんでした。

興味深いことに、/ opt/passenger-5.0.15/lib/phusion_passenger/nginx/config_options.rbファイルには、passenger_instance_registory_dirのエントリがありません。他のnginx設定オプションがありますが、これもあると思いました。

Nginx passenger_instance_registry_dirオプションだけでなく、環境変数も設定しようとしましたが、passenger-statusコマンドを現在実行中のインスタンスに接続できないようなので、理解できないことがあります。

どんな助けでも大歓迎です。

14

旅客著者はこちら。

/tmp/passenger.JxmCeiAはインスタンスディレクトリの例です。これは実際に起動ごとに変化します(インスタンスに固有であるため)。

親ディレクトリ(インスタンスディレクトリが配置されているディレクトリ)は、インスタンスregistryディレクトリです。したがって、あなたの場合、使用されているインスタンスレジストリディレクトリは/ tmpです。

乗客のインストールバージョンに何らかの不一致があると思います。インスタンスディレクトリの構造を過去数回変更しました。これを行うたびに、内部バージョン番号を上げて、以前のPassengerバージョンと互換性がないことを示しています。以下を再確認できますか?

  • Passengerは正常に動作しているように見えますか?
  • パッセンジャーのバージョンは何ですか内部でコンパイルされています Nginx?
  • passenger_rootは何に設定されていますか? Nginx内でコンパイルされたPassengerバージョンと一致しますか?
  • PATHの最初のpassenger-statusへの完全パスはどこにありますか? passenger_rootと一致しますか?

また、Phusion Passenger APTリポジトリとソースtarballインストールを混在させているようです。複数のインストールを配置することは、一般的に悪い考えです。他のインストールをクリーンアップして、1つだけになるようにしてください。

また、PASSENGER_INSTANCE_REGISTRY_DIR環境変数を正しく設定しているかどうかも確認してください。 Sudoは環境変数を核にするので、次のようにパッセンジャーステータスを実行する必要があります。

# Correct:
Sudo env PASSENGER_INSTANCE_REGISTRY_DIR=/tmp passenger-status

# Incorrect, Sudo nukes environment variables
export PASSENGER_INSTANCE_REGISTRY_DIR=/tmp
Sudo passenger-status

Lib/phusion_passenger/nginx/config_options.rbについて:このファイルには、主にサーバーごとおよびロケーションごとの構成オプションがリストされています。メインコンテキストの多くの設定オプションは、config_options.rbシステムにまだ移植されていないか、カスタムの注意が必要なため不可能です。現在、passenger_instance_registry_dirはext/common/nginx/Configuration.cに実装されています。コードベースのクリーンアップとリファクタリングを続けると、このオプションは最終的にconfig_options.rbに移動する可能性があります。

12
Hongli

Systemdサービスを使用してPassengerを起動するときに他の誰かがこの問題を抱えている場合、systemdのプライベート/tmpが原因である可能性があります。この問題は、サービスファイルにPrivateTmp=falseを追加することで解決しました。

ソース

9
dimid

ステップ1のチェックphusion乗客が正しくインストールされている

Sudo passenger-config validate-install

「「すべてが良いようです:-)」という出力が表示された場合は問題ありません。phusionの乗客を再インストールする必要がない場合は、https:/を参照してください。 /www.phusionpassenger.com/library/walkthroughs/start/

ステップ2は、phusionの乗客の記憶状態を確認します

Sudo passenger-memory-stats

「実行中のプロセスがある場合は問題ありません。そうでない場合は、パッセンジャーアプリを起動するか、nginxまたはApacheを追加のライブラリとともにインストールする必要があります。nginxの場合は、nginxとnginx-extrasが必要です。」.

ステップ3 nginx.confファイル(ubuntuの場合、通常は/etc/nginx/nginx.conf)またはApache.confファイルのpassenger_rootのコメントを外します

nginxまたはApacheを再起動します

Sudo service nginx restart # (or systemctl restart nginx, for new version of linux such as ubuntu 15.04, CentOS7)

今、あなたは走ることができます

passenger-status 

エラーは解消されます。表示される可能性が最も高い出力は、「Phusion Passengerは現在、どのアプリケーションにもサービスを提供していない」ということです。

7
Shuliyey