web-dev-qa-db-ja.com

間違ったDocumentRootを指すApache仮想ホスト

私は、仮想ホストを使用して、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を指さしたままです。

何がこのような状況を引き起こす可能性がありますか?なぜそれが最初に正しく機能したのですか?

9
Noel Forte

解決しました! 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.comdefault-000として実行された理由を説明できた場合:

port 80 namevhost noelforte.com (/etc/Apache2/sites-enabled/000-default:1)

これは、正しく構成されていない可能性があるものに光を当てるのに役立ちます。ありがとう!

12
Noel Forte

000-default/etc/Apache2/sites-availableファイルを作成するか、すでに存在する場合は編集します。検索しているサイトに仮想ホストが定義されていない場合に、Webサーバーが指す場所です。

ファイルが/etc/Apache2/sites-enabledにも存在することを確認してください。そうでない場合:ln -s /etc/Apache2 sites-available/000-default /etc/Apache2/sites-enabled/

1
Momo

/etc/Apache2/sites-enabled/yourdomain.confを編集して、「yourdomain」に「ServerName」を追加する必要があります。例:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
0
sudip