Serveur LAMP via les SCL (CentOS 7.3) 1/4 : Installation et configuration d’Apache

Les SCL (Software Collections List) permettent d’installer des versions plus récentes de certains logiciels comme Apache, php, MySQL, etc . Les SCL :

  • N’écrasent pas, ni ne modifient les fichiers systèmes
  • N’entrent pas en conflit avec les fichiers systèmes ou les logiciels déjà installés
  • Ont un nom uniquement et n’empêche pas les mises à jour du système

Installation des dépôts SCL

Les dépôts SCL n’étant pas installé par défaut lors de l’installation, nous allons les installer via la commande suivante :

1
# yum install centos-release-scl

Installation d’Apache à,partir des dépôts SCL

Il nous faut installer un serveur HTTP qui va s’occuper d’afficher nos différentes pages. Pour cela, je vous propose d’installer l’un des serveurs les plus utilisés et les plus connus : Apache. Nous installerons ici sa version 2.

1
# yum install httpd24

Activation de la version d’Apache installée via les dépôts SCL

La version php 7.0 installée via les SCL, n’est pas active par défaut cela afin de l’utiliser en parallèle de la version éventuellement installé depuis les dépôts de base. Pour indiquer au système d’utiliser la version installée via les SCL, nous devons taper la commande suivante :

1
# scl enable httpd24 bash

Au démarrage d’Apache, il est possible que celui-ci ne soit pas capable de déterminer un nom de domaine. Ce message sera affiché dans le terminal :

1
Could not reliably determine the server's fully qualified domaine name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

Avant de modifier le fichier de configuration d’Apache, nous allons le sauvegarder via la commande suivante :

1
# cp /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf{,.ori}

Pour corriger l’erreur, on édite le fichier de configuration Apache via la commande suivante :

1
# vi /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf

On dé-commente la ligne #ServerName:80 (ligne 95) et on modifie le nom du serveur :

1
ServerName www.example.com:80

Par :

1
ServerName localhost

Nous allons désactiver l’affichage de la version d’Apache dans les pages d’erreurs. Pour cela nous allons ajouter la ligne suivante à la fin du fichier :

1
ServerTokens Prod

Par défaut le port 80 n’est pas ouvert sur le firewall (firewalld). Nous allons donc l’ouvrir via la commande suivante :

1
# firewall-cmd --permanent --zone=public --add-service=http

Comme nous venons de créer une règle permanente, nous devons demander à « firewalld » de relire les règles pour la prendre en compte via la commande suivante :

1
# firewall-cmd --reload

Avant de démarrer Apapche, nous allons vérifier que les fichiers de configuration ne contiennent pas d’erreurs de syntaxe, via la commande suivante :

1
# apachectl configtest

On redémarre Apache en utilisant la commande suivante :

1
# systemctl start httpd24-httpd.service

Maintenant on peut vérifier que notre serveur fonctionne bien en entrant l’adresse suivante dans notre navigateur :

http://IP_DE_VOTRE_SERVEUR/

Vous devriez obtenir le résultat suivant :

https://www.lecoindesdocs.fr/images/2017/01/05/apache_it_works_centos7.png

Configuration d’Apache

Sur CentOS, le démon httpd n’est pas configuré pour se lancer au démarrage de la machine. Nous allons le configurer pour qu’il se lance à chaque démarrage via la commande suivante :

1
# systemctl enable httpd24-httpd.service

On créé le répertoire qui contiendra les fichiers du site web via la commande suivante :

1
# mkdir /opt/rh/httpd24/root/var/www/html/monsiteweb.fr

On créé le répertoire qui contiendra les fichiers de log du site web via la commande suivante :

1
# mkdir /opt/rh/httpd24/root/var/log/httpd/monsiteweb.fr

Nous allons créer un VirtualHost que nous appellerons « monsiteweb.fr.conf » via la commande suivante :

1
# vi /opt/rh/httpd24/root/etc/httpd/conf.d/monsiteweb.fr.conf

On y enregistre les lignes suivantes :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<VirtualHost *:80>
     ServerAdmin postsmaster@monsiteweb.fr
     ServerName www.monsiteweb.fr
     DocumentRoot /opt/rh/httpd24/root/var/www/html/monsiteweb.fr/
     <Directory /opt/rh/httpd24/root/var/www/html/monsiteweb.fr/>
          Options -Indexes +FollowSymLinks +MultiViews
          AllowOverride All
     </Directory>
     ErrorLog /var/log/httpd24/monsiteweb.fr/error.log
     CustomLog /var/log/httpd24/monsiteweb.fr/access.log combined
</VirtualHost>

On enregistre et ferme le fichier. On va créer un fichier index.html dans le répertoire /var/www/html/monsiteweb.fr via la commande suivante :

1
# echo " <h1>Nouvel espace web créé</h1> " > /opt/rh/httpd24/root/var/www/html/monsiteweb.fr/index.html

On vérifie que l’on n’a pas fait d’erreur lors de la configuration de notre virtualhost via la commande suivant :

1
# apachectl configtest

Si en retour on obtient un « Syntax OK », on recharge la configuration Apache via la commande suivante :

1
# systemctl reload httpd24-httpd.service

Afin de pouvoir accéder à votre site via l’url http://www.monsiteweb.fr, il faut ajouter une ligne au fichier hosts. Avant de modifier le fichier hosts, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/hosts /etc/hosts.ori

Pour cela on édite le fichier via la commande suivante :

1
# vi /etc/hosts

Puis ajouter la ligne suivante :

1
xxx.xxx.xxx.xxx www.monsiteweb.fr

On vérifie ensuite que le virtualhost fonctionnent en accédant à http://www.monsiteweb.fr et vous devriez voir Nouvel espace web créé