私のサイトに2つのサブドメインを作成したいと思います。そのために、default
ファイルのsites-available(UbuntuでApacheを使用しています)の下に3つのVirtualHostを作成しました。
<VirtualHost 127.0.0.1>
ServerName nmagerko.me
...
DocumentRoot /var/www
...
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName sub1.nmagerko.me
...
DocumentRoot /some/different/path
...
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName sub2.nmagerko.me
...
DocumentRoot /some/different/path2
...
</VirtualHost>
しかし、それ以降はどうしたらいいのかわかりません。これらの各サブドメインとプライマリドメインを/etc/hosts
ファイルに127.0.0.1
として設定し、ドメインレジストラのドメインエディタでsub1
とsub2
のAレコードを設定しました。ただし、これらのAレコードはプライマリドメインと同じIPを指しています。これは、すべて1つのシステムでホストされているためです...これはあまり役に立ちません。そのため、ブラウザでsub1.nmagerko.me
にアクセスすると、nmagerko.me
にアクセスした場合と同じサイトが表示されます。
続行する方法について何か提案はありますか?
うーん、あなたが書いた設定は私には正しいように思われるので、問題をデバッグする方法を紹介しようと思います。
1- Dig nmagerko.me
、Dig sub1.nmagerko.me
、およびDig sub2.nmagerko.me
を実行し、IPを探してDNSが正しく構成されていることを確認します。 wget X.nmagerko.me
を使用してテストします。ブラウザは、DNS応答をキャッシュしている可能性があります。
2- /some/different/path
、/var/www
、および/some/different/pat2
のファイルが異なることを確認します。
3-必ずApacheを再起動してください
SudoサービスApache2の再起動
また、ログも確認できます。
この助けを願っています。
すべてのインスタンスでIPアドレスをポート80のみに変更してみてください。
<VirtualHost *:80>
ServerName nmagerko.me
...
DocumentRoot /var/www
...
</VirtualHost>
これは、仮想ホストが内部(ローカル)トラフィックのみをリッスンしている問題の解決に役立つ場合があります。ドメインAレコードを設定しているので、公開されているサーバーを使用していると思いますか?
Confファイルを変更した後は、Apacheをリロードすることを忘れないでください。
$ Sudo service Apache2 reload
最後に、これはローカルでテストしているだけであることをお知らせください。そうである場合は、ドメインのAレコードを変更する必要はないでしょう(独自のプライベートDNSをホストしている場合を除く)。
Httpd.conf全体(インクルードを含む)がないと、ここから判断することは不可能ですが、追加します
NameVirtualHost 127.0.0.1:80
最初の<virtualHost domain:80>
の上が役立つかもしれませんか?変更後、Apacheを再起動します。