Image

JSI to DEDI est un panel de gestion de serveurs de jeux & web sur votre dédié.

[Debian 11] Installer un serveur web

Tout ce qui concerne les serveurs dédiés c'est ici.
Répondre
Avatar du membre
Papy___
Admin
Admin
Messages : 185
Enregistré le : 30 nov. 2021, 16:12
Localisation : Paris
Contact :

Installer un serveur web

Message par Papy___ »

serveur_web.jpg



Présentation

Nous allons voir au travers de ce tutoriel comment installer un serveur web sous Linux Debian 11 bullseye. Nous allons voir l'installation de apache2, php, mysql, mariadb et phpmyadmin.
Les outils utilisés sont Putty et accessoirement Filezilla.


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 les commandes suivante et dans l'ordre
  • apt update
  • apt upgrade
  • apt dist-upgrade
Si au final sa vous retourne
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
c'est que votre serveur dédié est à jour. Si ce n'est pas le cas installez vos mises à jour.

Maintenant nous allons commencer par installer les librairies de base. Tapez la commande suivante puis validez
apt install build-essential
à la question souhaitez-vous continuer ? [O/n] appuyez sur la lettre "o" puis validez.
Patientez le temps de l'installation des paquets.

Une fois l'installation terminé vous allez maintenant installer apache2.



Installation Apache2

Pour se faire tapez la commande suivante
apt install apache2
à la question souhaitez-vous continuer ? [O/n] appuyez sur la lettre "o" puis validez.

On va sécuriser un minimum apache2. Tapez
nano /etc/apache2/conf-available/security.conf
remplacer
  • ServerTokens OS en ServerTokens Prod
  • ServerSignature On en ServerSignature Off
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" et pour finir la touche Entrée.
Ensuite on relance apache2
service apache2 restart
apache2 utilise par défaut pour les sites 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 trouvent ce qu'ils veulent mais bon, 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 allez taper la commande suivante
nano /etc/apache2/apache2.conf
puis trouver la ligne
<Directory /var/www/>
et modifier 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/
dans ce cas la ligne devra être
<Directory /home/mes-sites/>
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" et pour finir la touche Entrée.

Ensuite on relance apache2
service apache2 restart

Installation de PHP

Si vous voulez installer PHP 7.4 vous pouvez taper directement la commande d'installation. Cette version est dans les dépôts contrairement à Debian 10.
apt install php7.4 php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-curl php7.4-gd php7.4-geoip php7.4-igbinary php7.4-imagick php7.4-intl php-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-pgsql php7.4-readline php7.4-redis php7.4-soap php7.4-tidy php7.4-xml php7.4-xmlrpc php7.4-zip
Si vous voulez installer PHP 8.0 il vous faut installer les paquets nécessaires.
apt -y install apt-transport-https lsb-release ca-certificates
Ensuite on ajoute le dépôt packages.sury.org. Tapez la commande suivante
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
Vous tapez ensuite la ligne suivante qui va permettre la création du fichier php.list dans /etc/apt/sources.list.d/ Cela permettra lorsque vous regarderez si une mise à jour est disponible via la commande apt-get update de voir si votre version a besoin d'une mise à jour. S'il y a besoin il vous suffira de taper apt-get upgrade et la nouvelle version s'installera.
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Vérifiez la mise à jour des paquets du nouveau dépôt et les installer
apt update && apt upgrade
Lancez ensuite l'installation de PHP 8.0. Soyez sûr que votre/vos site(s) soit compatible avec cette version de PHP.
apt install php8.0 php8.0-apcu php8.0-bcmath php8.0-bz2 php8.0-cli php8.0-curl php8.0-gd php8.0-igbinary php8.0-imagick php8.0-intl php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-pgsql php8.0-readline php8.0-redis php8.0-soap php8.0-tidy php8.0-xml php8.0-xmlrpc php8.0-zip
Une fois PHP installé lorsque vous voulez vérifier votre version en tapant php -v il vous affiche (pour la version PHP 8.0)
PHP 8.0.11 (cli) (built: Sep 23 2021 22:04:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies
with Zend OPcache v8.0.11, Copyright (c), by Zend Technologies


Installation de MariaDB

MariaDB est tout simplement le serveur mysql.

Tapez la commande suivante pour installer les paquets.
apt install software-properties-common dirmngr apt-transport-https
ensuite vous entrez la commande suivante mais vous pouvez vérifier les versions sur ce lien ICI car lors de la rédaction de ce tutoriel c'est la version 10.6 Stable la plus récente.
Une fois sur le site vous cliquez sur debian >> Debian 11 bullseye >> 10.6 [stable] (ou autre version plus récente mais prenez la stable)
Une fois la version choisi vous verrez en dessous qu'il vous met les lignes à taper pour l'installation.

ensuite vous tapez
puis
add-apt-repository 'deb [arch=amd64,i386,arm64,ppc64el] https://ftp.igh.cnrs.fr/pub/mariadb/repo/10.6/debian bullseye main'
Maintenant on fait une update
apt update && apt upgrade
puis on installe mariaDB.
apt install mariadb-server
Une fois l'installation terminé vous pouvez vérifier votre version en tapant: mysql
Il vous retournera ceci
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.6.4-MariaDB-1:10.6.4+maria~bullseye mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Tapez quit pour sortir et revenir en root.

MariaDB est maintenant installé.

Voyons maintenant l'installation de phpmyadmin.



Installation de phpMyAdmin

Sur Debian 11 bullseye le paquet phpmyadmin est revenu. Alors que sur Debian 10 buster il fallait procéder autrement pour l'installation.

On installe phpMyAdmin en tapant la commande suivante
apt install phpmyadmin
l'installation commence puis une fenêtre s'ouvre.

serveur_web_1.jpg


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é, donc entrez de nouveau le mot de passe.

L'installation se poursuit et se termine.

Passons maintenant à la configuration.

Vous allez créer le dossier tmp qui sert à ce que les fichiers temporaires soient mis dedans.
mkdir -p /usr/share/phpmyadmin/tmp
Maintenant nous allons copier/coller le fichier de config.
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
vous éditez le fichier
nano /usr/share/phpmyadmin/config.inc.php
trouvez la ligne et modifiez la
$cfg['blowfish_secret'] = 'vous devez mettre ici 32 caractères minimum et tout attaché et ne mettez pas d'accent etc'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
ensuite plus bas
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
vous dé-commentez les lignes de façon à faire ceci
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Tout en bas du fichier vous ajoutez la ligne suivante
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" et pour finir la touche Entrée.

ensuite on ouvre MariaDB en tapant tout simplement mariadb

il vaut mieux créer un user qui lui aura tout les droits. Pour cela tapez et modifiez la ligne suivante avec vos infos.
GRANT ALL PRIVILEGES ON *.* TO 'papyinfo'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION;
Remplacez papyinfo et motdepasse par vos informations.

sortez ensuite de MariaDB en tapant exit.

Votre phpMyAdmin est maintenant accessible. Vous pouvez créer des utilisateurs etc. grâce à votre utilisateur qui à tout les droits. Un tutoriel est fait pour apprendre à créer des comptes etc.
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 la machine.
mkdir /home/mes-sites/papyinfo
Comme vu dans la partie installation d'apache2 tout dépend où vous voulez créer votre espace pour votre site web.
Ensuite on se déplace dans le dossier
cd /home/mes-sites/papyinfo
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 bon.
Tapez
nano index.php
Une page vide s'ouvre et vous allez mettre ceci dedans
<?php
echo "Bienvenue chez Papy___";
?>
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" et pour finir la touche Entrée.

Nous allons maintenant dire à Apache2 où se situe votre fichier et donc votre site.

Vous allez taper la commande suivante
cd /etc/apache2/sites-available
ensuite vous tapez
nano papyinfo.conf
Attention !!! mettez le même nom que votre dossier crée dans /home/mes-sites pour éviter de se perdre.

Vous vous retrouvez face à une page vide et vous allez copier/coller ce qui suit

Code : Tout sélectionner

<VirtualHost *:80>
ServerName www.papyinfo.fr
ServerAlias papyinfo.fr *.papyinfo.fr

ServerAdmin contact@votremail.fr
DocumentRoot /home/mes-sites/papyinfo
<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.
On referme le fichier en faisant le manipulation de touche suivante ctrl + x ensuite la touche "o" et pour finir la touche Entrer.

Tapez ensuite la commande suivante
a2ensite papyinfo
papyinfo = le nom du fichier donné quelques lignes plus haut pour papyinfo.conf

Votre machine est lié à votre domaine mais le domaine lui n'y est pas.
Allez sur le panel de votre domaine chez votre prestataire et modifiez la zone DNS du domaine. Je parlerai si vous l'avez loué chez OVH pour ce qui suit.
Une fois connecté 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 également ajouter une entrée sur le panel de votre domaine. Dans
  • sous-domaine vous mettez www
  • Cible vous mettez l'adresse ip du serveur dédié.
puis vous validez. Comme ça votre site est accessible avec ou sans les www au début de votre adresse de site.

Ensuite si 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.

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/papyinfo
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.



Ce tutoriel est la propriété de papyinfo.fr
Répondre