Linux et le virtualhost

Résolu
Bonjour,
j'ai un problème avec l'utilisation de mon serveur linux (centos 5.3)
je souhaite héberger plusieurs sites internet sur le même serveur qui possède une ip privé fixe et ip publique fixe.
j'ai regardé les posts sur ce forum mais rien ne m'a aidé à régler mon problème
j'ai regardé du coté de mon fournisseur de nom de domaine : j'ai bien faire une redirection vers mon ip publique pour tous mes sites ....

voici mon fichier /etc/httpd/conf/httpd.conf

les chemins sont bons /var/www/html...

Listen 80
NameVirtualHost *:80

#site 1
<VirtualHost *:80>
DocumentRoot /var/www/html/site1
ServerName site1.net
ServerAlias www.site1.net
LogLevel warn
ServerSignature On
<Directory /var/www/html/site1>
Options -Indexes FollowSymLinks
</Directory>
ErrorLog /var/log/sitesite1
TransferLog /var/log/www.site1.net-access_log
</VirtualHost>

#site 2
<VirtualHost *:80>
DocumentRoot /var/www/html/site2
ServerName site2.fr
ServerAdmin info@site2.fr
ServerAlias www.site2.fr
LogLevel warn
ServerSignature On
<Directory /var/www/html/site2>
Options -Indexes FollowSymLinks
</Directory>
ErrorLog /var/log/sitesite2
TransferLog /var/log/www.site2.fr-access_log
</VirtualHost>

Ce fichier marche que pour le site1 mais pas pour le site 2 ? on dirait que le deuxième n'est pas pris en compte
Pouvez vous m'aider ? Merci
cordialement

21 réponses

Résumé de la discussion

Problème rencontré lors de l'hébergement de plusieurs sites sur un même serveur Linux (CentOS 5.3) avec une IP publique fixe et une IP privée, où le premier VirtualHost fonctionne mais pas le second. Des configurations VirtualHost séparées et un NameVirtualHost existant semblent présentes, mais des messages d'erreur sur les overlaps et des résolutions DNS (NXDOMAIN pour site2.fr) compliquent la mise en œuvre. Plusieurs réponses préconisent de vérifier NameVirtualHost et d’aligner ServerName et ServerAlias pour chaque hôte, tout en testant la résolution DNS externe pour écarter un problème de nom. En cas de test, le non-www peut fonctionner tandis que le www pose problème; certains évoquent une piste DNS chez le fournisseur ou le service bind sur Linux.

Bobot (l’IA à votre service)
  1. bonjour
    tous mes voeux à tout le monde
    que cette année vous apporte ce que 2009 aurait oublié

    je remonte ce poste car j'ai toujours mon problème

    cordialement
    1. bonjour lami20j
      il n'y a rien il est vide ?

      # Do not remove the following line, or various programs
      # that require network functionality will fail.
      127.0.0.1 localhost.localdomain localhost
      ::1 localhost6.localdomain6 localhost6

      cordialement
      1. Modérateur
        Salut,

        Essaie comme ça.
        Listen 80
        NameVirtualHost ip.de.ta.machine
        
        #site 1
        <VirtualHost site1.net>
          DocumentRoot /var/www/html/site1
          ServerName site1.net
          ServerAlias www.site1.net
          LogLevel warn
          ServerSignature On
          <Directory /var/www/html/site1>
            Options -Indexes FollowSymLinks
          </Directory>
          ErrorLog /var/log/sitesite1
          TransferLog /var/log/www.site1.net-access_log
        </VirtualHost>
        
        #site 2
        <VirtualHost site2.fr>
          DocumentRoot /var/www/html/site2
          ServerName site2.fr
          ServerAdmin info@site2.fr
          ServerAlias www.site2.fr
          LogLevel warn
          ServerSignature On
          <Directory /var/www/html/site2>
            Options -Indexes FollowSymLinks
          </Directory>
          ErrorLog /var/log/sitesite2
          TransferLog /var/log/www.site2.fr-access_log
        </VirtualHost> 


        Dans ton /etc/hosts ajoute les lignes

        ip.de.ta.machine	site1.net
        ip.de.ta.machine	site2.fr

        Relance ton serveur apache et fait un test.

        1. bonsoir
          même avec mon host de modifié, mon problème persiste encore
          par contre j'ai fait le test avec une adresse qui ne possède pas de www. le genre de toto.dyndns.org et la ça fonctionne ???? ça devient de plus en plus étrange ?
          cordialement
          1. bonjour
            quelqu'un utilise t il ce vhost sur une autre version linux pour laquelle ça fonctione parfaitement ?
            cordialement
            1. bonjour
              n'y aurait il pas un problème avec le binder (DNS linux ?)?
              cordialement
              1. bonjour
                j'ai une idée à apporter à ce sujet dont je n'ai toujours aucune solution
                j'ai une des adresses sans www. et le virtual host fonctionne ... pourquoi ???? ça c'est la question ... toutes mes adresse www.domaine1.com et www.domaine2.fr et www.domaine3.net.... se redirige que sur la première adresse qui se trouve dans le fichier httpd.conf hors le domaine4.net fonctionne parfaitement ?? auriez vous une idée sur ce problème ....
                cordialement
                1. Modérateur
                  Salut,

                  Affiche le contenu de ton fichier de configuration.
                  Affiche aussi le contenu du fichier /etc/hosts
              2. bonjour lami20j,
                voici le fichier host : pour le fichier configuration du httpd.conf tu le trouveras plus haut :

                XXX.XXX.XXX.XXX site1.net
                XXX.XXX.XXX.XXX site2.fr
                127.0.0.1 site1.net
                127.0.0.1 site2.fr

                le XXX.XXX.XXX.XXX correspond à l'adresse ip du serveur sur lequel est hébergé ces sites.
                cordialement
                1. Modérateur
                  Re,

                  As-tu mis dans le fichiers de configuration les vhost comme je t'ai donné plus haut?
                  Je n'ai pas trop de temps puisque je suis au boulot, mais pour voir pourquoi ça ne va pas il faut que tu fasses des tests un par un et entre les test tu regardes les logs pour voir ce qui ce passe.

                  Je te conseille de mettre d'abord un seul vhost (donc le reste en commentaire, y compris dans /etc/hosts) et de faire les tests progressivement pour pouvoir cibler.
                2. quand je parle XXX.XXX.XXX.XXX c'est l'adresse privé du serveur et non l'adresse publique de la connexion intenet : est ce bien ça qu'il faut mettre ?
              3. bonjour,

                en mettant tout comme tu me l'as indiqué sur tes réponses voici le message d'erreur que j'obtiens par le serveur httpd au redémarrage :

                Démarrage de httpd :[Mon Mar 22 13:33:01 2010] [warn] VirtualHost site1.net:0 overlaps with VirtualHost site1.net:0, the first has precedence, perhaps you need a NameVirtualHost directive
                [Mon Mar 22 13:33:01 2010] [warn] VirtualHost site2.fr:0 overlaps with VirtualHost site2.net:0, the first has precedence, perhaps you need a NameVirtualHost directive
                [ OK ]

                et maintenant tous les sites se dirigent sur le site site3 qui n'a pas de www.
                Merci de ton aide précieuse
                cordialement
                1. Modérateur
                  Re,

                  Affiche ton fichier de configuration complet.
              4. ServerTokens OS
                ServerRoot "/etc/httpd"
                PidFile "/var/run/httpd.pid"
                TimeOut 300
                KeepAlive on
                MaxKeepAliveRequests 100
                KeepAliveTimeout 15
                <IfModule prefork.c>
                StartServers 8
                MinSpareServers 5
                MaxSpareServers 20
                MaxClients 150
                MaxRequestsPerChild 100
                </IfModule>
                <IfModule worker.c>
                StartServers 2
                MaxClients 150
                MinSpareThreads 25
                MaxSpareThreads 75
                ThreadsPerChild 25
                MaxRequestsPerChild 0
                </IfModule>
                Listen 80
                LoadModule auth_basic_module modules/mod_auth_basic.so
                LoadModule auth_digest_module modules/mod_auth_digest.so
                LoadModule authn_file_module modules/mod_authn_file.so
                LoadModule authn_alias_module modules/mod_authn_alias.so
                LoadModule authn_anon_module modules/mod_authn_anon.so
                LoadModule authn_dbm_module modules/mod_authn_dbm.so
                LoadModule authn_default_module modules/mod_authn_default.so
                LoadModule authz_host_module modules/mod_authz_host.so
                LoadModule authz_user_module modules/mod_authz_user.so
                LoadModule authz_owner_module modules/mod_authz_owner.so
                LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
                LoadModule authz_dbm_module modules/mod_authz_dbm.so
                LoadModule authz_default_module modules/mod_authz_default.so
                LoadModule ldap_module modules/mod_ldap.so
                LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
                LoadModule include_module modules/mod_include.so
                LoadModule log_config_module modules/mod_log_config.so
                LoadModule logio_module modules/mod_logio.so
                LoadModule env_module modules/mod_env.so
                LoadModule ext_filter_module modules/mod_ext_filter.so
                LoadModule mime_magic_module modules/mod_mime_magic.so
                LoadModule expires_module modules/mod_expires.so
                LoadModule deflate_module modules/mod_deflate.so
                LoadModule headers_module modules/mod_headers.so
                LoadModule usertrack_module modules/mod_usertrack.so
                LoadModule setenvif_module modules/mod_setenvif.so
                LoadModule mime_module modules/mod_mime.so
                LoadModule dav_module modules/mod_dav.so
                LoadModule status_module modules/mod_status.so
                LoadModule autoindex_module modules/mod_autoindex.so
                LoadModule info_module modules/mod_info.so
                LoadModule dav_fs_module modules/mod_dav_fs.so
                LoadModule vhost_alias_module modules/mod_vhost_alias.so
                LoadModule negotiation_module modules/mod_negotiation.so
                LoadModule dir_module modules/mod_dir.so
                LoadModule actions_module modules/mod_actions.so
                LoadModule speling_module modules/mod_speling.so
                LoadModule userdir_module modules/mod_userdir.so
                LoadModule alias_module modules/mod_alias.so
                LoadModule rewrite_module modules/mod_rewrite.so
                LoadModule proxy_module modules/mod_proxy.so
                LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
                LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
                LoadModule proxy_http_module modules/mod_proxy_http.so
                LoadModule proxy_connect_module modules/mod_proxy_connect.so
                LoadModule cache_module modules/mod_cache.so
                LoadModule suexec_module modules/mod_suexec.so
                LoadModule disk_cache_module modules/mod_disk_cache.so
                LoadModule file_cache_module modules/mod_file_cache.so
                LoadModule mem_cache_module modules/mod_mem_cache.so
                LoadModule cgi_module modules/mod_cgi.so
                LoadModule version_module modules/mod_version.so
                Include conf.d/*.conf
                User apache
                Group apache
                ServerAdmin root@localhost
                ServerName dav1
                UseCanonicalName on
                DocumentRoot "/var/www/html/"
                <IfModule mod_userdir.c>
                UserDir "disable"
                </IfModule>
                DirectoryIndex
                AccessFileName .htaccess
                <Files ~ "^\.ht">
                Order allow,deny
                Deny from all
                </Files>
                TypesConfig "/etc/mime.types"
                DefaultType text/plain
                <IfModule mod_mime_magic.c>
                MIMEMagicFile conf/magic
                </IfModule>
                HostNameLookups double
                ErrorLog "/var/log/httpd/error_log"
                LogLevel warn
                LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
                LogFormat "%h %l %u %t \"%r\" %>s %b" common
                LogFormat "%{Referer}i -> %U" referer
                LogFormat "%{User-agent}i" agent
                CustomLog logs/access_log combined
                ServerSignature on
                Alias /icons/ "/var/www/icons/"
                <IfModule mod_dav_fs.c>
                DAVLockDB /var/lib/dav/lockdb
                </IfModule>
                ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
                <IfModule mod_cgid.c>
                </IfModule>
                IndexOptions FancyIndexing VersionSort NameWidth=*
                AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
                AddIconByType (TXT,/icons/text.gif) text/*
                AddIconByType (IMG,/icons/image2.gif) image/*
                AddIconByType (SND,/icons/sound2.gif) audio/*
                AddIconByType (VID,/icons/movie.gif) video/*
                AddIcon /icons/binary.gif .bin .exe
                AddIcon /icons/binhex.gif .hqx
                AddIcon /icons/tar.gif .tar
                AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
                AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
                AddIcon /icons/a.gif .ps .ai .eps
                AddIcon /icons/layout.gif .html .shtml .htm .pdf
                AddIcon /icons/text.gif .txt
                AddIcon /icons/c.gif .c
                AddIcon /icons/p.gif .pl .py
                AddIcon /icons/f.gif .for
                AddIcon /icons/dvi.gif .dvi
                AddIcon /icons/uuencoded.gif .uu
                AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
                AddIcon /icons/tex.gif .tex
                AddIcon /icons/bomb.gif core
                AddIcon /icons/back.gif ..
                AddIcon /icons/hand.right.gif README
                AddIcon /icons/folder.gif ^^DIRECTORY^^
                AddIcon /icons/blank.gif ^^BLANKICON^^
                DefaultIcon /icons/unknown.gif
                ReadmeName README.html
                HeaderName HEADER.html
                AddLanguage ca .ca
                AddLanguage cs .cz .cs
                AddLanguage da .dk
                AddLanguage de .de
                AddLanguage el .el
                AddLanguage en .en
                AddLanguage eo .eo
                AddLanguage es .es
                AddLanguage et .et
                AddLanguage fr .fr
                AddLanguage he .he
                AddLanguage hr .hr
                AddLanguage it .it
                AddLanguage ja .ja
                AddLanguage ko .ko
                AddLanguage ltz .ltz
                AddLanguage nl .nl
                AddLanguage nn .nn
                AddLanguage no .no
                AddLanguage pl .po
                AddLanguage pt .pt
                AddLanguage pt-BR .pt-br
                AddLanguage ru .ru
                AddLanguage sv .sv
                AddLanguage zh-CN .zh-cn
                AddLanguage zh-TW .zh-tw
                LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
                ForceLanguagePriority Prefer Fallback
                AddDefaultCharset UTF-8
                AddType application/x-compress .Z
                AddType application/x-gzip .gz .tgz
                AddHandler type-map var
                AddType text/html .shtml
                AddOutputFilter INCLUDES .shtml
                Alias /error/ "/var/www/error/"
                <IfModule mod_negotiation.c>
                <IfModule mod_include.c>
                <Directory "/var/www/error">
                AllowOverride None
                Options IncludesNoExec
                AddOutputFilter Includes html
                AddHandler type-map var
                Order allow,deny
                Allow from all
                LanguagePriority en es de fr
                ForceLanguagePriority Prefer Fallback
                </Directory>
                </IfModule>
                </IfModule>
                BrowserMatch "Mozilla/2" nokeepalive
                BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
                BrowserMatch "RealPlayer 4\.0" force-response-1.0
                BrowserMatch "Java/1\.0" force-response-1.0
                BrowserMatch "JDK/1\.0" force-response-1.0
                BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
                BrowserMatch "MS FrontPage" redirect-carefully
                BrowserMatch "^WebDrive" redirect-carefully
                BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
                BrowserMatch "^gnome-vfs/1.0" redirect-carefully
                BrowserMatch "^XML Spy" redirect-carefully
                BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
                NameVirtualHost XXX.XXX.XXX.XXX
                LockFile "/var/lock/httpd.lock"
                CoreDumpDirectory "/etc/httpd"
                <VirtualHost site2.fr>
                DocumentRoot /var/www/html/site2
                <Directory "/var/www/html/site2">
                allow from all
                Options +Indexes
                </Directory>
                ServerAlias www.site2.fr
                DirectoryIndex index.php index.html index.htm index.shtml
                LogLevel debug
                HostNameLookups on
                ServerName site2.fr
                UseCanonicalName off
                ErrorLog /var/log/www.site2-access_log
                </VirtualHost>
                <VirtualHost site1.net>
                DocumentRoot /var/www/html/site1
                <Directory "/var/www/html/site1">
                allow from all
                Options +Indexes
                </Directory>
                ServerName dav2
                ServerAlias www.site1.net
                UseCanonicalName off
                HostNameLookups on
                ServerName site1.net
                ErrorLog /var/log/www.site1.net-access_log
                LogLevel emerg
                </VirtualHost>
                <VirtualHost XXX.XXX.XXX.XXX>
                DocumentRoot /var/www/html/site3
                ServerName xxxxx.xxxxxxx.ws
                <Directory "/var/www/html/site3">
                allow from all
                Options +Indexes
                </Directory>
                </VirtualHost>
                <Directory "/">
                Options FollowSymLinks
                AllowOverride None
                </Directory>
                <Directory "/var/www/html">
                Options Indexes Includes FollowSymLinks
                AllowOverride None
                Allow from all
                Order allow,deny
                </Directory>
                <Directory "/var/www/icons">
                Options Indexes MultiViews
                AllowOverride None
                Allow from all
                Order allow,deny
                </Directory>
                <Directory "/var/www/cgi-bin">
                Options ExecCGI
                AllowOverride None
                Allow from all
                Order allow,deny
                </Directory>
                1. bonjour lami20j
                  je t'ai fait une version de mon fichier sans les lignes commentaires
                  Merci de ton aide
                  cordialement
                  1. Modérateur
                    Re,

                    Je viens d'entrer à la maison. Ca va prendre un peu de temps pour que je regarde.
                    Le problème est qu'on ne sait plus où on est.
                    Petite question que j'aimerai bien voir comme réponse : Oui.
                    As-tu le fichier original de ton serveur apache?
                    1. bonjour
                      je n'ai pas le fichier d'origine mais je peux t'en récupérer sur un autre serveur que je n'ai pas touché mais qui est d'origine ...
                      si ça peut t'aider je n'ai modifié que les variables : listen : ServerName : HostNameLookups : NameVirtualHost : VirtualHost
                      et c'est tout ....
                      cordialement
                      1. Modérateur
                        Re,

                        T'as modifié bien plus que ça.
                        En plus tu ne m'as pas donné le fichier complet. Par exemple les directives Listen, User, Group, Listen je ne la vois pas.

                        Donc affiche ton fichier complet.

                        1. bonsoir lami20j
                          je t'assure que tu as le fichier complet .. il ne manque aucune ligne je viens de vérifier .... tu es en train de me dire qu'il manquerait des commandes ....
                          je vais te trouver un fichier d'origine sans aucune modification
                          cordialement
                          1. Modérateur
                            Regarde ton 1er message.
                            Tu avais un Listen 80 qui n'est plus.

                            Je vais t'envoyer un MP.
                          2. si si je le vois dans les deux messages regarde entre

                            </IfModule>
                            Listen 80
                            LoadModule auth_basic_module modules/mod_auth_basic.so
                          3. je viens de t''envoyer un message privé pour te donner le fichier vierge car il ne passe pas avec tous les commentaires ....
                        2. Modérateur
                          Salut,

                          Je n'ai rien reçu par MP.
                          Je ne vais pas avoir le temps de regarder jusqu'à ce soir.
                          Voici ce que je te propose.

                          On va partir d'un fichier original de http et on va faire les vhost un par un, pour tester.

                          j'ai bien faire une redirection vers mon ip publique pour tous mes sites ....
                          Je ne sais pas ce que tu as configuré pour les dns mais tes noms de domaines n'existent pas sur net

                          lami20j@debian:~$ nslookup site2.fr  
                          Server:  212.27.53.252 
                          Address: 212.27.53.252#53 
                          
                          ** server can't find site2.fr: NXDOMAIN 
                          
                          


                          Tu aurais du avoir quelque chose comme ça

                          lami20j@debian:~$ nslookup commentcamarche.net 
                          Server:  212.27.53.252 
                          Address: 212.27.53.252#53 
                          
                          Non-authoritative answer: 
                          Name: commentcamarche.net 
                          Address: 194.169.240.247 
                          


                          GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
                          106485010510997108
                          1. bonjour
                            mon nslookup fonctionne parfaitement depuis un autre poste
                            je vais suivre ton idée de monter un par un les vhost
                            je te tiens au courant
                            cordialement
                            1. Modérateur
                              Re,

                              mon nslookup fonctionne parfaitement depuis un autre poste
                              Ce n'est que toi qui le sait, puisque pour moi depuis l'extérieur ne marche pas, à moins que le nom n'est pas site2.fr et pour certaines raisons tu ne le dit pas encore, il n'y a pas des raisons puisque le but d'un site c'est de le rendre public, non?

                              Pour les testes :
                              - en premier temps tu démarres ton apache avec le fichier d'origine, donc ton site principal devrait fonctionner.
                              - ensuite tu crées ton virtualhost (au début avec la configuration minimale - voir la doc apache) - il faut s'assurer que /etc/hosts contient la configuration concernant ton virtualhost, tu redémarres ton apache et tu essaies une connexion. Quelque soit le résultat ok ou pas, tu regardes tes logs (tu peux utiliser la commande tail -f pour les voir en direct).

                              Ici on va s'arrêter et tu diras ce qui va et ce qui ne va pas.
                              Si tout ira bien, tu pourras commencer le test avec le 2ème virtual host.

                              Mets toutes les configurations pour vhost à la fin de ton fichier puisque dans le fichier que tu m'as donné c'était mélangé.
                              N'oublie pas l'indentation dans ton fichier de config pour mieux se repérer.
                              Pour garder le fichier d'origine presque intact tu peux créer un fichier vhost.conf et utiliser Include dans le fichier httpd.conf pour l'inclure.

                              Bon, je dois quitter puisque j'ai du boulot.
                            2. bonsoir
                              j'ai refait la démarche en repartant du fichier vierge ... avec tes indications /// mais malheusement ça ne marche pas ;... j'ai tenté de passer par le configurateur webmin .... sur les conseils d'un collègue ... mais c'est encore pire ... la conclusion que je peux en tirer c'est que dès que tu as deux sites avec le www. (world wild web) ça ne fonctionne pas... par contre toutes les autres redirections type noip.com dyndns.ws etc fonctionne a merveille ...... mais pourquoi c'est un grand mystère ?
                              aurais tu une autre idée ? à quoi sert le bind pour la résolution interne dans linux ? autre que le dns ? est ce une requete qui viendrait de mon fournisseur de nom de domaine qui pourrait poser problème ?
                              merci de ton aide précieuse
                              cordialement
                          2. bonjour
                            je ne t'ai pas donné les noms des sites car j'ai déjà vu dans d'autres postes que les admin de ccm refusent la publicité de site ;.. c'est juste une question d'éthique soit disant ....
                            je vais tester ta solution et te tiens au courant
                            je suis étonné que tu n'ai pas reçu mon mp ?????? les messages trop long ne passent pas ?
                            merci de ton aide précieuse
                            cordialement
                            1. bonjour

                              je viens de me repencher sur le problème et c'est identique qu'au départ : j'ai fait le test de mettre une après l'autre les sites mais le résultat est le même ....

                              par contre j'ai plusieurs questions :

                              au niveau du virtual host faut il mettre l'adresse privé de mon serveur : 192..... ou l'adresse publique de ma connexion adsl ?
                              j'ai pour ma part une box pour laquelle j'ai désactivé son fire wall pour y a ajouter un routeur de marque linksys ? le problème peut il venir de la ? la redirection du port 80 dans le lynksys est bien redirigé sur l'adresse ip du serveur.

                              Merci de votre aide .....
                              • 1
                              • 2