Apacheを使用してVirtualHostsとして構成されているサイトがいくつかありますが、しばらくの間は正常に機能しています。私は最近、サーバーのホスト名をサービスされているドメイン名の1つに変更し、サーバーの外部IPアドレスを指す/ etc / hostsにも追加しました。
私がそうしたので、私のラップトップからドメインにアクセスすると、Apacheのデフォルトの「It works!」に移動します。ページ。/ etc / apache2 / sites-enabled /から000-defaultを削除すると、正しいサイトが表示されます。「www」でサイトにアクセスしようとしています。接頭辞は、000-defaultがサイト対応であるかどうかに関係なく、正しいサイトに移動します。
これらすべてに基づいて、ホスト名または/ etc / hosts(またはその両方)を構成した方法が原因で、デフォルトの構成がデフォルトのページを提供していると思いますが、それを無効にする方法がわかりませんそれらの設定をそのまま残します。どんな提案も歓迎します!
編集-現在のVirtualHost構成は次のようになります。
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin me@domain.com
DocumentRoot /srv/www/domain
ErrorLog /srv/www/domain/logs/error.log
CustomLog /srv/www/domain/logs/access.log combined
</VirtualHost>
要約すると、いくつかのVirtualHostsがセットアップされていますが、これが正しく機能しない唯一のVirtualHostsです。http://www.domain.comには問題なくアクセスできますが、http://domain.comを使用すると、Apacheのデフォルトの "It works!"が表示されます。ページ。000-default構成を無効にすると、適切なページが表示されます。これは、サーバーのホスト名をdomain.comに設定し、domain.comがサーバーの外部IPアドレスを指すように/ etc / hostsに行を追加した後にのみ発生し始めました。できればそのままにしておきたいです。
編集:私は走ったapache2ctl -S
ので、/usr/sbin/apache2 -S
「:悪いユーザ名$ {} APACHE_RUN_USER apache2の」私を与えました。出力は次のとおりです。
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost other.com (/etc/apache2/sites-enabled/other:1)
port 80 namevhost another.com (/etc/apache2/sites-enabled/another:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/domain:1)
Syntax OK