1

私は、パッセンジャー、nginx、およびカピストラーノを使用した本番アプリを持っています。RVMなしでセットアップしました(バージョンマネージャーなしでUbuntuのOSに直接インストールされたrubyを実行しています)が、必要に応じてrubyをアップグレードできるようにRVMの使用に切り替えたいです。

RVM をインストールし、passenger/nginx/capistrano を使用するように構成するには、どのような手順を実行する必要がありますか?

ここで重要なのは、既にサーバーを実行しており、アプリが毎日運用環境で使用されているため、ダウンタイムを最小限に抑える必要があることです。混乱してアプリを長時間ダウンさせる余裕はありません。

私の最善の推測では、nginx の構成 (sudo nano /opt/nginx/conf/nginx.conf) を変更し、次の行を編集する必要があると思います: (?)

http {
    passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19;
    passenger_ruby /usr/local/bin/ruby;
4

1 に答える 1

0

rvm.ioの指示に従ってインストールしrvmます。ただし、本番環境では使用しないことを強くお勧めします。プロダクションのセットアップは、KISS の原則に従う必要があります。インストールするソフトウェアを追加するたびに、セットアップが少し複雑になります。ruby をインストールして変数rvmを変更するための一連の便利なコマンドを提供するだけであることを考えると、本番環境のセットアップに不可欠なツールではありません。PATH

混乱を招くことなく新しいバージョンの ruby​​ をインストールする機能だけが必要な場合は、 ruby​​-install を使用してください。これにより、Ruby のインストールが容易になりますが、環境設定 ( などPATH) を操作することはありません。

上で述べたように、そうです、nginx構成でRuby実行可能ファイルへのポインターを変更して、Rubyバージョンを切り替えるだけです。本番モードでは、nginx を再起動するまで、実行中の Rails アプリケーションが停止または中断されることはありません。そのため、新しいバージョンの ruby​​ を別のフォルダー (/usr/local/rubies/ruby-193-p448/ または など/usr/local/rubies/ruby-200-p0/)にインストールしpassenger_ruby、nginx の設定を新しい ruby​​ を指すように変更してから、nginx を再起動すると安全です。

また、Passenger 4.0.x以降では、単一の nginx/passenger の組み合わせで複数のバージョンの ruby​​ を使用できることにも注意してください。1 つは Passenger を実行し、もう 1 つは、構成のブロックおよび/またはブロックのpassenger_rubyディレクティブを使用して Rails アプリケーションに実行します。httpservernginx

于 2013-10-15T08:35:31.903 に答える