
私の問題の説明を直接見るには、問題一部。
コンテクスト:
XUbuntu 14.10 と Apache 2.4.10 を実行しています。
私は Apache の初心者なので、シンプルな VH を設定しようとしています... ある程度は成功しましたが、まだ問題があります。ドキュメントを読んでも、設定のどこが間違っているのかわかりません。2 つの仮想ホストを設定したいと思います。マイネームそしてペンギン。
構成
以下は私の現在の構成の簡単な説明です (網羅的ではありません)。
apache2.conf は、
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/flashlight/>
AllowOverride All
</Directory>
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/>
AuthName "Mon domaine"
AuthType Basic
AuthUserFile /etc/apache2/users.passwd
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require valid-user
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/myname.conf
<VirtualHost 127.0.0.2:80>
ServerName myname.com
ServerAlias www.myname.com
DocumentRoot /var/www/html/myname
<Directory /var/www/html/myname>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
ペンギンを有効にするには
<VirtualHost 127.0.0.3:80>
ServerName penguin.com
ServerAlias www.penguin.com
DocumentRoot /var/www/html/penguin
<Directory /var/www/html/penguin>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
両方の仮想ホストは、Apache ドキュメントの説明に従って、 を使用して有効化されましたa2ensite
。Apache は、 を使用して再起動されました/etc/init.d/apache2 graceful
。 で/var/www/html/penguin
、仮想ホスト上にいるかどうかを確認するための簡単なファイル/var/www/html/myname
を作成しました。index.html
最終的に、以下/etc/hosts
を含むように変更しました:
127.0.0.1 localhost
127.0.0.2 myname.com
127.0.0.3 penguin.com
設定を確認するには、以下を実行してapachectl -S
確認できます。
VirtualHost configuration:
127.0.0.3:80 penguin.com (/etc/apache2/sites-enabled/penguin.conf:1)
127.0.0.2:80 myname.com (/etc/apache2/sites-enabled/myname.conf:1)
*:80 www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
問題
penguin.com
2 つの仮想ホストが構成されたので、それらにアクセスしようとします。ブラウザ (Firefox) でアクセスしようとすると、/var/www/html/index.html
ではなく が表示されます。正しいインデックス ページを表示するには、/var/www/html/penguin/index.html
明示的に記述する必要があります。penguin.com/index.html
しかし、アクセスしてみるとmyname.com
正しいインデックスが提供される!?
さらに、Chrome でこれらのサイトにアクセスすると、この問題は発生せず、正しいインデックス ページが直接表示されます。
私の Apache 設定に問題があるのでしょうか? それとも、Firefox にのみ関係していると思いますか (/etc/hosts
正しく読み取れない可能性があります)?
編集
IP (127.0.0.2/3) 経由でページにアクセスすると、Firefox でも同じ問題が発生することを忘れていました (127.0.0.2 のみが機能します)。
を使用するとwget
、期待どおりにファイルを取得できます。したがって、これは Apache の設定ではなく、ブラウザに関連している可能性があります。
編集2
この問題を「解決」するために、/etc/hosts のループバック アドレスをローカル IP アドレスに置き換えました。さらに、<VirtualHost *:80>
両方のファイルで VirtualHost 宣言を置き換えました。これで正常に動作するようになりました。
しかし、完全なループバック IP アドレスが指定されたときに Firefox が正しいインデックスを取得できなかったのはなぜなのか、いまだに疑問に思っています。
長い投稿ですみません!
ありがとう
答え1
この場合、Firefox は名前解決の最後のオプションとして /etc/hosts をチェックします。
この回避策を試すことができます。
- Firefox を開いて
about:config
URL を入力します。 - 検索し
keyword.enabled
てFalseに設定します。 - /etc/nsswitch.conf で、
hosts
エントリがfiles
最初のオプションになっていることを確認します。