Mise en place et paramétrage d’un serveur web multi-sites Apache sur une Centos 7.

Il est important de noter que cette mise en place se base sur des bonne protique de mise en place que je définit moi même pour les différents serveur que je met en place. Elles ne définissent donc pas une référence mais permettent une homogénéité dans mes propres installations.

Je part du principe que chaque site du serveur sont représenté par un utilisateur système définit qui ne possédé pas la possibilité de se connecter en SSH au serveur.

Chaque utilisateur (Site donc) possédera donc un répertoire home qui sera accessible par lui même uniquement via FTP mais aussi par le service apache.

A vous de voir donc, si elles vous semble utile …..

Installation des éléments :

Nous allons installer plusieurs élément :

  • httpd : Le serveur web en question
  • php : pour le traitement des pages php

Il faut noter que l’accès FTP n’est pas traité ici, pour cella vous pouvez suivre le tutoriel en cliquant ICI (Sans créer d’utilisateur pour l’instant …).

Valeur d’exemple :

  • Répertoire de base de configuration : /etc/httpd
  • Domaine du serveur : mondomaine.fr
  • Nom du serveur : monserveur.mondomaine.local
  • Adresse IP fixe de mon serveur : 192.168.0.1
  • Adresse email des administrateurs du serveur : admins@mondomaine.fr

Pré-configuration du serveur :

La pré-configuration du serveur serveur va passer par 3 étapes :

  • La configuration du système
  • La configuration globale dans le fichier httpd.conf
  • La configuration détaillé de tout les fichiers contenue dans le répertoire conf.d
Configuration du système :

Il faut commencer par vérifier le nom de l’hote dans le fichier /etc/hosts de la machine :

il doit contenir :

Il faut egalement verifier le fichier /etc/hostname :

il doit contenir :

Création du répertoire home de l’utilisateur apache :

Afin de stocker les éléments tel que les log d’apache pour chaque site, et, éviter de surcharger le répertoire « var » du système, les logs des sites seront mit a disposition dans le répertoire « home » de l’utilisateur apache.

Pour cella : il suffit de lancer le script suivant, qui va créer l’utilisateur et attribuer les droits correcte au répertoire :

Ouverture des ports du firewall :

Si le firewall est activer sur le système, il sera nécessaire d’ouvrir les port (80) ou le service (http) a l’aide du tutoriel suivant : Gestion du Firewall Linux

Pré-configuration Globale :

Elle consiste a modifier le fichier httpd.conf disponible dans le répertoire conf de la racine :

Rechercher l’élément ServerAdmin et adapter le :

Rechercher l’élément ServerName et adapter le :

Une fois terminer, il ne reste qu’a configurer les nouveau hotes. celui ci fera dans un nouveau répertoire (différent du répertoire conf.d) affin de ne pas interférer lors prochaine mise a jours du système.

Pour cella, a la fin du fichier, ajouter les lignes suivantes :

et créer le répertoire qui accueillera les configurations spécifiques :

Ce répertoire contiendra alors l’ensemble des configurations détaillée.

Pré-configuration détaillé

Elle consiste a configurer l’ensemble des fichiers par défaut que peut contenir le répertoire /etc/httpd/conf.spec.d

Ce répertoire est analysé de sorte a charger l’ensemble des fichier qui se termine par « .conf » par ordre alphabétique.

Vue que les fichiers sont chargé par ordre alphabétique, le chargement est complètement aléatoire. Cella étant difficilement concevable, j’ai fait en sorte de mettre en place une norme de nommage pour les fichiers. Il seront donc nommer de la façon suivante :

 le fichier monfichier.conf deviendra XXX-monfichier.conf

avec « XXX » qui contiendra une valeur numérique de 000 a 999 afin de régler l’ordre de chargement.

Mise en place du site par défaut  :

Nous allons commencer par créer le site pas défaut, il s’agit du site qui va être appeler lors de l’appel de l’hôte directe : http://monserveur.mondomaine.local

pour cella, on va créer un utilisateur au nom du serveur :

et lui affecter un mot de passe :

Il sera également nécessaire d’empêcher l’utilisateur d’ouvrir une session en SSH, et editant le fichier /etc/passwd, en repérant l’utilisateur et en modifiant le shell de connection pour qu’il ressemble a la ligne suivante :

Il faut, par la suite, ajouter l’utilisateur lançant le serveur web « apache » au groupe de l’utilisateur afin qu’il puisse accéder au répertoire personnel de l’utilisateur. Cette action s’effectue en éditant le fichier /etc/group et repérer le groupe de l’utilisateur (Le groupe posséde le meme nom que l’utilisateur : « monserveur ») et ajoute l’utilisateur « apache » au groupe. la ligne doit ressemblé a :

Par la suite, il faut autorisé les utilisateurs du groupe a accéder au répertoire de l’utilisateur en écriture :

Il faudra ensuite créer la configuration du site par défaut dans /etc/httpd/conf.spec.d.

Par convention, nous allons le nommer « 000-monserveur.conf » et doit au minima contenir la configuration suivante (a adapter en fonction de votre systeme ) :

A noter que la ligne « ServerAlias » est commenté, vous pouvez la dé-commenter si vous souhaitez que le site soit accecible via http://monsserveur en plus de http://monserveur.mondomaine.local  

Il faut par la suite créer le répertoire de réception des logs :

Contrôler votre configuration en exécutant la commande suivante :

donne le résultat suivant :

Il ne reste qu’a activer et a démarrer le serveur :

et le site sera accessible a l’adresse http://monserveur.mondomaine.local

Création d’un site supplémentaire :

Par la suite, il suffit de créer un utilisateur que l’on nommera pour l’exemple « site1 ».

L’ensemble des commandes a exécuter sont les même que pour le site par défaut; elles ont donc été regroupé dans le script suivant (attention de bien les personnaliser) :

Il faut également ajouter apache dans le groupe de l’utilisateur en éditant /etc/group. La ligne soit ressemblé a :

et désactiver le log shell de l’utilisateur dans /etc/passwd pour que la ligne ressemble a :

et créer le fichier de configuration su site. Il faut creer le fichier XXX-site1.conf dans /etc/httpd/conf.spec.d. avec « XXX » le numero du site a charger (entre 001 et 999). Le fichier devrait contenir au minimum les informations suivantes :

Vous pouvez controler l’etat des hotes virtuel avec la commande :

et redémarrer le service apache :

Pour aller plus loin :

Configuration des droits d’accès au repertoire spécifique 

 

Catégories : Production

0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *