仮想ホストを動作させることができません。何が間違っているのか確認してください (CentOS 6.0)

仮想ホストを動作させることができません。何が間違っているのか確認してください (CentOS 6.0)

vhost.conf (etc/httpd/vhost.d/ にあります)

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName localhost
         ServerAlias localhost.example.com
         DocumentRoot /var/www/html/example.com/public_html/
         ErrorLog /var/www/html/example.com/logs/error.log
         CustomLog /var/www/html/example.com/logs/access.log combined
    </VirtualHost>

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName example.org
         ServerAlias www.example.org
         DocumentRoot /var/www/html/example.org/public_html/
         ErrorLog /var/www/html/example.org/logs/error.log
         CustomLog /var/www/html/example.org/logs/access.log combined
    </VirtualHost>

httpd.conf、デフォルトの設定が最後に追加されました:

Include /etc/httpd/vhosts.d/*.conf

ルートディレクトリ:

DocumentRoot "/var/www/html"

上記のフォルダに仮想ホストの各ディレクトリが作成されました。権限はすべて正しいようです。各public_htmlディレクトリに Index.php ファイルがあります。ただし、localhost を入力すると、デフォルトの apache 2 ページが表示されます。デフォルトのディレクトリから、webserver works as required という行を削除しInclude /etc/httpd/vhosts.d/*.conf、そこに配置したインデックス ファイルを提供する必要があります。

答え1

入力内容から判断すると、構文エラーはないようです。したがって、/etc/hosts ファイルで次の操作を実行してください (サーバーから直接実行する場合)。

127.0.0.1   example.org
127.0.0.1   example.com

または、PC のホスト ファイルで次の操作を実行します。

YOURSERVERIP  example.org
YOURSERVERIP  example.com

そして、localhost ではなくそのドメインを参照します。

Apache の Web ページだけが表示される理由は、Apache がどのページに移動するかを知る必要があるためです。DNS がまだ設定されていないため、問題のホスト名で Apache に何も送信されず、デフォルトでドキュメント ルートになります。

答え2

Include 行は VirtualHosts の後にあるので、含まれている仮想ホストの 1 つが新しい仮想ホストを上書きしていると思われます。「httpd -S」は何と言っていますか? (「httpd」ではなく、「apache2」など他の何かかもしれません)。-S フラグは、構成したすべての仮想ホストを表示し、デバッグに役立ちます。

include 行を削除して、新しいブロックが機能するかどうかを確認してください。エラー ログをチェックして、構成ファイルに関する警告があるかどうかを確認することもできます。

関連情報