[Debian 12] installer un serveur web sur Debian 12

Tous les tutoriels sont fait sous Debian.
Répondre
Avatar du membre
Lolo
Admin
Admin
Messages : 110
Enregistré le : 16 juil. 2024, 21:06
Localisation : Paris
Contact :

installer un serveur web sur Debian 12

Message par Lolo »

serveurwebdebian12.jpg



Nous allons voir au travers de ce tutoriel comment installer un serveur web sous Linux Debian 12 bookworm. Nous allons voir l’installation de apache2, php, mariadb et phpmyadmin.
Les outils utilisés sont Putty et accessoirement Filezilla.
L’installation est "moins compliqué" car les paquets sur Debian 12 ont été mis à jour.


Installation

Connectez vous en root sur votre serveur dédié avec Putty.
Une fois connecté vérifiez que votre serveur est bien à jour en tapant la commande suivante
apt update && apt full-upgrade
Maintenant nous allons commencer par installer les librairies de base. Tapez la commande suivante
apt install build-essential -y
Patientez le temps de l’installation des paquets.
Une fois l’installation terminée vous allez maintenant installer apache2.


Installation de apache2

Tapez la commande suivante
apt install apache2 -y
On va sécuriser un minimum apache2. Tapez
nano /etc/apache2/conf-available/security.conf
remplacez
ServerTokens OS en ServerTokens Prod
et
ServerSignature On en ServerSignature Off
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" (o si vous avez mis en fr sinon ce sera y) et pour finir la touche Entrée.
Ensuite on relance apache2
service apache2 restart
apache2 utilise par défaut pour le web le chemin /var/www. Selon les attaques envers votre serveur dédié ils vont chercher dans ce chemin. Ce n’est pas pour autant qu’ils accèdent à ce qu’ils veulent, personnellement je préfère modifier le chemin par défaut et laisser les attaques se confronter au néant lol. Il est donc possible de modifier le chemin par défaut de vos sites web. Voici comment faire si ça vous intéresse.
Vous taper la commande suivante
nano /etc/apache2/apache2.conf
puis modifier la ligne
<Directory /var/www/>
pour mettre le chemin que vous désirez. Bien évidemment il devra être créé. Par exemple je créé mes sites web dans
/home/mes-sites/site1
/home/mes-sites/site2
/home/mes-sites/site3
...
la ligne devra être
<Directory /home/mes-sites/>
On referme le fichier en sauvegardant les modifications.
Ensuite on relance apache2
service apache2 restart

Installation de PHP

La version de PHP est la 8.3 à ce jour, sauf que via le paquet Debian c'est la 8.2 donc soit vous utilisez la version du paquet Debian ou vous installez la version que vous voulez. Si vous installez via le paquet Debian il gèrera les mises à jour via le paquet. Si vous installez manuellement vous devrez gérer les mises à jour vous même. Je préconise d'installer PHP via le paquet. Autre précision, vérifiez que votre forum, cms etc. fonctionne sur la version que vous voulez installer de PHP. Si c’est bon on lance la commande d’installation de PHP et ses modules. Via le paquet Debian ce sera :
apt install php php-apcu php-bcmath php-bz2 php-cli php-curl php-gd php-igbinary php-imagick php-intl php-mbstring php-mysql php-opcache php-pgsql php-readline php-redis php-soap php-tidy php-xml php-xmlrpc php-zip -y
Une fois PHP installé si vous voulez vérifier votre version, tapez php -v il vous affichera
PHP 8.2.20 (cli) (built: Jun 17 2024 13:33:14) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies
Si vous voulez installer une version spécifique, par exemple php8.3 ça donnera ceci
apt install php8.3 php8.3-apcu php8.3-bcmath php8.3-bz2 php8.3-cli php8.3-curl php8.3-gd php8.3-igbinary php8.3-imagick php8.3-intl php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-readline php8.3-redis php8.3-soap php8.3-tidy php8.3-xml php8.3-xmlrpc php8.3-zip -y
vous comprenez la différence. Si vous voulez la version 8.4 (quand elle sera dispo) vous modifiez les 8.3 en 8.4 etc.


Installation de MariaDB

MariaDB est utilisé pour la gestion des base de données. On lance l’installation
apt install mariadb-server -y
Une fois l’installation terminé vous pouvez vérifier votre version en tapant: mariadb
Il vous retournera ceci
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1285
Server version: 10.11.3-MariaDB-1 Debian
Tapez quit ou exit pour sortir et revenir en root.
MariaDB est maintenant installé.


Installation de phpMyAdmin

Vous installez phpMyAdmin en tapant la commande suivante
apt install phpmyadmin -y
l’installation commence puis une fenêtre s’ouvre.
avec vos flèches vous placez le curseur rouge sur apache2 puis vous appuyez sur votre barre d’espace ce qui aura pour but de mettre un * et donc de sélectionner apache2. Puis vous validez avec votre touche Entrée.
L’installation se poursuit puis vous tombez de nouveau sur une fenêtre ou vous ne pouvez faire que OK.
Fenêtre suivante, à la question
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ?
vous vous placez sur OUI puis vous validez.
Sur la fenêtre suivante, vous devez entrer un mot de passe. Ce mot de passe ne le donnez à personne.
Mot de passe de connexion MySQL pour phpmyadmin :
Une fois le mot de passe entré vous allez sur OK puis validez.
Une confirmation vous sera demandée, donc entrez de nouveau le mot de passe.
L’installation se poursuit et se termine.

Ensuite vous ouvrez MariaDB en tapant tout simplement mariadb ou mysql.
Il vaut mieux créer un user qui lui aura tous les droits. Pour cela tapez et modifiez la ligne suivante avec vos infos
GRANT ALL PRIVILEGES ON *.* TO 'lolo'@'localhost' IDENTIFIED BY 'votremotdepasse' WITH GRANT OPTION;
Remplacez lolo et votremotdepasse par vos informations.
sortez ensuite de MariaDB en tapant exit ou quit.

Votre phpMyAdmin est maintenant accessible. Vous pouvez créer des utilisateurs et des bases de données grâce à votre super-utilisateur qui à tout les droits. Un tutoriel est fait pour apprendre à créer des utilisateurs et base de données
phpMyAdmin est accessible via l’ip du serveur dédié. Par exemple 91.121.144.222/phpmyadmin

A ce stade vous avez un serveur web qui tourne mais accessible uniquement via son adresse ip. Maintenant nous allons voir comment placer votre domaine et les fichiers de votre site.
On commence par créer votre espace web sur le serveur si ce n’est pas déjà fait. (vu dans l’installation de apache2)
Je crée le dossier qui contiendra mon site
mkdir /home/mes-sites/lewebalolo
Comme vu dans la partie installation d’apache2 tout dépend où vous voulez créer votre espace pour votre site web.
Maintenant nous allons créer un fichier index.php de façon à tester si la redirection vers le dossier, mais aussi du domaine qui pointera dessus est bonne.
Tapez
nano /home/mes-sites/lewebalolo/index.php
Une page vierge s’ouvre et vous allez mettre ceci dedans
<?php
echo "Bienvenue sur le site Le web à Lolo";
?>
On referme le fichier en sauvegardant.
Nous allons maintenant dire à apache2 où se situe votre fichier.
Vous allez taper la commande suivante
nano /etc/apache2/sites-available/lewebalolo.conf
Attention !!! mettez le même nom que votre dossier crée dans /home/mes-sites pour éviter de se perdre si vous comptez créer plusieurs sites.
Vous vous retrouvez face à une page vide et vous allez copier/coller ce qui suit

Code : Tout sélectionner

<VirtualHost *:80>
ServerName lewebalolo.com
ServerAlias www.lewebalolo.com

ServerAdmin contact@votremail.com
DocumentRoot /home/mes-sites/lewebalolo
<Directory />
        Require all granted
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/mes-sites/>
        Require all granted
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Vous aurez vite compris les infos à modifier. N’oubliez pas de louer un domaine.
Sur la 1ère ligne vous avez ceci
<VirtualHost *:80>
vous pouvez remplacer le * par l’adresse ip de votre serveur dédié.
On referme le fichier en sauvegardant.
Tapez ensuite la commande suivante
a2ensite lewebalolo.conf
puis vous relancez apache2
systemctl reload apache2
Votre machine reconnait le domaine mais le domaine n’est pas encore lié au serveur.
Allez sur le panel de votre domaine chez votre prestataire et modifiez la zone DNS du domaine. La méthode qui suit est si vous l’avez loué chez OVH.
Une fois connecté vous allez dans votre domaine puis allez sur zone DNS
Sur la ligne ou le type est A vous modifiez la ligne et dans Cible vous mettez l’adresse IP de votre serveur dédié. Vous validez et c’est bon. Vous pouvez aussi modifier la ligne de votre domaine avec le www, comme ça votre site est accessible avec ou sans les www au début de votre adresse de site. Si le www n’existe pas vous pouvez aller sur ajouter une entrée et le créer avec l'entrée A.

Vous allez sur votre adresse de site vous devriez voir le texte mis dans le fichier index.php.
Si vous ne vous êtes pas trompé normalement votre site est accessible désormais. S’il ne l’est pas c’est qu’il lui faut du temps pour que les DNS se propagent. Chez OVH c’est assez rapide.
Petite précision qui a son importance, si vous uploadez votre site sur ftp avec le root il vous faudra taper la ligne suivante
chown -R www-data:www-data /home/mes-sites/lewebalolo
ce qui a pour but d’attribuer les droits sur les dossiers/fichiers de votre site au user www-data qui gère la partie web sur votre serveur.
Sinon vous risquez d’avoir des soucis avec les droits, en effet, votre user root n’est pas fait pour ça, ce qui touche aux sites web c’est le user www-data (déjà créé de base) donc pensez bien que si vous ajoutez des fichiers il vous faudra taper cette commande à chaque fois. Si vous écrasez un fichier ce ne sera pas nécessaire mais si c’est un nouveau fichier/dossier il vous faudra le faire.

Votre serveur web est maintenant prêt. Je vous conseils maintenant de passer votre site en https.
Répondre