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 10/07/2012, à 18:48

oliver2004

Petit souci avec vhosts

Bonjour à tous,
Je rencontre un souci de configuration de virtual hosts sur mon serveur alors que j'avais réussi la configuration sur d'autres machines sans aucun souci.
Jusqu'ici, mes sites son sur le /home du serveur et des liens symboliques dans /var/www permettent d'y acceder.
Mais je me rend compte qu'il faut que j'ai une meilleure configuration, du coup je me lance dans la mise en place de la configuration des vhosts.

J'ai suivi le tuto dans la doc sur le virtual host

Mon fichier /etc/hosts:

pukaninaserver@pukaninaserver:/etc/apache2/sites-available$ cat /etc/hosts
127.0.0.1      localhost.localdomain   localhost pukaninaserver
127.0.0.1      monsite.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Le dossier dans /var/www est bien présent:

pukaninaserver@pukaninaserver:/var/www$ ls
monsite  phpinfo.php

Mon fichier vhost dans /etc/apache2/sites-available:

<VirtualHost *:80>
        ServerAdmin moi@monsite.com
        ServerName monsite.com
        ServerAlias www.monsite.com

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

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

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Quand j'autorise le site dans /etc/apache2/sites-enabled comme indiqué dans la doc avec un petit sudo a2ensite monsite et que je redémarre le serveur apache j'obtient cette erreur:

pukaninaserver@pukaninaserver:/etc/apache2/sites-available$ sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2                                                                                                                                                          [Tue Jul 10 11:46:16 2012] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
                                                                                                                                                                                         [ OK ]

Et bien sûr le site n'est pas accessible.
Ai-je raté quelque chose?


Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...

Hors ligne

#2 Le 10/07/2012, à 20:36

Compte anonymisé

Re : Petit souci avec vhosts

Bonjour,
perso, ça fait un petit moment que j'ai pas bidouillé apache, mais je vois une différence dans le directory, entre le vhost que tu indique et un des miens :

le tien :

<Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/monsite>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All                                                                                                                                                               
                Order allow,deny                                                                                                                                                                
                allow from all                                                                                                                                                                  
        </Directory>

le mien :

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

comme tu le vois, les 2 AllowOverride sont a all sur le tien et a none sur le mien

et accessoirement, mon /etc/hosts :

127.0.0.1    localhost
127.0.1.1    nomduserveur.lan    nomduserveur

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

j'vais rejetter un oeil un peu plus profond dans les configs apache, comme je t'ai dit, longtemps que j'y ai pas touché

#3 Le 10/07/2012, à 21:10

oliver2004

Re : Petit souci avec vhosts

golgoth42 a écrit :

Bonjour,
perso, ça fait un petit moment que j'ai pas bidouillé apache, mais je vois une différence dans le directory, entre le vhost que tu indique et un des miens :

le tien :

<Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/monsite>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All                                                                                                                                                               
                Order allow,deny                                                                                                                                                                
                allow from all                                                                                                                                                                  
        </Directory>

le mien :

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

comme tu le vois, les 2 AllowOverride sont a all sur le tien et a none sur le mien

et accessoirement, mon /etc/hosts :

127.0.0.1    localhost
127.0.1.1    nomduserveur.lan    nomduserveur

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

j'vais rejetter un oeil un peu plus profond dans les configs apache, comme je t'ai dit, longtemps que j'y ai pas touché

Salut golgoth42,
Le none pour toi et le all pour moi, c'est pour permettre au fichier .htaccess de fonctionner, sur none, celui-ci n'est pas autorisé, avec all, ça permet notamment la réécriture d'url par exemple.
Pour le /etc/hosts, ben je sais pas, j'ai fait comme pour les 2 autres machines que j'ai et où la config du virtualhost fontionne sans problème. C'est pour ça que je comprends pas pourquoi ça ne marche pas sur le serveur... est-ce un problème d'iptables?


Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...

Hors ligne

#4 Le 10/07/2012, à 21:31

Compte anonymisé

Re : Petit souci avec vhosts

hum… oui, en effet, j'avais oublié les .htaccess

sinon, en farfouillant un peu, dans le /etc/apache2/ports.conf tu as bien ça :

NameVirtualHost *:80
Listen 80

#5 Le 10/07/2012, à 21:38

sorrodje

Re : Petit souci avec vhosts

Question1:  Tu fais ces tentatives sur un serveur Apache fraichement installé ou remanié de tes précédentes configs ?
Question2: Quel est le contenu de ton fichier /etc/apache2/ports.conf ?
Question3: Quel est le contenu du Vhost Default ?

smile


Utilisateur Debian/Ubuntu depuis 2008 - http://sorrodje.alter-it.org

Hors ligne

#6 Le 10/07/2012, à 22:46

oliver2004

Re : Petit souci avec vhosts

Bonjour à nouveau,
Mon fichier /etc/apache2/ports.conf

 cat ports.conf
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

J'ai donc rajouté la ligne

 cat ports.conf
NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

Mais ça ne marche pas plus.
J'ai toujours cette erreur:

sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2                                                                                                                                                          
[Tue Jul 10 15:27:03 2012] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Tue Jul 10 15:27:03 2012] [warn] NameVirtualHost *:80 has no VirtualHosts
                                                                                                                                                                                         [ OK ]

Je ne comprends pas trop ce qui se passe...
Sinon, pour te répondre sorrodje,
Le serveur est un serveur qui se trouve dans mes bureaux, installé il y a bien 2 ans maintenant. J'y ai pas trop retouché depuis.
Le contenu du vhost default est le suivant:

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride all
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
                Allow from 127.0.0.1            # local
                Allow from 192.168.1.0/24       # reseau
                Allow from 192.168.0.0/24       # reseau
        </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>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...

Hors ligne

#7 Le 10/07/2012, à 23:08

Compte anonymisé

Re : Petit souci avec vhosts

NameVirtualHost, et <VirtualHost *>, dans le vhost default, ajoute un :80 pour voir ?
et pour le 443, tu doit avoir un default-ssl dans les vhost me semble.

#8 Le 10/07/2012, à 23:10

sorrodje

Re : Petit souci avec vhosts

Enlève le

NameVirtualHost *

de ton Vhost Default ?

+ modifier à

<VirtualHost *:80>  pour le début  du Vhos Default toujours .

Voici un "default" sur un Apache neuf de cet après-midi.


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    Redirect / http://hostingvps.fr/

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Deny from all
    </Directory>
    <Directory /var/www/>
        Options -Indexes -FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Deny 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>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

   Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Dernière modification par sorrodje (Le 10/07/2012, à 23:12)


Utilisateur Debian/Ubuntu depuis 2008 - http://sorrodje.alter-it.org

Hors ligne

#9 Le 11/07/2012, à 01:03

oliver2004

Re : Petit souci avec vhosts

J'avance un peu mais c'est pas encore ça.
J'ai donc fait les modifications suggérées.
Le :80 dans le fichier default et j'ai créé un default-ssl pris sur une autre machine.
J'ai reloadé apache, je n'ai plus l'erreur... il reloade [OK] mais le site n'est pas trouvé par le navigateur: 404.
Uhmm pas facile... hmm

Dernière modification par oliver2004 (Le 11/07/2012, à 01:05)


Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...

Hors ligne

#10 Le 11/07/2012, à 01:49

J5012

Re : Petit souci avec vhosts

c'est parce que tu ne comprends pas la syntaxe virtualhost !
si tu definis monsite.com a une ip dans le fichier des hosts, tu ne peux utiliser la syntaxe virtualhost *:80
c'est ce que l'erreur te dit ...

avec monsite.com defini a une ip, la syntaxe virtualhost devient virtualhost ip:80, allez voir la doc officielle apache2 sur leur site, ca sera plus clair ... qu'avec un tuto !

Hors ligne

#11 Le 15/07/2012, à 08:35

wblitz

Re : Petit souci avec vhosts

J5012 a écrit :

si tu definis monsite.com a une ip dans le fichier des hosts, tu ne peux utiliser la syntaxe virtualhost *:80

ou pas. la syntaxe "VirtualHost *:80" permet d'indiquer qu'on recherchera les vhost par leur nom sur toutes les interfaces d'écoute du serveur Apache (enfin sur le port 80). C'est le client qui fait la résolution de nom, pas le serveur ; ajoutez le nom du site dans /etc/hosts ne sert que si on teste directement depuis le serveur.

@oliver2004 : regarde dans chacun de tes vhosts présent dans /etc/apache2/sites-enabled que tu as bien la directive ServerName ; c'est elle qui permet de savoir quel vhost doit être servi quand tu as plusieurs vhosts définis sur une même adresse (... il y a aussi ServerAlias qui peut être utilisé en plus, quand tu as besoin d'alias)


"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs

Hors ligne

#12 Le 16/07/2012, à 12:35

J5012

Re : Petit souci avec vhosts

@wblitz : c'est parce qu'il a config son /etc/hosts, il s'attendait a avoir un hote sur une ip particuliere, alors que dans la plupart des config de vhosts , on ne cherche justement pas a tomber sur une ip particuliere (parce qu'en general on ne dispose pas d'un pool d'ip a gaspiller)

Hors ligne

#13 Le 18/07/2012, à 19:51

oliver2004

Re : Petit souci avec vhosts

wblitz a écrit :
J5012 a écrit :

si tu definis monsite.com a une ip dans le fichier des hosts, tu ne peux utiliser la syntaxe virtualhost *:80

ou pas. la syntaxe "VirtualHost *:80" permet d'indiquer qu'on recherchera les vhost par leur nom sur toutes les interfaces d'écoute du serveur Apache (enfin sur le port 80). C'est le client qui fait la résolution de nom, pas le serveur ; ajoutez le nom du site dans /etc/hosts ne sert que si on teste directement depuis le serveur.

@oliver2004 : regarde dans chacun de tes vhosts présent dans /etc/apache2/sites-enabled que tu as bien la directive ServerName ; c'est elle qui permet de savoir quel vhost doit être servi quand tu as plusieurs vhosts définis sur une même adresse (... il y a aussi ServerAlias qui peut être utilisé en plus, quand tu as besoin d'alias)

Bonjour,
Je n'ai plus aucune ip de configuré dans /etc/hosts, j'ai bien compris que ce n'était que si on testait en localhost directement sur le serveur, ce qui n'est pas la cas ici.

Voici le fichier tel qu'il est actuellement

# Apache doit écouter sur le port 80
Listen 80

NameVirtualHost 192.168.0.1

<VirtualHost server>
        ServerAdmin moi@monsite.com
        ServerName monsite.com
        ServerAlias www.monsite.com

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

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

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Mon serveur est en réseau local, je ne possède pas actuellement de domaine pour accéder à ce site (qui est en intranet) depuis l'extérieur, mais ça sera peut-être le cas prochainement. Le but pour l'instant est donc de pouvoir configurer le virtualhost pour pouvoir automatiser l'exécution de certains scripts de manière régulière (et aussi un htaccess), et j'ai pour ça besoin d'une racine de site, que je ne semble pas avoir sans la configuration de virtual host car /var/www/monsite est un lien symbolique vers un dossier du /home du serveur, et quand on éxécute certains scripts sur cron, ceux-ci vont chercher des fichiers (include) qui ne se trouvent pas à la bonne place car la racine n'est pas définie... d'où le besoin de configurer les virtualhost, aussi bien pour la version du site intranet en production que pour la version en développement sur le même serveur.
Je tombe pour l'instant sur des 404...


Bureaux: Ubuntu Serveur Edition 18.04.4 LTS, Kubuntu, Xubuntu sur portables 18.04 LTS ou 20.04 LTS
Déjà 13 ans que toutes les machines sont LINUX dans mon entreprise...

Hors ligne

#14 Le 19/07/2012, à 00:57

J5012

Re : Petit souci avec vhosts

tu peux parfaitement configurer un site racine sans configurer les vhosts ... le site racine est simplement le site principal pour lequel apache2 sert les contenus en priorite ... et il ne necessite aucunement d'etre dans /var/...

normalement la demarche quand on monte un serveur web est d'abord de faire fonctionner le serveur en mode statique (cad sans php ni sql, ni aucun scripts cgi ou serveur) ...

la technique des vhosts permet seulement d'heberger plusieurs sites sur le meme ordi, dans le meme espace physique, d'optimiser les ressources en partageant par exemple la memoire ...

tu devrais vraiment consulter la doc officielle apache2 sur le net, c'est la meilleure source d'informations !

Hors ligne