web-dev-qa-db-ja.com

ドメイン名なしでPassenger / Apacheを使用してRailsアプリケーションを提供する方法は?

UbuntuサーバーでPassengerとApacheを使用してRailsアプリケーションを提供しようとしています。

Passengerのインストール手順では、Apache構成ファイルに次を追加する必要があると書かれています。これは/etc/Apache2/httpd.confだと思います。

<VirtualHost *:80>
   ServerName www.yourhost.com
   DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
   <Directory /somewhere/public>
      AllowOverride all              # <-- relax Apache security settings
      Options -MultiViews            # <-- MultiViews must be turned off
   </Directory>
</VirtualHost>

ただし、サーバーを指すドメインがまだないため、ServerNameパラメーターに何を指定すればよいかわかりません。 IPアドレスを試しましたが、それを実行すると、Apacheを再起動すると

Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:26 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:36 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

ブラウザをIPアドレスに向けると、500内部サーバーエラーが発生します。

私が賢明なものに最も近いのは

<VirtualHost efate:80>
   ServerName efate 
   DocumentRoot /root/jpf/public
   <Directory /root/jpf/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

ここで、「efate」はサーバーのホスト名です。しかし、ブラウザをサーバーのIPアドレスに向けると、「動作します」というページが表示されます。 -おそらくこれはデフォルトのページですが、どこから提供されているのかわかりません。

これを機能させることができなかった理由は、ドメイン名がないことに関係していると考えるのは間違っているかもしれません。私がApacheを直接使用したのはこれが初めてです-どんな助けでも最もありがたいことに受け取られるでしょう!

1
grifaton

サーバーの移行を行う前に、私はこの状況に陥っています。

サーバー側でサーバーを正しく構成してから、ローカルで「ghost」rubygemを使用してホストを変更します(OS Xと同等)。DNSを切り替える前にすべてが正しいかどうかをテストできます。

1
aussiegeek

いくつかのオプションがあります。まず、サーバーのホスト名を参照できますか? http:// efate / ?もしそうなら、あなたは設定されています。

または、Apacheの デフォルトのホスト設定 を使用することもできます。

このようなものがあなたのために働くはずです:

<VirtualHost *:80>
      ServerName _default_
      DocumentRoot /root/jpf/public
</VirtualHost>

最後に、ローカルホストファイルにドメインを設定し、それをサーバーのIPにポイントし、そのドメインを使用してサーバーにアクセスできます。

0
muffinista

私が使用しているUbuntuのバージョンでは、/ etc/Apache/sites-enabledに仮想サーバー構成ファイルがあります。 「機能する」ページは/ var/www/htdocsから提供されており、/ etc/Apache/sites-enabled/000-defaultファイルで指定されていると思われます。この設定ファイルを編集すると、マシン名を使用するだけでアクセスできる場合があります。

0
Phil

この場合、ドメイン名が必要ないことを除いて、Railsでも同様の問題が発生しました。私がしたことは、vhostコンテインメントを別のポートにまとめてセットアップすることでした。

<VirtualHost *:1234>
   ServerName domain.com
   RailsEnv development
   DocumentRoot /path/to/app/public
   <Directory /path/to/app/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

次に、そのポートをリッスンするようにApacheを設定します。

Listen 1234

それは私のために働いた。

0
Rilindo