管理者権限なしで Apache 1.3 に RoR をデプロイする

管理者権限なしで Apache 1.3 に RoR をデプロイする

職場では、Apache 1.3.20を実行しているSuSE 7.3を使用していますが、管理者権限がありません。Ruby on Railsを管理者権限なしでデプロイしたいのですが、ほとんどない管理者のために働きます。

サーバーが再起動されても、サービスが常に実行され続ける必要があり、CGI 速度よりも高速に実行される必要があり、ポートのないシンプルなドメインが必要です。

どのような選択肢がありますか?

答え1

別のサーバーで Rails を実行し (nginx+mod_rails が私のお気に入りですが、lighttpd、mongrel または同様のものでもかまいません)、管理者にこれを Apache からリバース プロキシするように依頼します。

答え2

Apache 1.3 で Rails を実行するのは、2.x システムで実行するよりもはるかに困難になります。

アプリケーションごとに特定のポート番号で mongrel をローカルで実行し (おそらく、そのサーバーの管理者によって正しく起動するように構成されています)、プロキシ マジックを使用して Apache をそこに送信するか、別のマシンで実行する必要があります。別のマシンで実行することを選択した場合は、Apache 2.0 をインストールして Phusion Passenger を使用します。これにより、作業が簡単になります。

Apapche 上の新しいサイトの Passenger 設定の例:

<VirtualHost *:80>
  ServerName blog.flame.org
  DocumentRoot /www/blog/flame-blog/current/public
  ExpiresDefault "access plus 10 years"
</VirtualHost>

これを というファイルに入れて/local/httpd/sites/blog.flame.org.conf、自分のhttpd.confファイルでこれを使用します:

Include /local/httpd/sites/*.conf

私の意見では、コマンドラインによる構成管理を維持したい場合、新しいサイトを追加するのがこれより簡単なことはありません。

Capistrano を使用した RoR アプリケーションの新バージョンのデプロイに関しては、文字通り、 cap deploy:migrations と入力して新バージョンをプッシュするだけで済みます。失敗した場合は、 cap deploy:rollback で元に戻すことができます。 わーい。

どのような方法でアプリケーションを提供するかに関係なく、Capistrano を使用してアプリケーションを展開します。

関連情報