06 - Apache avance

Introduction

Une configuration très commune de Apache consiste à installer un serveur LAMP:

  • Linux

  • Apache

  • MySQL

  • PHP

Cette configuration permet la mise en place de site web complexes et dynamiques.

Une fois cette configuration réalisée, nous verrons comment l’exploiter en installant plusieurs instances de Wordpress sur un même serveur Apache.

Wordpress permet de réaliser simplement des sites web en tous genre.

Installation de Apache (rappel)

Avant de commencer, créer un clone à partir de la machine de référence et utilisez ce clone.

L’installation de Apache est simple, il suffit d’utiliser dnf:

$ dnf install httpd

Rappel sur les répertoires utilisés par Apache:

  • /etc/httpd : répertoire des configurations

  • /var/www/html : racine du serveur web.

Configuration des VirtualHost

Pour ajouter des sites web à votre serveur Apache, les étapes suivantes doivent être réalisées:

  1. Créer une configuration dans httpd.conf :
<VirtualHost *:80>
	ServerAdmin webmaster@virtuel.com
	DocumentRoot /var/www/virtuel.com/public_html
	ServerName www.virtuel.com
	ServerAlias virtuel.com
	ErrorLog /var/www/virtuel.com/error.log
</VirtualHost>
  1. Placer le code HTML dans le répertoire : /var/www/virtuel.com/public_html

  2. Redémarrer le service Apache

  3. S’assurer que les noms des différents sites web peuvent être résolus.

Configuration pour le site web bob.domaine.com

Pour créer ce site, ajoutez dans le fichier de configuration httpd.conf:/etc/httpd/conf/httpd.conf

Pour cette configuration, ajoutez à la fin de httpd.conf:

<VirtualHost *:80>
	ServerName bob.domaine.com
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/bob.domaine.com
</VirtualHost>

ServerName : doit correspondre au nom du site web.

/DocumentRoot : emplacement des fichiers web. Il faut créer le répertoire.

Créer le répertoire qui doit contenir les fichiers web :

mkdir /var/www/bob.domaine.com

Dans ce répertoire, créez le fichier index.html et écrivez les lignes suivantes:

<html>
	<h1>Bienvenu sur le site Linux 2</h1>
</html>

Pour éviter une erreur de configuration qui pourrait empêcher le serveur Apache de démarrer, on teste la configuration:

$ apachectl configtest

Vous pouvez alors faire un reload du serveur:

$ systemctl reload httpd

Pour terminer, vous devez vous assurer que le nom du site peut être résolu.

Vous pouvez utiliser un DNS ou le fichier /etc/hosts (c’est lui que nous utiliserons dans ce cours).

Dans le fichier /etc/hosts, ajoutez la ligne suivante:

192.168.230.253		bob.domaine.com

Vous devriez pouvoir accéder à votre site:

HTTP

Configuration d’un serveur LAMP

Un serveur LAMP :

  • Linux : système d’exploitation

  • Apache : serveur web

  • MySQL : base de données. Peut être accédé par des application PHP. Il existe une version sous licence Oracle et une version libre.

  • PHP : langage de programmation s’exécutant sur le serveur qui renvoie du code HTML pouvant être affiché par un navigateur. L’interpréteur doit être installé sur le serveur.

Cette configuration fournit un serveur web capable d’héberger des sites web complexes tout en étant totalement gratuit. Il s’agit d’une des configurations les plus utilisées.

L’installation est très simple.

Installation de Apache et des modules php:

$ dnf install httpd php php-mysqlnd

Installation de la base de données:

$ dnf install mariadb-server mariadb

Redémarrage du serveur web

$ systemctl restart httpd

Pour tester l’installation, remplacez le fichier index.html créé précédemment par un fichier index.php contenant:

<?php
	phpinfo();
?>

Vous devriez obtenir:

HTTP

Déploiement de Wordpress

Wordpress est un CMS (Content Management System).

Il permet de créer des sites web rapidement et simplement. Wordpress est très utilisé dans l’industrie.

Wordpress a besoin d’un serveur LAMP pour fonctionner.

https://fr-ca.wordpress.org/

Les étapes de création d’une instance Wordpress sont :

  1. Créer une base de données pour l’instance Wordpress (une par instance).

  2. Créer la configuration pour un site virtuel.

  3. Créer un répertoire dans /var/www pour héberger l’instance et y décompresser Wordpress.

  4. Configurer Wordpress avec le nom et le mot de passe de la base de données créée au point 1.

Création de la base de données

Démarrer la base de données:

$ systemctl start mariadb

Il faut utiliser le client MySQL pour se connecter au serveur et y créer une base de données:

$ mysql -u root 

Créez la base de données:

CREATE DATABASE wpdatabase;
CREATE USER wpuser@localhost IDENTIFIED BY 'wppass';
GRANT ALL PRIVILEGES ON wpdatabase.* TO wpuser@localhost;
FLUSH PRIVILEGES;
exit

Télécharger la dernière version de Wordpress :

$ wget https://fr-ca.wordpress.org/wordpress-6.0.3-fr_CA.tar.gz

Décompressez l’archive :

$ tar xvfz wordpress-6.0.3-fr_CA.tar.gz -C /var/www/

Renommez le répertoire en bob.domaine.com (il faudra peut-être supprimer le répertoire bob.domaine.com existant) :

$ mv /var/www/wordpress /var/www/bob.domaine.com

Il ne reste plus qu’à configurer le serveur Wordpress en accédant à l’adresse:http://bob.domaine.com

HTTP

Créer le fichier /var/www/bob.domaine.com/wp-config.php et y copier le contenu de la page:

HTTP

Vous pouvez maintenant créer votre site web.