私は、仮想ホストを使用して、Ubuntu 12.04.3を実行するDigital OceanでVPSを運用しています。ここでこのチュートリアルに従って物事を設定することができました: https://www.digitalocean.com/community/articles/how-to-set-up-Apache-virtual-hosts-on-ubuntu-12- 04-lts
しかし、数日後、メインドメイン(noelforte.com)に移動してすべてがスムーズに実行されているかどうかを確認しましたが、一時的に設定したランディングページではなく、ディレクトリリストが表示されていました。
奇妙なことに、VHostsで構成したサブドメインは正しいディレクトリを指していましたが、メインドメインは/var/www
のデフォルトのドキュメントルートを指すように戻りました。
/etc/Apache2/sites-available
の構成ファイルを削除し、すべてを再度設定しても同じ結果が得られました。すべてのサブドメインは正しい場所を指していますが、ルートTLDは/var/www
を指さしたままです。
何がこのような状況を引き起こす可能性がありますか?なぜそれが最初に正しく機能したのですか?
解決しました! Sudo Apache2ctl -S
を実行すると、以下が返されます。
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server noelforte.com (/etc/Apache2/sites-enabled/000-default:1)
port 80 namevhost noelforte.com (/etc/Apache2/sites-enabled/000-default:1)
port 80 namevhost media.noelforte.com (/etc/Apache2/sites-enabled/media.noelforte.com:1)
デフォルトを含むすべてのサイトを無効にし、必要なサイトのみをアクティブにすることにしました。それで私の問題は解決しました。
ここに見られるように、誰かがnoelforte.com
がdefault-000
として実行された理由を説明できた場合:
port 80 namevhost noelforte.com (/etc/Apache2/sites-enabled/000-default:1)
これは、正しく構成されていない可能性があるものに光を当てるのに役立ちます。ありがとう!
000-default
に/etc/Apache2/sites-available
ファイルを作成するか、すでに存在する場合は編集します。検索しているサイトに仮想ホストが定義されていない場合に、Webサーバーが指す場所です。
ファイルが/etc/Apache2/sites-enabled
にも存在することを確認してください。そうでない場合:ln -s /etc/Apache2 sites-available/000-default /etc/Apache2/sites-enabled/
/etc/Apache2/sites-enabled/yourdomain.confを編集して、「yourdomain」に「ServerName」を追加する必要があります。例:
<VirtualHost *:80>
ServerName MyDomain
DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>