web-dev-qa-db-ja.com

Mac OS XでPassenger(mod_Rails)を使用してApacheをセットアップする方法

私はiOS開発者なので、ApacheやRoRの経験はほとんどありません。MacOS Xをサーバーとして使用するのはこれが初めてです。

http://rubyonrails.org/deploy Apacheで Phusion Passenger(mod_Rails) を使用することをお勧めします。それが私が達成しようとしていることですが、私は行き止まりにぶち当たりました。

これは私がやったことです:

  1. Apacheを有効にし(設定のチェックボックス)、ブラウザをlocalhostにポイントすると、「It works!」というテキストが表示されます。 dyndnsからもアクセスできます。

  2. 次のコマンドを実行して乗客をインストールしました。

    Sudo gem install passenger
    passenger-install-Apache2-module
    
  3. /etc/Apache2/httpd.confに次の行を追加しました:

    LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/Apache2/mod_passenger.so
    PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7
    PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
    
  4. 次に、/etc/Apache2/extra/httpd-vhosts.confに以下を追加しました:

    <VirtualHost *:80>
       ServerName my.dyndns.org
       DocumentRoot /Users/Shared/Rails/project/public    # <-- be sure to point to 'public'!
       <Directory /Users/Shared/Rails/project/public>
          AllowOverride all              # <-- relax Apache security settings
          Options -MultiViews            # <-- MultiViews must be turned off
       </Directory>
    </VirtualHost>
    
  5. 私は使用してApacheを再起動しました:

    Sudo /usr/sbin/apachectl restart
    

私は機能しているRails /Users/Shared/Rails/projectでアプリケーションを実行しています。つまり、Rails serverを実行すると動作します。これは、「ようこそ、乗ってるRuby on Rails! "ページですが、機能します。

問題は、ApacheとPassengerを介してそのページにアクセスする方法を理解していないことです。仮想ホストの構成方法がわかりません。仮想ホストが何かはほとんどわかりません。誰かが私に私が間違っていることとそれを修正する方法を説明できますか?

EDIT:明確にするために。 my.dyndns.com/projectをインターネットで公開したい。現在取得しているのは、「要求されたURL /プロジェクトがこのサーバーで見つかりませんでした」です。

EDIT 2:仮想ホストがないようです:

$ Sudo /usr/sbin/apachectl -S
VirtualHost configuration:
Syntax OK

/etc/Apache2/extra/httpd-vhosts.confに仮想ホストを追加する以外に必要なことはありますか?

6
Erik B

最近、この質問に対して人気のある質問バッジが授与されたので、答えを投稿した頃だと思いました。私は自分のconfファイルの関連部分を投稿するだけです。

だから/etc/Apache2/httpd.conf次のものがあります。

LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/Apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby

また、次の行のコメントを外してください。

Include /etc/Apache2/extra/httpd-vhosts.conf

次に/etc/Apache2/extra/httpd-vhosts.conf次のものがあります。

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName example.dyndns.org
   DocumentRoot "/Users/Shared/Rails/project/public"
   <Directory /Users/Shared/Rails/project/public>
      AllowOverride all
      Options -MultiViews
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

今日以降、私はこのサーバーにアクセスできなくなります。もう使用しません。代わりに Herok を使用します。したがって、何らかの理由で機能しない場合、または構成の重要な部分を忘れてしまった場合は、お手伝いできません。古くなっている可能性があり、新しいバージョンのパッセンジャーで動作するかどうかはわかりません。また、サーバーはMac OS X Snow Leopardを使用していたため、OS Xの他のバージョンでは動作しない可能性があります。ただし、それほど変更されておらず、ほとんどがまだ有効であると思います。

また、別の免責事項も必要です。これは最も安全な構成ではない可能性があります。私はすべてのオプションを理解しているわけではありませんが、それは非常に許容できるようです。私は同僚に設定を手伝ってもらいましたが、これは私たちが機能するようになった設定の最初のバージョンにすぎません。セキュリティは開発サーバーであり、運用環境ではないため、あまり気にしませんでした。

設定を改善する方法について提案があれば、遠慮なく投稿してください。私はそれらをまったく使用しませんが、他の人はまだ使用する可能性があります。結局のところ、これは人気のある質問です。

2
Erik B

https://github.com/Fingertips/passengerpane

Passenger Preference Paneをダウンロードし、それを使用して開発環境をセットアップしてみます。そうでなければ、本当に冒険したいなら、 http://pow.cx を試してみてください。私はPowを自分のRails開発に使用しています。

Powを使用する場合は、Powのインストールを管理するために、powder gemを一緒に使用することをお勧めします。それは次のように単純でなければなりません:

gem install powder

それがすべきですあなたがする必要があるすべてであり、そしてここでパウダーについて読んでください: https://github.com/Rodreegez/powder

1
Bob Martens