apache2 と mod_rails (Phusion Passenger) を使用して、ubuntu10.10 上に Ruby on Rails サーバーをセットアップしようとしています。
すでに ruby 1.9.2-p0 と rails 3.0.8 をインストールしており、passenger-install-apache2-module と passager gem (v3.0.7) を使用して Passenger をインストールしました。
次に、Apache 構成ファイルに 3 行を追加するように指示されます。そこで、次の行を '/etc/apache2/apache2.conf' に追加しました。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/gems/1.9.1/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
そして、私は '/etc/apache2/httpd.conf' を編集して以下を追加しました:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName 192.168.0.2
DocumentRoot /var/www/webop/public
<Directory /var/www/webop/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
また、/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/ にあるファイル mod_passenger.so は実際には存在せず、その名前は mod_passenger.c であることもわかりました。しかし、これによるエラーは発生しません。
サーバーは LAN 経由でのみアクセス可能である必要があります。サーバーにアクセスすると、アプリのパブリック フォルダー内のすべてのファイルとディレクトリが表示されますが、アプリ自体は起動しません。
Apache を再起動すると、mod_rails がすでにロードされていると表示されるので、passenger は実行されていると思いますが、アプリが起動しない理由がわかりません。
前もって感謝します!
ベストアンサー1
mod_passenger.so が存在しない理由は、Apache モジュールをインストールしていないためです。以下を実行します。
passenger-install-apache2-module
これにより、gem ディレクトリ内に mod_passenger.so ファイルが作成され、apache2.conf ファイルにコピーする 3 行が提供されます。
パッセンジャー モジュールは現在の gemset にインストールされているため、プロジェクト間で競合が発生することはありません。互換性のある任意のバージョンの Ruby と任意の gemset を RVM 経由で使用できます。RBENV も使用できます。これにより、Ruby の 1 つのバージョンから次のバージョンへのアップグレード パスが簡単になります。