Serveur d'impression

Hébergement de plusieurs sites Web avec Apache2 – Bien choisir son serveur d impression

Le 5 octobre 2019 - 7 minutes de lecture

Hébergement de plusieurs sites Web avec Apache2

Publié par Steve le Jeu 6 juil 2006 à 22:03

L'une des questions les plus courantes sur Apache2 que j'ai rencontrées sur les listes de diffusion Debian provient des utilisateurs qui se demandent comment héberger plusieurs sites Web avec un seul serveur. C’est très simple, en particulier avec les outils supplémentaires fournis par le paquet Debian.

Nous avons déjà parlé de certains outils inclus dans le package Apache2, mais nous ne l’avions pas fait, c’était de montrer qu’ils étaient utilisés de bout en bout.

Il existe de nombreuses façons de configurer Apache pour héberger plusieurs sites, du plus simple au plus complexe. Ici, nous allons seulement couvrir les bases avec l'utilisation de la directive NameVirtualHost. L’avantage de cette approche est qu’il n’est pas nécessaire de câbler d’adresses IP, et cela fonctionneratm. La seule chose dont vous avez besoin est que vos noms de domaine se résolvent en adresse IP de votre serveur Web.

Par exemple, si vous utilisez un serveur Apache sur l'adresse IP 192.168.1.1 et vous souhaitez héberger les trois sites exemple.com, example.net, et example.org vous devez vous assurer que ces noms sont résolus en adresse IP de votre serveur.

(Cela peut signifier que vous avez besoin exemple.com et www.example.com pour résoudre à la même adresse. Cependant, c'est un choix que vous devrez faire vous-même).

Étant donné que nous hébergerons plusieurs sites Web sur le même hôte, il est logique de définir très clairement l'emplacement des fichiers de chaque site sur le système de fichiers. Je vous suggère de gérer cela pour créer un répertoire racine de document, un répertoire cgi-bin et un répertoire de fichier journal complètement distincts pour chaque hôte. Vous pouvez les placer sous le préfixe Debian standard de / var / www ou vous pouvez utiliser une racine complètement différente – j'utilise / home / www.

Si vous ne l'avez pas déjà fait, créez les répertoires contenant votre contenu, etc., comme suit:



root @ irony: ~ # mkdir / home / www

root @ irony: ~ # mkdir /home/www/www.example.com
root @ irony: ~ # mkdir /home/www/www.example.com/htdocs
root @ irony: ~ # mkdir /home/www/www.example.com/cgi-bin
root @ irony: ~ # mkdir /home/www/www.example.com/logs

root @ irony: ~ # mkdir /home/www/www.example.net
root @ irony: ~ # mkdir /home/www/www.example.net/htdocs
root @ irony: ~ # mkdir /home/www/www.example.net/logs
root @ irony: ~ # mkdir /home/www/www.example.net/cgi-bin

root @ irony: ~ # mkdir /home/www/www.example.org
root @ irony: ~ # mkdir /home/www/www.example.org/htdocs
root @ irony: ~ # mkdir /home/www/www.example.org/logs
root @ irony: ~ # mkdir /home/www/www.example.org/cgi-bin

Ici, nous avons configuré trois arborescences de répertoires différentes, une pour chaque site. Si vous souhaitez avoir un contenu identique, il peut être judicieux de n'en créer qu'un, puis d'utiliser des liens symboliques.

La prochaine étape consiste à activer les hôtes virtuels dans votre configuration Apache. Pour ce faire, le plus simple est de créer un fichier appelé /etc/apache2/conf.d/virtual.conf et y inclure le contenu suivant:



#
# Nous utilisons plusieurs hôtes virtuels.
#
NameVirtualHost *

(Quand Apache démarre, il lit le contenu de tous les fichiers inclus dans /etc/apache2/conf.det les fichiers que vous créez ici ne seront pas mis à la corbeille lors de la mise à jour du paquet.)

Une fois cela fait, nous pouvons créer les fichiers de configuration de l'hôte individuels. La configuration d’Apache2 que vous trouverez sur Debian GNU / Linux comprend deux répertoires pour la localisation des fichiers de configuration de votre site:

/ etc / apache2 / sites-available

Cela contient les fichiers de configuration des sites disponibles mais pas nécessairement activés.

/ etc / apache2 / sites-enabled

Ce répertoire contient les fichiers de site activés.

Comme avec le conf.d répertoire chaque fichier de configuration dans le activé pour les sites Le répertoire est chargé au démarrage du serveur – pendant que les fichiers sites disponibles sont complètement ignorés.

Vous devez créer vos fichiers de configuration d’hôte dans / etc / apache2 / sites-available, puis créez un lien symbolique vers ces fichiers dans le activé pour les sites répertoire – cela entraînera leur chargement / lecture.

Plutôt que de jouer avec les liens symboliques, le paquet Debian inclut deux commandes utilitaires a2ensite et a2dissite qui fera le travail nécessaire pour vous, comme nous le montrerons bientôt.

Commençons par un exemple réel. Créer /etc/apache2/sites-available/www.example.com avec le contenu suivant:



#
# Example.com (/etc/apache2/sites-available/www.example.com)
#

        ServerAdmin [email protected]
        NomServeur www.exemple.com
        ServerAlias ​​example.com

        # Index + racine du répertoire.
        DirectoryIndex index.html
        DocumentRoot /home/www/www.example.com/htdocs/

        # Répertoire CGI
        ScriptAlias ​​/ cgi-bin / /home/www/www.example.com/cgi-bin/
        
                Options + ExecCGI
        


        # Fichiers journaux
        ErrorLog /home/www/www.example.com/logs/error.log
        CustomLog /home/www/www.example.com/logs/access.log combinés

Ensuite, créez le fichier www.example.net:



#
# Example.net (/etc/apache2/sites-available/www.example.net)
#

        ServerAdmin [email protected]
        NomServeur www.example.net
        ServerAlias ​​example.net

        # Index + racine du répertoire.
        DirectoryIndex index.html
        DocumentRoot /home/www/www.example.net/htdocs/

        # Répertoire CGI
        ScriptAlias ​​/ cgi-bin / /home/www/www.example.net/cgi-bin/
        
                Options + ExecCGI
        


        # Fichiers journaux
        ErrorLog /home/www/www.example.net/logs/error.log
        CustomLog /home/www/www.example.net/logs/access.log combinés

Enfin créer le fichier www.example.org:



#
# Example.org (/etc/apache2/sites-available/www.example.org)
#

        ServerAdmin [email protected]
        Nom du serveur www.example.org
        ServerAlias ​​example.org

        # Index + racine du répertoire.
        DirectoryIndex index.html
        DocumentRoot /home/www/www.example.org/htdocs/

        # Répertoire CGI
        ScriptAlias ​​/ cgi-bin / /home/www/www.example.org/cgi-bin/
        
                Options + ExecCGI
        


        # Fichiers journaux
        ErrorLog /home/www/www.example.org/logs/error.log
        CustomLog /home/www/www.example.org/logs/access.log combinés

Maintenant nous avons:

  • Trois répertoires qui peuvent être utilisés pour contenir notre contenu.
  • Trois répertoires pouvant être utilisés pour contenir nos fichiers de log.
  • Trois répertoires pouvant contenir nos scripts CGI dynamiques.
  • Trois fichiers de configuration ignorés par Apache.

Pour activer les sites, exécutez simplement:



root @ irony: ~ # a2ensite www.example.com
Site www.example.com installé; lancez /etc/init.d/apache2 reload pour l'activer.

root @ irony: ~ # a2ensite www.example.net
Site www.example.net installé; lancez /etc/init.d/apache2 reload pour l'activer.

root @ irony: ~ # a2ensite www.example.org
Site www.example.org installé; lancez /etc/init.d/apache2 reload pour l'activer.

Cela va maintenant créer les liens symboliques afin que /etc/apache2/sites-enabled/www.example.org, etc, existe maintenant et sera lu.

Une fois notre configuration terminée, nous pouvons redémarrer ou recharger le serveur Web comme indiqué ci-dessus:



root @ irony: ~ # /etc/init.d/apache2 reload
Rechargement de la configuration du serveur Web ... terminé.
racine @ ironie: ~ # 

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.