まず第一に、完全に機能する Apache2 サーバー (Ubuntu 12.04 VPS 上) と複数の仮想ホストが動作していることには何の価値もありません (しかし、Rails サイトをデプロイするのはこれが初めての試みです)。さらに、立ち上げようとしている Rails サイトは、ローカルの WEBRick サーバーで完全に機能しています。
Apache、Ruby、Rails、および Passenger をうまく連携させるためのさまざまなオンライン手順を参照しました。
- これは、私のホストである Linode からのものです(12.04 に固有のドキュメントは提供されていません)。
- これはオライリーから
- のインストール プロセスの一部である Passenger ドキュメント
passenger-install-apache2-module
- Passengerのオンライン ドキュメント
- thisやthisなどのさまざまな古い SO の質問
要約すると、これまでのところ、次のことを行いました。
- インストール済みの Ruby (
ruby -v
サイト ルートでは 1.9.3 が返されます)、RVM、Ruby Gems、Rails (rails -v
アプリ フォルダーでは 3.2.8 が返さrails server
れ、アプリ フォルダーで起動できます) & Passenger (すべての依存関係を含む) の指示に従って
passenger-install-apache2-module
、次の行を の下部に追加しました/etc/apache2/apache2.conf
。LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 3.0.17/ext/apache2/mod_passenger.so PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17 PassengerRuby /usr/bin/ruby1.8
次のものを含む
/etc/apache2/sites-enabled/
仮想ホストを作成して有効にします ( にリストされています)。/etc/apache2/sites-available/foo.com
<VirtualHost *:80> ServerName foo.com DocumentRoot /home/user/public/foo.com/public <Directory /home/user/public/foo.com/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost>
Railsアプリをにアップロードしました
/home/user/public/foo.com/
入りまし
bundle install
た/home/user/public/foo.com/
私のローカル OSX マシンでは、
xxx.xxx.xxx.xxx foo.com
[VPS IP] を に追加しました/etc/hosts
。再起動したアパッチ
しかし、ブラウザーで foo.com に移動すると、/home/user/public/foo.com/public
. また、Apache に最近のエントリはありませんerror.log
。ただし、restart
Apache を使用するたびに次のようになります。
* Restarting web server apache2
[Fri Oct 26 00:04:12 2012] [warn] module passenger_module is already loaded, skipping
... waiting [Fri Oct 26 00:04:13 2012] [warn] module passenger_module is already loaded, skipping
...done.
本当にばかげたことを見落としていることを願っています。それが何であるかを理解する助けがあれば、大いに感謝します。ありがとう!