1

サーバーに sencond サイトを設定する際に問題が発生していapache2ます。私は現在、1つのサイトを稼働させており、それもライブです. ただし、作業中の別のサイトがあり、ローカルでホストしようとしています。次のように、newsite という名前のサイトで利用可能なファイルを作成しました。

<VirtualHost *:80>
        ServerName newsite
        ServerAdmin webmaster@localhost

    DocumentRoot /var/www/newsite/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/newsite/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

a2ensitenewsiteで有効にします

ホストファイル 127.0.0.1 www.newsite.com を編集します

私はa2ensitenewsiteを実行しました

新しいサイトを表示すると正常に動作しますが、元のサイトを表示しようとするとニュースサイトしか表示されません

新しいサイト (a2dissite newsite) を無効にすると、元のサイトは正常に表示されます

どんな助けでもいただければ幸いです

4

1 に答える 1

0

ServerNameandServerAliasディレクティブを正しく設定していないと思います。

両方の仮想ホストの場合、次のようになります

 ServerName newsite.com 
 ServerAlias www.newsite.com 
 ServerName oldsite.com 
 ServerAlias www.oldsite.com

現在起こっていることは、newsite と呼ばれる仮想ホストをセットアップしたことです。あなたがそうするならhttp://newsite/:あなたはニュースサイトを見るでしょう、しかしあなたはやっていwww.newsite.comます. 同様に、http://oldsite/(同じ方法でセットアップされていると仮定して) 実行すると、oldsite も表示されます。

するとwww.newsite.com、DNS はループバック インターフェイスに誘導しますが、apache が要求を受け取ったとき、それをどう処理するかわかりません。したがって、1 つだけを選択します。これは、単純に IP でアクセスしようとした場合と変わりません。

したがって、解決策は、 andディレクティブを呼び出すhttp://newsite/か修正することです。ServerNameServerAlias

于 2012-09-26T10:43:20.143 に答える