logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Configuration d'un serveur Apache pour gérer du multisite

Préambule et pré-requis

Ce bref tutorial a deux objectifs :

  1. Me servir de pense bête ! (et vous en faire profiter) :-P
  2. Expliquer comment mettre en œuvre la gestion multisite d'Apache

Tout est parti du besoin que j'ai eu de devoir tester des outils de “création de site” au sein de l'intranet de mon travail.
Il me fallait donc un serveur Apache et la possibilité de tester plusieurs sites, un par outil (Divers CMS, Divers Wiki… ). Le tout en local.
Or, un coup de Google m'a montré beaucoup des liens dans la langue de Shakespear, mais bien peu dans celle de Molière et en tous les cas rien qui m'ait beaucoup avancé.
Je vais donc, avec ce tutoriel, essayer de vous (me) faire gagner du temps

“hère we Go…”

Pré-requis

Un serveur Apache 2 (+/- PHP, MySQL suivant le type de site à réaliser)
Je ne reviens pas sur les modalités d'installation de ces outils, reportez vous à cette page du wiki Debian-Facile

Déclaration des sites éxistants

Dans Apache2, les sites disponibles (on parle de virtualhosts, ou vhost) sont déclarés à l'aide de fichier dans le répertoire : /etc/apache2/sites-avalaible/

Partons du principe que vous souhaitez mettre en ligne 2 sites que nous nommerons “site-1” et “site-2” (pourquoi faire compliquer ? 8-))

Apache vous livre lors de son installation dans ce même répertoire un fichier “default” qui va nous servir de base pour nos 2 sites
On va donc en faire une copie

# cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-1

Puis on refait la même chose pour le site-2

Contenu du fichier de vhost

Dans votre éditeur de texte favori (pas un traitement texte attention !) ouvrez le fichier site-1
Faisons un rapide tour d'horizons des sections qui nous intéressent:

<VirtualHost *:80>


        ServerAdmin webmaster@localhost  

        DocumentRoot /var/www  
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                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 ${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>
  • <VirtualHost *:80> : Signale le début de la section du vhost, en écoute pour toute les ip (*) sur le port :80
  • ServerAdmin webmaster@localhost : adresse mail où envoyer les messages d'erreur. Devra donc être remplacée par la vôtre
  • ServerName www.blablabla.xxx : Nom utilisé par le vhost, remplacez le par le nom de votre site (ici site-1)
  • ServerAlias domain.tld *.domain.tld :ServerAlias définie les autres sous domaines pour lesquels le serveur répondra.
  • DocumentRoot /var/www/htdocs : Répertoire de stockage du site (sa racine). Vous devrez donc modifier cette directive pour qu'elle pointe sur votre racine (ex: /home/www/site-1 )
  • DirectoryIndex index.php : En l'absence de page spécifique demandée par l'internaute, c'est cette page que sera affichée, c'est donc en quelque sorte votre page d'accueil. A modifier donc si votre page d'accueil porte un nom différent (default.htm, acceuil.php etc…)
Voila pour les directives qui nous préoccupent.
Comme vous le constatez vous même, il en reste d'autre que je n'ai pas détaillées, mais qui sont importantes notamment pour la sécurité. Je vous invite donc à consulter cette page pour savoir plus : http://doc.ubuntu-fr.org/apache2

Fichier vhost adapté

Voyons voir a quoi pourrait ressembler notre fichier une fois adapté à nos besoins:

<VirtualHost *:80>
        ServerAdmin MonMail@gmail.com
        ServerName      www.site-1.fr
        ServerAlias    site-1.fr *.site-1.fr

        DocumentRoot /home/www/site-1   
                DirectoryIndex  index.php
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/www/site-1>
                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 /home/www/apache_log/error_site-1.log

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

        CustomLog /home/www/apache_log/access_site-1.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>

Renouveler les opérations pour créer un fichier de vhost pour site-2

Activation des sites

Une fois les fichiers de vhost créés, il reste a les activer pour qu'Apache2 les prennent en compte.
Ce mecanisme permet d'avoir tout les fichiers de vhosts que l'on veut et de n'activer que ceux nécessaires.

deux méthodes possible: * Méthode Classique: Création d'un lien symbolique dans /etc/apache2/sites-enable pointant vers/etc/apache2/sites-avalaible/site-1

#ln -s /etc/apache2/sites-avalaible/site-1 /etc/apache2/sites-enable
doc/reseau/apache2/multisite.1300788329.txt.gz · Dernière modification: 22/03/2011 11:05 par freddec

Pied de page des forums

Propulsé par FluxBB