web-dev-qa-db-ja.com

Apacheサイト構成ファイル000-default.confを無効にしましたが、まだアクティブに見えます。どうして?

正しい設定でファイルmysite.confをApacheサイトで使用可能なフォルダーに追加し、それを有効にしてApacheをリロードしましたが、動作しません。 000-default.confで定義されているデフォルトのサイト構成を無効にして、問題が解決するかどうかを確認します。

これを達成するために私は走りました:

cd /etc/Apache2/sites-available/
Sudo a2dissite 000-default.conf
service Apache2 reload

すべて正常に動作しているように見えましたが、ブラウザでmysite.comを読み込むと、/ var/www/html /(000-default.confに示されているように)にデフォルトのindex.htmlファイルが表示されます。次のように私のドメインのサイト構成ファイルを有効にしました:

<VirtualHost *:80>
        ServerName www.mysite.com
        ServerAlias mysite.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/mysite.com

        ErrorLog ${Apache_LOG_DIR}/error_mysite.log
        CustomLog ${Apache_LOG_DIR}/error_access_mysite.log combined

</VirtualHost>

代わりにロードされるはずのファイル/var/www/mysite.com/index.phpがあります。

7

将来のユーザーに対する説明の問題として。

000-default.confファイルはキャッチオールサイトであり、そのままにしておく必要があります。セキュリティに適しています。サイト構成が機能せず、デフォルトのサイトが提供されると、イライラすることがあります。わかった。それでも、そのままにしておきます。多くの人々は、デフォルトのサイトが存在する理由を知りません。ここに少し説明があります。

Apacheはリクエストを受信すると、それを認識している構成に一致させようとします。そのため、example.comに対する要求は、適切な構成を持つexample.com.confを探します。一致するものがない場合、000-default.confサイトが使用されます。 bogussite.comのリクエストが表示され、サーバーに存在しない場合、000-default.confファイルが提供されます。これは、IPアドレスのみの要求で特に役立ちます。そして、私たちは皆それらを嫌います!!ただし、example.com.confにエラーがある場合でも、000-default.confサイトが提供される可能性があり、設定が失敗する正確な理由と方法が少し混乱し、非常にイライラします。

ここにライブサーバーからの設定例をいくつか示しました: Virtualhost config:routing and wildcard usage

プッシュが突き出るようになり、これらは常に機能するはずです。それらを正確にカットアンドペーストしてから、必要な変更を加えるか、既存のファイルを変更できます。あなたのオプション。これには寄り目が入りやすいので、注意してください。あなたが一人にならないように私たちはすべてそれをやった。

@HighlyIrregularは、彼のコメントでこの点を指摘します。

次を使用して、シェルセッションの構成をいつでも確認できます。

$ apachectl configtest

...これは問題のトラブルシューティングに役立ちます。

/etc/Apache2/site-available/と同様のファイル形式を使用して、example.com.confディレクトリに新しい/追加のサイトを作成する必要があります。また、/etc/Apache2/Apache2.confInclude sites-enabled/または最後の行の1つと同様のものがあることを確認する必要があります。

構成ファイルを変更した場合、Apacheを再起動する必要があります。 Apacheは構成をメモリにキャッシュし、変更は再起動されるまで表示されません。まれに、再起動が期待どおりに機能しないことがあります。この場合、これを問題として除外するには、サーバーを再起動します。再起動時に有効な構成が表示されない可能性が非常に高いです。理由はわかりません。ただし、再起動すると、Apacheは構成ファイルの再キャッシュを強制されます。大きなハンマーを手に入れるようなものです。時々試してみる価値があります。

9
closetnoc

私は、「[000-default.confサイトはサーバーが行わないリクエストのキャッチオールです構成ファイルがあります」。

そして、全体的なセキュリティを保護し強化する最後の手段として、このような「キャッチオールサイト」を利用できると思います。

私がやろうとしたことは、サイト '000-default.conf'を有効にすることですが、設定を少し変更してですべてのリクエストを絶えずドロップします応答を送信し、すべての禁止されたアクセスに対してすぐにCONNECTIONを閉じるため、試行しているリクエスタに対して何も応答/表示されません。

参考のために、ここに私の「000-default.conf」ファイルを示します。

<VirtualHost *:80>
    # ServerName whatsoever
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${Apache_LOG_DIR}/default_error.log
    CustomLog ${Apache_LOG_DIR}/default_access.log combined

    <Location />
        <RequireAny>
            # Example for 'Block all':
            # Require ip 0.0.0.0/32
            Require all denied

            # Example for 'White list':
            # Require ip 172.217.24.37/32
        </RequireAny>
    </Location>

    SecRuleEngine On
    SecRule RESPONSE_STATUS "403" "phase:4,id:1,drop"
</VirtualHost>

ディレクティブ「ModSecurity」と「SecRuleEngine」を受け入れることができるように、「SecRule」モジュールをインストールすることを思い出してください。 「ModSecurity」モジュールのトピックに関する追加の支援と参照が必要な場合は、インターネットを検索することをお勧めします。

上記がお役に立てば幸いです!

2
kman