web-dev-qa-db-fra.com

Avoir désactivé le fichier de configuration du site Apache 000-default.conf, mais il semble toujours actif. Pourquoi?

J'ai ajouté un fichier mysite.conf à mon dossier sites-disponibles Apache avec les paramètres corrects, puis je l'ai activé et j'ai rechargé Apache, et cela ne fonctionne pas. Je veux désactiver la configuration de site par défaut telle que définie dans 000-default.conf pour voir si cela résout le problème.

Pour y parvenir, j'ai couru:

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

et tout semblait bien fonctionner. Cependant, lorsque je charge mysite.com dans mon navigateur, je vois toujours le fichier index.html par défaut dans/var/www/html/(comme indiqué dans 000-default.conf), même si ont activé le fichier de configuration de site pour mon domaine comme suit:

<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>

J'ai un fichier /var/www/mysite.com/index.php qui, je suppose, aurait dû être chargé à la place.

7
Highly Irregular

Juste comme une explication pour les futurs utilisateurs.

Votre fichier 000-default.conf est un site fourre-tout et doit être laissé tel quel. C'est bon pour la sécurité. Cela peut être frustrant lorsqu'une configuration de site ne fonctionne pas et que le site par défaut est servi. J'ai compris. Toujours, laissez-le tranquille. Beaucoup de gens ne savent pas pourquoi le site par défaut existe. Voici une petite explication.

Lorsque Apache reçoit une demande, il essaie de le faire correspondre à une configuration connue. Ainsi, toute demande pour example.com recherchera un exemple.com.conf avec une configuration appropriée. S'il n'y a pas de correspondance, le site 000-default.conf est utilisé. Si une requête pour bogussite.com est vue et qu'elle n'existe pas sur le serveur, le fichier 000-default.conf est servi. Ceci est particulièrement utile pour les demandes d'adresse IP uniquement. Et on les déteste tous !! Cependant, s'il existe une erreur dans example.com.conf, il est toujours possible que le site 000-default.conf soit servi, ce qui rend la raison exacte pour laquelle et comment la configuration échoue un peu déroutant et très frustrant.

J'ai donné quelques exemples de configurations d'un serveur live ici: config Virtualhost: routage et utilisation de joker

La poussée vient au bout, cela devrait toujours fonctionner. Vous pouvez les couper et les coller exactement, puis apporter les modifications nécessaires ou modifier vos fichiers existants. Votre option. Il est facile de regarder de travers, alors soyez prudent. Nous l'avons tous fait pour que vous ne soyez pas seul.

@HighlyIrregular fait ce point dans ses commentaires qui devraient vivre.

Vous pouvez toujours vérifier la configuration dans une session Shell à l'aide de ...

$ apachectl configtest

... ce qui devrait aider à résoudre les problèmes.

Vous devrez créer votre/vos nouveau (s) site (s) supplémentaire (s) dans votre répertoire /etc/Apache2/site-available/ en utilisant un format de fichier similaire à example.com.conf. Vous voudrez également vous assurer que /etc/Apache2/Apache2.conf possède Include sites-enabled/ ou quelque chose de similaire à l'une des dernières lignes.

Lorsqu'une modification est apportée à un fichier de configuration, Apache doit être redémarré. Apache met en cache les configurations en mémoire et les modifications ne seront pas visibles tant qu'il n'aura pas été redémarré. En de rares occasions, un redémarrage ne fonctionne pas comme prévu. Dans ce cas, pour éliminer le problème, vous souhaiterez redémarrer votre serveur. Il est très possible que des configurations valides ne soient pas vues au redémarrage. Pas certain de pourquoi. Cependant, lors d’un redémarrage, Apache est obligé de remettre en cache les fichiers de configuration. C'est comme obtenir un plus gros marteau. Ça vaut la peine d'essayer parfois.

9
closetnoc

Je suis d'accord avec l'utilisateur 'closetnoc' qui a répondu au [2015-août-02 00: 24: 36Z] en réponse au message original qui écrivait "Le site 000-default.conf est un fourre-tout pour toute demande que le serveur ne fait pas. avoir un fichier de configuration pour ".

Et, je pense que nous pouvons utiliser ce "site fourre-tout" en dernier recours pour protéger et renforcer la sécurité globale.

Ce que j’ai essayé de faire, c’est toujours de permettre au site '000-default.conf' d'être activé, mais de rendre sa configuration un peu différente de celle que supprime constamment TOUTES les requêtes SANS envoi de la réponse et ensuite immédiatement CLOSE THE CONNECTION pour tous les accès interdits, de sorte que rien ne soit répondu/révélé au demandeur qui tente.

Voici mon fichier '000-default.conf', pour votre référence:

<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>

Rappelez-vous d'installer le module 'ModSecurity' afin que les directives 'SecRuleEngine' et 'SecRule' puissent être acceptées. Si vous avez besoin d'aide supplémentaire et de références sur le sujet du module 'ModSecurity', suggérez une recherche sur Internet.

J'espère que ce qui précède aide!

2
kman