
職場では、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 を使用してアプリケーションを展開します。