Apache2 での Rails Passenger の問題 質問する

Apache2 での Rails Passenger の問題 質問する

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 つのバージョンから次のバージョンへのアップグレード パスが簡単になります。

おすすめ記事