Installation sous Linux Debian

Remarque : Cette procédure est donnée à titre indicatif. Elle nécessite d’avoir une bonne connaissance de l’environnement Linux Debian. En effet selon votre contexte ou vos contraintes techniques certains éléments de la procédure peuvent ne pas être adaptés.

Remarque : Toutes les commandes indiquées ci-dessous supposent que vous êtes connectés au système avec un compte utilisateur ayant des pouvoir suffisants.

Etape 1 : Mettre à jour l’index des paquets

Il est essentiel de toujours commencer par la mise à jour de l’index des paquets pour repartir sur de bonnes bases. Dans votre terminal, exécutez la commande :

$ apt update -y
$ apt upgrade -y

Cela ne devrait prendre que quelques secondes, et une fois fait, passez à l’étape suivante.

Etape 2 : Installation du Serveur Web Apache

L’étape suivante consiste à installer le célèbre serveur web Apache. Pour ce faire, exécutez :

$ apt install apache2 apache2-utils -y

Cela installe Apache en même temps que d’autres paquets, bibliothèques et dépendances supplémentaires. Par défaut, Apache démarre automatiquement et vous pouvez le confirmer en vérifiant son état.

$ systemctl status apache2

Si, pour une raison quelconque, Apache ne fonctionne pas, démarrez le service en exécutant la commande :

$ systemctl start apache2

En outre, vous pouvez envisager d’activer le démarrage d’Apache lors d’un redémarrage ou à chaque fois que le système est mis sous tension, comme suit :

$ systemctl enable apache2

Sur un navigateur web, consultez l’adresse IP ou le nom de domaine de votre serveur pour vérifier que, effectivement, le serveur web est accessible.

$ http://ip-de-votre-machine

Vous devriez obtenir la page de bienvenue du serveur web Apache. C’est une confirmation qu’Apache a été installé avec succès.

Etape 3 : Installation du serveur de base de données MariaDB

MariaDB est un système de gestion de base de données relationnelle (SGBDR) opensource qui est issu de MySQL. Il est plus robuste, plus sûr et offre des fonctionnalités supplémentaires telles que le cluster Galera, et des moteurs de stockage cool comme InnoDB.

Pour installer le serveur MariaDB, il suffit d’exécuter la commande :

$ apt install mariadb-server -y

Comme Apache, MariaDB démarre automatiquement. Vous pouvez vérifier l’état de fonctionnement comme indiqué.

$ systemctl status mariadb

Si MariaDB n’est pas en cours d’exécution, pensez à le démarrer.

$ systemctl start mariadb

Puis activez le service pour qu’il démarre au démarrage.

$ systemctl enable mariadb

La sécurité du serveur de base de données est tout aussi importante. Les paramètres par défaut fournis avec MariaDB sont faibles et les pirates peuvent les exploiter pour pénétrer dans la base de données.

Donc, pour durcir MariaDB, exécutez la commande :

$ mysql_secure_installation

Cela fera apparaître quelques invites qui vous guideront dans le renforcement de votre serveur. Commencez par définir un mot de passe root pour MariaDB

<mark>ATTENTION: à l’étape : Switch to unix_socket authentication [Y/n] j’ai répondu n</mark>

$ Switch to unix_socket authentication [Y/n] n

A la question suivante entrez Y pour saisir un mot de passe pour l’utilisateur root de MariaDB

$ Change the root password? [Y/n] y

Tapez ensuite « Y » pour les autres invites afin de configurer le serveur de base de données avec

les paramètres de sécurité les plus recommandés.

$ Remove anonymous users? [Y/n] Y
$ Disallow root login remotely? [Y/n] Y
$ Remove test database and access to it? [Y/n] Y
$ Reload privilege tables now? [Y/n] Y

Pour vous connecter, exécutez la commande

$ mysql -u root -p

*Tapez le mot de passe root et appuyez sur ENTER. Pour les bases de données existantes, exécutez la commande :

SHOW DATABASES ;

Pour confirmer la version de MariaDB, exécutez :

SELECT VERSION() ;

Créer une base de données et donner les privilège à l’utilisateur root

CREATE DATABASE nom_de_la_base

To exit the database server, run the command:

EXIT;

Etape 4 : Installation de PHP

Enfin, nous installerons PHP, qui est un langage de script côté serveur utilisé pour soutenir le développement de pages web dynamiques. Par défaut, PHP 7.4 est hébergé sur le référentiel Debian 11. Par conséquent, nous allons installer PHP et quelques modules PHP supplémentaires en utilisant le gestionnaire de paquets APT comme suit :

ATTENTION :Avant de parler de l’installation de PHP 8.1, quelques paquets sont à installer.

L’opération est simple et consiste à ajouter un dépôt pour accéder aux paquets PHP 8.1 et ses extensions.

$ apt-get install ca-certificates apt-transport-https software-properties-common wget curl lsb-release

Voilà, vous êtes prêt à ajouter le dépôt qui va permettre de récupérer les paquets associés à PHP 8.1.

Ajouter le dépôt pour PHP 8.1

On va s’appuyer sur le dépôt « packages.sury.org » que l’on va ajouter à notre machine grâce à la commande Curl afin d’installer la clé de ce référentiel.

$ curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

On actualise le cache des paquets pour prendre en compte les paquets disponibles sur ce dépôt.

$ apt-get update

Dès à présent, nous pouvons passer à l’installation de PHP 8.1 sur Debian 11 ainsi que tous les modules les plus communément utilisés dans une appli web (D’autres modules php pouront être installés plus tard en fonction des besoins).

Note : pour installer php8.2 remplace php8.1 par php8.2 dans les lignes ci-dessous

$ apt install php8.1 libapache2-mod-php8.1 php8.1-{curl,gd,intl,memcache,xml,xmlrpc,zip,mbstring,cli,common,pdo,mysql,bcmath,dev,gmp,imagick,imap,intl,soap,sqlite3,opcache}

Vous pouvez confirmer si PHP est installé en utilisant la commande :

$ php -v

En outre, vous pouvez le vérifier à partir d’un navigateur Web en créant un fichier PHP type dans le dossier racine du document

$ sudo nano /var/www/html/info.php

Collez les lignes suivantes

<?php
phpinfo() ;
?>

Sauvegardez le fichier et parcourez l’URL  » http://ip-de-votre-machine/info.php« 

Vous devriez obtenir la page PHP affichée avec toutes les infos.

Supprimez le fichier info.php.

$ rm /var/www/html/info.php


Etape 5: Création d’un dossier de publication web et d’un virtual host

L’objectif est de pouvoir lancer l’application via une url simple à retenir, pour l’exemple nous choisirons : http://sst.local

Dossier web de l’application

On créer un dossier pour notre application dans le dossier /var/www :

$ cd /var/www
$ mkdir sst.local

Télécharger l’archive de l’application et décompressez la dans le dossier /var/www/sst.local

$ unzip archiveSST.zip

Une fois la l’archive décompressée vous pouvez la supprimer

$ rm archiveSST.zip

On donne, ensuite, les permissions adequate à l’utilisateur courant (exemple ‘user’) et à Apache (‘www-data’) :

$ chown -R user sst.local/
$ chgrp -R www-data sst.local/
$ chmod -R 775 sst.local/
$ chmod g+s sst.local/

Configuration d’Apache

On crée un fichier de virtual host pour indiquer à Apache qu’on souhaite pointer l’url http://sst.local vers le dossier de publication web /var/www/sst.local/

$ nano /etc/apache2/sites-available/sst.local.conf

Dans le fichier on va écrire:

<VirtualHost *:80>
    <Directory /var/www/sst.local>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ServerAdmin webmaster@localhost
    ServerName sst.local
    ServerAlias www.sst.local
    DocumentRoot /var/www/sst.local/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

On fait CTRL + O ensuite Yes pour enregistrer les modifications . CTRL + X pour quitter l’éditeur.

On active le nouveau virtual host :

On va d’abord désactiver la config par defaut

$ a2dissite 000-default.conf

et on active notre nouvelle configuration

$ a2ensite sst.local.conf

On test que c’est bien configuré

$ apache2ctl configtest

On devrait avoir le résultat suivant:

Syntax OK

On active le module de réécriture d’url :

$ a2enmod rewrite

On redémarre le service d’apache

$ systemctl restart apache2

Etape 6: Installation de l’application

Vous pouvez maintenant lancer l’application via l’url http://sst.local et suivre la procédure décrite dans le guide d’installation