2

まず第一に、完全に機能する Apache2 サーバー (Ubuntu 12.04 VPS 上) と複数の仮想ホストが動作していることには何の価値もありません (しかし、Rails サイトをデプロイするのはこれが初めての試みです)。さらに、立ち上げようとしている Rails サイトは、ローカルの WEBRick サーバーで完全に機能しています。

Apache、Ruby、Rails、および Passenger をうまく連携させるためのさまざまなオンライン手順を参照しました。

要約すると、これまでのところ、次のことを行いました。

  1. インストール済みの Ruby (ruby -vサイト ルートでは 1.9.3 が返されます)、RVM、Ruby Gems、Rails (rails -vアプリ フォルダーでは 3.2.8 が返さrails serverれ、アプリ フォルダーで起動できます) & Passenger (すべての依存関係を含む)
  2. の指示に従って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
    
  3. 次のものを含む/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>
    
  4. Railsアプリをにアップロードしました/home/user/public/foo.com/

  5. 入りましbundle install/home/user/public/foo.com/

  6. 私のローカル OSX マシンでは、xxx.xxx.xxx.xxx foo.com[VPS IP] を に追加しました/etc/hosts

  7. 再起動したアパッチ

しかし、ブラウザーで foo.com に移動すると、/home/user/public/foo.com/public. また、Apache に最近のエントリはありませんerror.log。ただし、restartApache を使用するたびに次のようになります。

 * 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.

本当にばかげたことを見落としていることを願っています。それが何であるかを理解する助けがあれば、大いに感謝します。ありがとう!

4

3 に答える 3

6

apache2.2 を使用している場合は、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

代わりに、次の 2 つのファイルを作成する必要があります/etc/apache2/mods-available

Passenger.loadで:

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger3.0.17/ext/apache2/mod_passenger.so

Passenger.confと:

PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17
PassengerRuby /usr/bin/ruby1.8

最後に、実行するだけです:

a2enmod passenger

そして、それは完了です。ちなみに、それを機能させるときは、より新しいバージョンの ruby​​ (1.9.3 など) を使用することを検討してください。これを行う最善の方法は、RVMを使用することです。

于 2012-10-26T08:48:06.710 に答える
3

Rails 2.3を実行するためにパッセンジャーを使用しようとしていました。数年前に作成したアプリを新しいサーバーに移動する必要がありました。

パッセンジャーを追加しましたが、得られたのはディレクトリ リストだけでした。

config.ru結局、ファイルがないことがわかりました。次の 2 行でファイルを作成するだけで十分です。

require File.dirname(__FILE__) + '/config/environment' run ActionController::Dispatcher.new

この 2 行が欠落していることに気付くまでに約 5 時間かかりました。私は、同様の状況にあるすべての人が、これに時間をかけすぎる前にこの答えを見つけてくれることを願っています... :-)

于 2015-09-17T21:01:10.173 に答える
0

/etc/apache2/mods-enabled/passanger.load で同じ問題が発生したことが判明しました

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.20/buildout/apache2/mod_passenger.so
于 2013-10-19T22:51:09.003 に答える