私はiOS開発者なので、ApacheやRoRの経験はほとんどありません。MacOS Xをサーバーとして使用するのはこれが初めてです。
http://rubyonrails.org/deploy Apacheで Phusion Passenger(mod_Rails) を使用することをお勧めします。それが私が達成しようとしていることですが、私は行き止まりにぶち当たりました。
これは私がやったことです:
Apacheを有効にし(設定のチェックボックス)、ブラウザをlocalhostにポイントすると、「It works!」というテキストが表示されます。 dyndnsからもアクセスできます。
次のコマンドを実行して乗客をインストールしました。
Sudo gem install passenger
passenger-install-Apache2-module
/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
次に、/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>
私は使用して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
に仮想ホストを追加する以外に必要なことはありますか?
最近、この質問に対して人気のある質問バッジが授与されたので、答えを投稿した頃だと思いました。私は自分の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の他のバージョンでは動作しない可能性があります。ただし、それほど変更されておらず、ほとんどがまだ有効であると思います。
また、別の免責事項も必要です。これは最も安全な構成ではない可能性があります。私はすべてのオプションを理解しているわけではありませんが、それは非常に許容できるようです。私は同僚に設定を手伝ってもらいましたが、これは私たちが機能するようになった設定の最初のバージョンにすぎません。セキュリティは開発サーバーであり、運用環境ではないため、あまり気にしませんでした。
設定を改善する方法について提案があれば、遠慮なく投稿してください。私はそれらをまったく使用しませんが、他の人はまだ使用する可能性があります。結局のところ、これは人気のある質問です。
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