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 31/05/2018, à 15:05

Eltche

[Résolu] VirtualHost non fonctionnel

Bonjour à toutes et à tous,

Je lance une bouteille à la mer car je sèche lamentablement pour configurer un simple virtualhost.

J'ai fraichement installé une ubuntu server 18.04 LTS avec Apache, php7 et Mysql, sur une VM dans mon LAN à laquelle j'accède en ssh sur 192.168.0.2. Le firewall n'est pas actif.
Depuis mon navigateur je peux afficher la page par défaut d'apache (Apache2 Ubuntu Default Page) par l'URL http://192.168.0.2.

J'ai réduis mon problème à la plus simple expression. Je veux d'afficher la page /var/www/example/index.html
Pour cela j'ai crée un fichier /etc/apache2/sites-available/example.conf que j'ai activé via a2ensites. Puis j'ai rechargé la configuration d'Apache avec systemctl reload apache2.

# /etc/apache2/sites-available/example.conf
<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName lnx02
#ServerAlias    /example /var/www/example
        <Directory /var/www/example>
                Require all granted
        </Directory>
</VirtualHost>

Lorsque j'accède à la page http://192.168.0.2/example j'obtiens une erreur 404. Qu'ai je pu oublié de si flagrant ?

Merci pour votre aide.

Dernière modification par Eltche (Le 06/06/2018, à 16:56)

Hors ligne

#2 Le 31/05/2018, à 15:32

krodelabestiole

Re : [Résolu] VirtualHost non fonctionnel

si tu indiques lnx02 comme nom de serveur, il faudra accéder à ton serveur sur l'url http://lnx02/

ce nom de domaine n'existe pas donc sur la ou les machines clientes il faut ajouter la ligne

192.168.0.2 lnx02 

à ton ou tes fichiers /etc/hosts

Hors ligne

#3 Le 01/06/2018, à 10:48

Eltche

Re : [Résolu] VirtualHost non fonctionnel

Bonjour krodelabestiole,
Merci de te pencher sur mon problème.

J'ai oublié de le préciser mais j'ai bien ajouté cette ligne dans mon fichier /etc/hosts. Mais cela ne servirait que si mon navigateur et mon serveur web étaient sur la même machine, ce qui n'est pas le cas. De plus j'ai déjà configuré il y a quelques années maintenant, des virtualHosts sur une Debian 5 et auxquels j’accède via des URL comme http://adress_ip/alias1, http://adress_ip/alias2.

Autre fait qui me trouble c'est que la page défaut d'apache (Apache2 Ubuntu Default Page) qui se trouve dans /var/www/html et s'affiche avec l'url http://192.168.0.2 et non pas avec http://192.168.0.2/html. Encore plus troublant, si je supprime la page par défaut d'apache (/var/www/html/index.html) elle continue de s'afficher dans mes navigateurs (cache nettoyé) !
Faut-il désenvouter mon serveur ?

En parallèle j'ai installé phpmyadmin. Il n'y a aucun fichier virtualhost dans /etc/apache2/sites-enabled. Par contre il est défini dans /etc/apache2/conf-enabled. J'accède à phpmyadmin via http://192.168.0.2/phpmyadmin/. J'ai essayé de faire la même chose avec mon site /var/www/example sans succès...

J'ajoute mon fichier apache2.conf, mais je ne crois pas avoir apporté de modification dessus.

#/etc/apache2/apache2.conf
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>
<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

Si vous avez quelques pistes de recherche, je suis preneur. Merci. smile

Hors ligne

#4 Le 01/06/2018, à 11:45

bruno

Re : [Résolu] VirtualHost non fonctionnel

Bonjour,

Je pense qu'il y a une mauvaise compréhension des hôtes virtuels et de leur configuration.

Si tu veux plusieurs hôtes virtuels sur le même serveur, et donc servir plusieurs sites dans des dossiers différents, il te faut des noms de domaine différents (ou des adresses IP différentes mais c'est une autre histoire).
Si tu n'utilises pas un nom de domaine correspondant à une directive ServerName de l'un de tes hôtes virtuels dans ta requête HTTP (dans ton cas l'adresse IP), apache utilise le premier hôte virtuel dans l'ordre alphabétique (dans ton cas probablement 000-default.conf).

Lire : https://httpd.apache.org/docs/2.4/fr/vh … based.html


Autre point, avec un hôte virtuel défini ainsi :

<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName example.com
        <Directory /var/www/example>
                Require all granted
        </Directory>
</VirtualHost>

Une requête vers http://example.com conduira à l’affichage. du fichier index contenu dans /var/www/example. Une requête vers http://example.com/example donnera une erreur 404

Voir les directives ServerName, DocumentRoot et Alias dans la documentation.

Hors ligne

#5 Le 01/06/2018, à 12:46

krodelabestiole

Re : [Résolu] VirtualHost non fonctionnel

oui, la doc est là : https://doc.ubuntu-fr.org/apache2#hotes_virtuels

hésite pas à demander si tu ne comprends pas tout.

Hors ligne

#6 Le 06/06/2018, à 12:03

Eltche

Re : [Résolu] VirtualHost non fonctionnel

Pris par le boulot, je reviens sur mon problème.

Après avoir essayé diverses combinaisons de directive dans le fichier virtualhost, suivi les indications de krodelabestiole et bruno (merci) et modifié beaucoup de choses, j'ai décidé de tout réinstallé. J'ai donc:

- Ubuntu 18.04 server fraichement installé et mis à jour dans un environnement virtuel distant accessible uniquement par ssh. IP: 192.168.0.2/24. J'ai uniquement installé Apache2.
- J'ai créé un simple fichier /var/www/example/index.html avec comme texte "Hello world"
- Je n'utilise pas de DNS.

Je souhaite accéder à cette page par l'url http://192.168.0.2/example. (J'obtiens une erreur 404). Comment dois-je procéder ? Ai-je besoin au final de configurer un virtualhost ?

Toute aide est la bienvenue.

Hors ligne

#7 Le 06/06/2018, à 12:20

bruno

Re : [Résolu] VirtualHost non fonctionnel

Avec l'hôte virtuel par défaut d'Ubuntu (qui est configuré pour servir le site présent dans /var/www/html) il suffit qu ton fichier soit ici : /var/www/html/example/index.html

Hors ligne

#8 Le 06/06/2018, à 16:54

Eltche

Re : [Résolu] VirtualHost non fonctionnel

Merci Bruno,

Effectivement c'est tout simplement ça... Donc nul besoin de virtualhost.
J'étais habitué de travailler avec une racine /var/www, si bien que je résonnais avec ça en tête..C'est pourtant bien marqué sur la page par défaut :"The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box. "

Bref, je vais pouvoir passer à la suite. Merci.

Hors ligne