[RÉSOLU]Héberger 2 sites à la fois

Bonjour à tous,

je voulais savoir comment peut-on faire pour mettre en place 2 site à la fois avec apache?

Moi j’ai deja un egroupware qui est dans mon /var/www et la je souhaite mettre en place un open webmail.

Je sais qu’il y a une histoire d’alias ou de sous-domaine :confused:

Comment faire :question:

hello,

Tout est dans les vhosts, si j’ai bien compris c’est ça :

web.developpez.com/tutoriel/apache/vhost/
httpd.apache.org/docs/1.3/mod/mo … alias.html

Salut,

merci pour ces liens, il sont vraiment très bon :smiley:

Mais j’ai un petit message d’erreur qui vient me déranger :confused:

Voila, quand je lance apache il me dit:

debian:~# /etc/init.d/apache start Starting web server: apache[Thu Jun 15 14:09:13 2006] [warn] NameVirtualHost www.domaine2.pk:80 has no VirtualHosts failed debian:~#

Voila mon vhost.cong:

NameVirtualHost www.domaine2.pk <VirtualHost www.domaine2.pk> ServerAdmin root@debian DocumentRoot /home/www/domaine2/ ServerName www.domaine2.pk ErrorLog logs/www.domaine2.pk-error_log TransferLog logs/www.domaine2.pk-access_log </VirtualHost>
Le DNS doit être obligatoire ou on peut s’en passer :question:

bonjour,
tu la nommé le fichier vhost.cong ?
Est ce qu’il n’y a pas aussi quelque chose à faire dans /etc/hosts ?

non je ne pense pas.

[quote=“manpage de hosts”]Cette page de manuel décrit le format du fichier /etc/hosts. Il s’agit
d’un simple fichier texte qui associe les adresses IP avec les noms
d’hôtes, une ligne par adresse IP. Pour chaque hôte, une ligne unique
doit être présente, avec les informations suivantes :

Adresse_IP Nom_officiel [Alias…][/quote]

ce fichiers est utilisé uniquement en local pour des résolutions de nom locaux.
l’interet des vhosts c’est par exemple, tu as 2 noms DNS (disons monserveurweb2.com) mais 1 seul serveur web et que tu veux que ce serveur réponde pour les 2 noms DNS de manière différente.

en clair, le serveur affichera une page pour répondre à monserveurweb2.com, ces 2 pages se trouvant dans l’arborescence /var/www/monserveurweb1 et /var/www/monserveurweb2

Au début mon /etc/hosts:

quand je lance apache j’ai:

[quote]debian:~# /etc/init.d/apache start
Starting web server: apache[Thu Jun 15 15:37:19 2006] [error] Cannot resolve host name domaine2.pk — ignoring!
[Thu Jun 15 15:37:19 2006] [error] Cannot resolve host name domaine2.pk — ignoring!
[Thu Jun 15 15:37:19 2006] [error] Cannot resolve host name domaine2.pk — ignoring!
[Thu Jun 15 15:37:19 2006] [error] Cannot resolve host name domaine2.pk — ignoring!
failed[/quote]

Ensuite j’ai modifié mon /etc/host:

quand je lance apache j’ai:

[quote]debian:~# /etc/init.d/apache start
Starting web server: apache[Thu Jun 15 15:41:20 2006] [warn] NameVirtualHost domaine2.pk:80 has no VirtualHosts
failed[/quote]

:question:

tu ve dire quoi par renommer? vhost.conf?

A mon avis mon serveur DNS doit être obligatoirement actif non :question:

merci twistophe pour ces précisions …
bob786, je veux pas t’induire en erreur surtout hein …
point par point :
je veux dire vhost.cong, c’est une faute de frappe ? il faut lire vhost.conf je suppose …
je pense pas que ce que tu as mis dans /etc/hosts est valable, pour exemple, le mien :

[quote]127.0.0.1 localhost.localdomain localhost debian
192.168.1.10 windaube
192.168.1.100 mondomaine.com
192.168.1.100 monftp.com
[/quote]
192.168.1.100, c’est l’ip static configurée pour eth0 …
si j’avais un serveur web sur le poste windows, un windaube me renverait à la page d’accueil de ce serveur sur le poste winmuch…

je dirais que ça peut venir de :

  • ta configuration apache (dpkg-reconfigure apache), mauvais param…
  • tu dois updater l’IP, je me sert de ez-ipupdate (apt-get install ez-ipupdate) pour que ton nom de domaine lui corresponde …
    Jette peut-être un oeil sur les questions posées dans :
    forum.debian-fr.org/viewtopic.php?t=3499

ah ben oui, il doit être actif …

Si tu as créé un nouveau vhost tu ne doit pas mettre NameVirtualHost dedans sauf si tu désactives le vhost de base.

si c’est apache 2 rien de plus con, tu creer un fichier par virtual host dasn le repertoire apache2/sites-available et tu en fait un lien “symbolique” pour “/sites-enabled”, mais ton probleme n’est pas là…

tu edite ton apache2.conf et tu le modifei ainsi, pour que tout tes virtual hosts bénéficient du namevirtualhost sans dépendre de l’activation de l’un ou l’autre des VH. et surtout tu mets en commentaire cette satannée ligne “Document root”.

# Include the virtual host configurations:
NameVirtualHost 192.168.0.253:80
Include /etc/apache2/sites-enabled/[^.#]*
#DocumentRoot /var/www

Si tu veux utiliser ton apache pour heberger plusieurs sites de oms de domaines différents sur la même ip creer tes virtualhost comme suit:

<VirtualHost TONIP:80>
        ServerName TON.NOM.DE.DOMAINE.DU.VIRTUALHOST
        DocumentRoot /var/www/RACINE DU SITE
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/RACINE DU SITE/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow 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 /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature Off
</VirtualHost>

et c’est tout… par contre si tu veux consulter en local les multiples sites web je te conseille ceci, car par le nom de domaine (ca depend de ton routeur) ca ne marchera pas.

<VirtualHost 192.168.0.253:80>
        ServerName 192.168.0.253
        DocumentRoot /var/www/
        <Directory /var/www/>
                AllowOverride None
                Order allow,deny
                allow from 192.168.0
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature Off
</VirtualHost>

bien sûr, les sites, doivent êtres dans des répertoires sous celui-ci…
et hop ca roulez, tu clique sur le repetoire du site que tu veux voir et il s’affiche. (dailleurs rien ne t’empêche de faire les deux a la foi)

[quote=“megs”]… par contre si tu veux consulter en local les multiples sites web je te conseille ceci, car par le nom de domaine (ca depend de ton routeur) ca ne marchera pas.
[/quote]
sauf si tu spécifies dans /etc/hosts que l’ip local = tondomaine , je crois …

Salut,
une des façon les plus propres pour créer des vhost avec apache c’est de créer ton fichier de vhost pour le site que tu veux héberger !
Je m’explique. (chui loin d’être un pro mais j’ai lu des docs :slightly_smiling: )

tu crée ton dossier où tu vas mettre le site:

Tu crée ton fichier de vhost pour le premier site:

tu mets ça dedans :

[code]<VirtualHost * >
#Basic setup
ServerAdmin webmaster@domain1.tld
ServerName www.domain1.tld
DocumentRoot /var/www/domain1.tld/www

    <Directory /var/www/domain1.tld/www>
            Order Deny,Allow
            Allow from all
            Options Indexes
    </Directory>

[/code]

Tu fais un :

pour activer ton site

pour désactiver le vhost par défaut

et tu reload apache.

Et miracle…ça marche pas :frowning:

Normal, tu dois te connecter par ftp sur /var/www/domain1.tld et créer le dossier www.
Ou alors le créer directement en console avec le propriétaire et les droits pour ce site.

Et tu fais la même chose pour tous tes sites.
Normalement si tes dns fonctionnent et que tu as fais pointer tes domaines sur l’IP de la machine ça doit marcher.
IL y a pleins de méthodes qu’on peut essayer mais j’ai testé celle-ci et ça fonctionne bien et elle plus pratique car tu peux activer et désactiver tes sites avec une seule commande : a2ensite et a2dissite.

Et si tu veux en savoir un peu plus voilà : httpd.apache.org/docs/2.2/fr/vhosts/

Salut, merci a tous pour vos réponses, pour info jutilise apache

[quote]Si tu veux utiliser ton apache pour heberger plusieurs sites de oms de domaines différents sur la même ip creer tes virtualhost comme suit:
Code:

ServerName TON.NOM.DE.DOMAINE.DU.VIRTUALHOST DocumentRoot /var/www/RACINE DU SITE Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
    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 
    LogLevel warn 
    CustomLog /var/log/apache2/access.log combined 
    ServerSignature Off 

[/quote]

Alors avec cette configuration j’ai 2 bugs:

->J’ai fait exactement cela , au démarrage de apache (1) il me met un message d’erreur:

debian:~# /etc/init.d/apache start Starting web server: apache[Fri Jun 16 14:08:41 2006] [warn] VirtualHost 192.168.3.210:80 overlaps with VirtualHost 192.168.3.210:80, the first has precedence, perhaps you need a NameVirtualHost directive . debian:~# /etc/init.d/apache restart Restarting apache.

Par contre vous voyez bien qu’au “restart” il n’y a pas d’erreur…

-> lorsque je tape mon nom de domaine “www.domaine2.pk” dans le navigateur il maffiche bien mon 2è sites, mais comment je fait pour visualer mon premier site :question:

Salut,
ton erreur vient du fait que les deux namvirtualhost se chevauchent.
essai ceci :

POur le premier site :

[code]<VirtualHost *>
ServerName TON.1er NOM.DE.DOMAINE.DU.VIRTUALHOST
DocumentRoot /var/www/RACINE DU 1er SITE

Options FollowSymLinks
AllowOverride None

<Directory /var/www/RACINE DU 1er SITE/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

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

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature Off
[/code]

pour le second :

[code]
<VirtualHost *>
ServerName TON.2 ème NOM.DE.DOMAINE.DU.VIRTUALHOST
DocumentRoot /var/www/RACINE DU 2ème SITE

Options FollowSymLinks
AllowOverride None

<Directory /var/www/RACINE DU 2ème SITE/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

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

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature Off
[/code]

Salut,

Oui mais ce qui est bisar c’est que j’ai mis en place un seul vhost, mon premier site est dans le /var/www/ et ce n’est donc pas un vhost :question:

si il y a vraiment un chevauchement, comment le sauter :question:

Je ne te suis plus là…
Ta question est bien “héberger 2 sites à la fois”?

[quote]Je ne te suis plus là…
Ta question est bien “héberger 2 sites à la fois”?[/quote]

Oui biensur, le premier c’est le site qui est dans mon var/www/ et le 2è c’est le vhost justement.

Et la mon problème c’est que quand j’ai mis en place mon vhost j’arrive à me connecter dessus en tapant mon nom de domaine dans le navigateur mais quand je tape le nom du premier site (le site de base) et bien je retombe sur le site de mon vhost… :confused:

Donc comment faire pour aussi accéder à mon premier :question: il faut ke je mette un port différent après l’adresse IP :question:

Considère-les comme vhost tous les deux et ça va rouler tous seul.
tu as toute la configuration que tu veux pour que ça marche dans les différents post.

sa ve dire ke je doi rajouter mon site de base en tant que vhost dans mon vhost.conf :question:

yes
PS tu as quoi comme config ?