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