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を直接使用したのはこれが初めてです-どんな助けでも最もありがたいことに受け取られるでしょう!
サーバーの移行を行う前に、私はこの状況に陥っています。
サーバー側でサーバーを正しく構成してから、ローカルで「ghost」rubygemを使用してホストを変更します(OS Xと同等)。DNSを切り替える前にすべてが正しいかどうかをテストできます。
いくつかのオプションがあります。まず、サーバーのホスト名を参照できますか? http:// efate / ?もしそうなら、あなたは設定されています。
または、Apacheの デフォルトのホスト設定 を使用することもできます。
このようなものがあなたのために働くはずです:
<VirtualHost *:80>
ServerName _default_
DocumentRoot /root/jpf/public
</VirtualHost>
最後に、ローカルホストファイルにドメインを設定し、それをサーバーのIPにポイントし、そのドメインを使用してサーバーにアクセスできます。
私が使用しているUbuntuのバージョンでは、/ etc/Apache/sites-enabledに仮想サーバー構成ファイルがあります。 「機能する」ページは/ var/www/htdocsから提供されており、/ etc/Apache/sites-enabled/000-defaultファイルで指定されていると思われます。この設定ファイルを編集すると、マシン名を使用するだけでアクセスできる場合があります。
この場合、ドメイン名が必要ないことを除いて、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
それは私のために働いた。