Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/05/2016, à 15:55

NeoKizashi

[Résolu] Apache 2.4 - Problème de config VirtualHost

Bonjour à tous,

Je viens vous voir parce que je suis un peu désespéré, ça fait plusieurs jours que je cherche a résoudre ce problème et à mon avis, il y a un truc tout bête auquel je ne pense pas qui bug.
J'ai un serveur Apache 2.4 installé sur mon raspberry et j'ai un soucis au niveau des virtualHost.

Pour info, actuellement je bossais sur un seul site et le site fonctionnait, donc je ne pense pas qu'il y ait un probleme de droits.
Désormais j'ai 2 fichiers de conf dans /etc/apache2/sites-available/ : biblio.conf et test.conf et je les ai activé tous les deux avec la commande a2ensite.

Mes répertoires contenant les sites sont dans /var/www/biblio et /var/www/test, il y a un fichier index.html dans chacun avec un message tout bête "Page d'accueil de 'truc'" (avec 'truc' = le nom du site).
Quoi que je fasse, je vais arriver sur le site du premier fichier de conf du répertoire sites-available/.
J'ai testé de renommer test.conf par atest.conf, pour qu'il passe en premier et j'arrive sur la page indiquant "Page d'accueil de test".
Donc j'ai l'impression que mes VirtualHost sont mal renseignés et Apache prend alors le premier qu'il trouve.
Plus exactement, quand je vais juste à la racine de mon serveur (192.168.0.17 ou mondns.hd.free.fr), j'arrive sur le premier fichier de conf.
Mais quand je veux aller sur 192.168.0.17/biblio ou 192.168.0.17/test.fr, j'ai une erreur 404 Not found...


Et maintenant, attention les yeux, voici les fichiers de conf tel qu'ils sont actuellement:
biblio.conf :

<VirtualHost *:80>
        DocumentRoot "/var/www/biblio"
        ServerName biblio
        <Directory "/var/www/biblio">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

test.conf :

<VirtualHost *:80>
        DocumentRoot "/var/www/test"
        ServerName test.fr
        <Directory "/var/www/test">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dans mes fichiers .conf, vous ne retrouverez pas la balise NameVirtualHost *:80, je l'ai mis dans le apache2.conf afin qu'il ne soit appelé qu'une fois. Même dans chaque fichier de conf, cela ne régle pas le probleme.
J'ai essayé de modifier mon fichier /etc/hosts mais en vain (j'ai surement fait n'importe quoi a ce niveau là, je l'avoue)

127.0.0.1       localhost test.fr
::1             localhost ip6-localhost ip6-loopback
192.168.0.17    localhost test.fr
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi
mondns.hd.free.fr localhost test.fr

Voilà, je pense avoir résumé tout ce que j'ai vu. Il s'agit peut-être d'un problème tout bête, mais là je vois pas hmm
J'espère que vous pourrez m'aider. Dans tout les cas, merci d'avoir pris le temps de me lire smile

Edit : Allez voir tout en bas pour avoir la solution qui a été trouvé dans mon cas


Edit modo : j'ai ajouté les balises code, pense à les mettre toi-même. wink

Dernière modification par NeoKizashi (Le 22/05/2016, à 17:43)

Hors ligne

#2 Le 22/05/2016, à 16:08

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Salut,

je ne suis pas un pro d'Apache2 (j'utilise plutôt Nginx), mais selon ton usage, tu peux faire des vhost par port. Par exemple, tu laisse biblio sur le port 80 et tu mets test sur le port 8080 :

<VirtualHost *:8080>
        DocumentRoot "/var/www/test"
        ServerName test.fr
        <Directory "/var/www/test">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ainsi, pour accéder à bibli il suffit d'ailler sur 127.0.0.1, et pour test sur 127.0.0.1:8080
Tu devras peut-être modifier le fichier hosts (tu peux déjà le déplacer pour voir, pour faire comme s'il était supprimé sans le perdre définitivement).


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#3 Le 22/05/2016, à 16:10

bobe

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

NeoKizashi a écrit :

Donc j'ai l'impression que mes VirtualHost sont mal renseignés et Apache prend alors le premier qu'il trouve.
Plus exactement, quand je vais juste à la racine de mon serveur (192.168.0.17 ou mondns.hd.free.fr), j'arrive sur le premier fichier de conf.
Mais quand je veux aller sur 192.168.0.17/biblio ou 192.168.0.17/test.fr, j'ai une erreur 404 Not found...

apache prend le premier s'il n'y a pas d'indication d'hôte dans les en-têtes http transmis par le navigateur, ce qui est le cas si tu contactes le serveur directement avec son IP.

192.168.0.17/biblio => /var/www/biblio/biblio/index.html
192.168.0.17/test.fr => /var/www/biblio/test.fr/index.html

Pour tomber sur les bons virtualhost, il faut utiliser les noms d'hôte correspondant (ServerName) et donc que la résolution DNS de ces noms d'hôte donne l'IP du serveur.

http://biblio => "biblio" résolu en "192.168.0.17" => apache va retourner /var/www/biblio/index.html

Hors ligne

#4 Le 22/05/2016, à 16:37

NeoKizashi

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Merci à vous deux Shanx et bobe.

@Shanx : Je viens de tester de changer un des virtualHost pour qu'il utilise le port 8080 mais cela n'a pas fonctionné. J'ai un message "ce site est inaccessible" (donc ça change quand meme du 404). Si jamais j'arrive à utiliser le port 80 et 8080, si plus tard je souhaite faire un 3e VirtualHost, je risque d'être bloqué
(Au passage, merci pour l'edit de mon premier post, je n'avais pas vu ces balises codes, j'y penserais à l'avenir ;-) )

@bobe : Je ne suis pas sur d'avoir bien saisi ton message, désolé neutral En revanche, j'ai compris que le nom d'hôte n'était pas envoyé en appelant le site avec son IP, mais même quand j'essaye mondns.hd.free.fr/biblio, je ne trouve pas le site, pourtant le nom d'hôte est bien envoyé là ? Je devrais recevoir côté serveur "biblio" qui correspond a mon ServerName.
Si j'essaye d'appeler http://biblio (ou http://test.fr), j'ai un message "ce site est inaccessible" (et aucune trace de cet appel dans les logs apache)

Hors ligne

#5 Le 22/05/2016, à 16:45

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

NeoKizashi a écrit :

Merci à vous deux Shanx et bobe.

@Shanx : Je viens de tester de changer un des virtualHost pour qu'il utilise le port 8080 mais cela n'a pas fonctionné. J'ai un message "ce site est inaccessible" (donc ça change quand meme du 404). Si jamais j'arrive à utiliser le port 80 et 8080, si plus tard je souhaite faire un 3e VirtualHost, je risque d'être bloqué
(Au passage, merci pour l'edit de mon premier post, je n'avais pas vu ces balises codes, j'y penserais à l'avenir ;-) )

Il faudrait avoir les logs exacts d'Apache2 (/var/log/apache2/error.log peut-être ?) pour savoir d'où vient l'erreur.

Sinon, autre possibilité (inspirée de ce que je fais avec nginx) :

biblio.conf :

<VirtualHost *:80>
        DocumentRoot "/var/www/biblio"
        ServerName biblio
        <Directory "/var/www/biblio">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

test.conf :

<VirtualHost *:80>
        DocumentRoot "/var/www/test"
        ServerName test
        <Directory "/var/www/test">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Et dans ton /etc/hosts :

127.0.1.1	test
127.0.1.1	biblio

Pour accéder aux sites, tu dois aller sur "biblio" ou "test" avec ton navigateur.

Je pense que c'est ce que propose bobe.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#6 Le 22/05/2016, à 16:58

NeoKizashi

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

J'ai modifié le /etc/hosts ainsi que les .conf mais toujours rien ...
Voici les logs obtenus sur les appels dans l'ordre à mondns.hd.free.fr/test.fr, mondns.hd.free.fr/biblio et mondns.hd.free.fr/
error.log

[Sun May 22 16:49:40.354837 2016] [mpm_prefork:notice] [pid 21015] AH00163: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Sun May 22 16:49:40.355229 2016] [core:notice] [pid 21015] AH00094: Command line: '/usr/sbin/apache2'

access.log

192.168.0.15 - - [22/May/2016:16:49:53 +0200] "GET /test.fr HTTP/1.1" 404 509 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
192.168.0.15 - - [22/May/2016:16:49:58 +0200] "GET /biblio HTTP/1.1" 404 503 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
192.168.0.15 - - [22/May/2016:16:50:02 +0200] "GET / HTTP/1.1" 200 371 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"

Le 192.168.0.15 est le poste depuis lequel j'appelle le serveur.
On voit bien 2 erreurs 404 et un code 200, la page appelé par défaut. Les logs sont ici au complet, il n'y a pas de message d'erreur dans les logs, ce qui ne m'arrange pas hmm

Hors ligne

#7 Le 22/05/2016, à 16:59

bobe

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Oula, y a un gros déficit de connaissances là. On reprend à zéro.

Sur la machine que tu utilises comme client (= navigateur web), le nom de domaine "biblio" doit être résolu avec l'IP du raspberry, soit 192.168.0.17 ici. Est-ce le cas ? Tu peux faire une commande ping pour faire le test : "ping biblio"

Une fois que c'est le cas, le navigateur appelle la machine 192.168.0.17 sur le port 80 lorsqu'on tape http://biblio et transmet ce genre d'en-têtes :

GET / HTTP/1.1
Host: biblio
Accept: text/html
Connection: close

C'est l'en-tête Host qui permet à apache de savoir que tu veux l'index du virtualhost ayant le ServerName "biblio" (= nom d'hôte virtuel, c'est à dire un nom d'hôte qui n'est pas le nom réel de la machine).

Si tu appelles http://192.168.0.17/biblio, apache ne reçoit pas d'en-tête Host et va utiliser par défaut le premier virtualhost dans sa configuration.

Dernière modification par bobe (Le 22/05/2016, à 17:03)

Hors ligne

#8 Le 22/05/2016, à 17:09

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

C'est de ma faute, j'ai pas bien suivi et j'ai mis la mauvaise IP dans le hosts (induis en erreur par le hosts du #1).

Donc, dans le fichier /etc/hosts du client :

192.168.0.17	test
192.168.0.17 biblio

(supprime le reste du fichier, c'est un foutoir inutile)
Ensuite, comme le propose bobe, fais les deux commandes suivantes :

ping biblio
ping test

(ctrl+c pour les arrêter)
Les deux doivent fonctionner. Si c'est le cas, accède à "biblio" et à "test" depuis ton navigateur.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#9 Le 22/05/2016, à 17:15

NeoKizashi

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

bobe a écrit :

le nom de domaine "biblio" doit être résolu avec l'IP du raspberry, soit 192.168.0.17 ici. Est-ce le cas ? Tu peux faire une commande ping pour faire le test : "ping biblio"

Je viens de tester et "la requête ping n'a pas pu trouver l'hôte biblio." Il en va de même pour test.fr

Edit : En fait Shanx indique de faire exactement ça, je n'avais pas vu ton message xD
Mais ton message m'a laissé supposer qu'en modifiant le hosts de ma machine client, j'obtiendrai peut-être un résultat et en effet ! En rajoutant à mon Hosts client

192.168.0.17	biblio

je peux pinger "biblio" et me connecter a biblio ! En revanche, quand j'essaye de me connecter a test.fr, j'arrive sur biblio ...
Mais on progresse !

Dernière modification par NeoKizashi (Le 22/05/2016, à 17:16)

Hors ligne

#10 Le 22/05/2016, à 17:18

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Donne nous les contenus exact du fichier hosts et des fichiers de conf d'Apache2 (les vhost).


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#11 Le 22/05/2016, à 17:31

NeoKizashi

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Bon, je ne sais pas a quoi c'est dû, mais maintenant la page qui apparait tout le temps est celle de test.fr ...
Bref, voici les fichiers !
hosts client

192.168.0.17	biblio
192.168.0.17	test.fr

hosts serveur

127.0.0.1       localhost test.fr biblio
::1             localhost ip6-localhost ip6-loopback
192.168.0.17    localhost test.fr biblio
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi

biblio.conf

<VirtualHost *:8080>
        DocumentRoot "/var/www/biblio"
        ServerName biblio
        ServerAlias */biblio
        <Directory "/var/www/biblio">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

#       LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

test.fr.conf

<VirtualHost *:80>
        DocumentRoot "/var/www/test"
        ServerName test.fr
        <Directory "/var/www/test">
                Options Indexes FollowSymLinks MultiViews
                Require all granted
        </Directory>
        DirectoryIndex index.html index.php

#       LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

EDIT : OMG ça marche !! Ci-dessus, j'ai vu que j'avais laissé le port a 8080 pour biblio. En le remettant a 80, mes 2 vhosts fonctionnent !!
Donc le problème se situait dans le hosts client !
Waow ... Tout ça pour 2 lignes ... xD

Un ENORME merci a vous Shanx et bobe, vous m'avez tellement aidé et ce avec patience !!
Merci merci

Dernière modification par NeoKizashi (Le 22/05/2016, à 17:35)

Hors ligne

#12 Le 22/05/2016, à 17:33

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Le port de biblio doit être 80, pas 8080.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#13 Le 22/05/2016, à 17:40

NeoKizashi

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Oui, j'ai vu cela après coup ^^

Alors pour tout ceux qui ont lu ce post en ayant la même erreur que moi, il faut modifier votre fichier hosts client.
Dans mon cas, le client est sur Windows, mon hosts se trouve à cet emplacement : C:\Windows\System32\drivers\etc\hosts.
Il faut l'ouvrir en tant qu'admin (notepad++ par exemple) et dans mon cas, mon anti-virus bloque l'édition donc coupez-le juste le temps d'éditer votre fichier et renseignez les valeurs comme ça

IP_serveur	valeur_servername

Encore merci a bobe et Shanx !

Hors ligne

#14 Le 22/05/2016, à 17:41

Shanx

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Un petit [résolu] dans le titre ? wink


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#15 Le 22/05/2016, à 17:42

bobe

Re : [Résolu] Apache 2.4 - Problème de config VirtualHost

Édite ton premier message et ajoute [résolu] au début du sujet ;-)

Hors ligne