Cliquez sur l'image pour la voir en taille réelle 

Nom : 		webdedie.jpg 
Affichages :	37 
Taille :		58,2 Ko 
ID : 			501




Présentation

Nous allons voir au travers de ce tutoriel comment installer son serveur web sous Linux Debian 10 buster. Au moment de la rédaction de ce tutoriel c'est la dernière version stable.
Nous allons voir l'installation de apache2, php, mysql et phpmyadmin.
Les outils utilisés sont Putty et 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 machine est à jour.
Sinon à la fin rebootez votre machine en tapant reboot.

Votre machine a maintenant reboot et vous êtes à nouveau connecté dessus.

Vous allez 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.
Pour se faire tapez la commande suivante
apt install apache2
à la question souhaitez-vous continuer ? [O/n] appuyez sur la lettre "o" puis validez.
Nous verrons la configuration d'apache2 plus loin.

Voyons l'installation de PHP

Dans un premier temps on installe les paquets nécessaires. Connectez vous sur votre dédié en root et tapez la commande suivante
apt -y install apt-transport-https lsb-release ca-certificates
Il se peut que rien ne s'installe et qu'il vous retourne
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Ne vous inquiétez pas c'est que ces paquets sont déjà installé.

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'
Vous pouvez ensuite vérifier si le fichier a bien été créé.

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. Pour ma part l'installe la version 7.4

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
Une fois PHP installé lorsque vous voulez vérifier votre version en tapant php -v il vous affiche

PHP 8.0.3 (cli) (built: Mar 5 2021 08:38:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies
Il vous affiche la 8.0.3 et si vous voulez qu'il vous affiche la 7.4
a2enmod php7.4
et ensuite
apt remove php8.0-*
Tapez de nouveau php -v et il vous affichera ceci

PHP 7.4.16 (cli) (built: Mar 5 2021 08:36:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.16, Copyright (c), by Zend Technologies
Si vous voulez installer installer la version 8.0 vous pouvez installer la version PHP 8.0.x en utilisant les lignes suivantes au lieu des lignes en 7.4

apt install php8.0 php8.0-apcu php8.0-bcmath php8.0-bz2 php8.0-cli php8.0-curl php8.0-gd php8.0-geoip php8.0-igbinary php8.0-imagick php8.0-intl php8.0-json 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
Toutefois attention car vous devez vérifier que votre site/forum/autre tourne avec cette version.

Voyons l'installation de mariadb qui est votre serveur mysql.

Tapez la commande suivante pour installer les paquets.
apt install software-properties-common dirmngr
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.5 Stable la plus récente.
Une fois sur le site vous cliquez sur debian >> Debian 10 buster >> 10.5 [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.
Entrez ensuite
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
et

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.docker.ru/mariadb/repo/10.5/debian buster main'
faites un

apt update
ensuite on install 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 44
Server version: 10.5.9-MariaDB-1:10.5.9+maria~buster mariadb.org binary distribution
Pour sortir et revenir sous root vous tapez: quit
MariaDB est maintenant installé.

Voyons maintenant l'installation de phpmyadmin.

Sur Debian 10 buster phpmyadmin ne fait plus parti des paquets installable. Il faut donc procéder autrement.

tapez la commande suivante

apt install php-mbstring php-zip php-gd
ensuite vous allez sur le site de phpmyadmin https://www.phpmyadmin.net/downloads/ pour prendre la dernière version. Pour ma part à l'heure actuelle c'est la phpMyAdmin-5.1.0-all-languages.tar.gz donc vous faite un clic droit sur le nom et "copier l'adresse du lien".
Tapez ensuite la ligne suivante pour télécharger phpmyadmin sur votre machine

ensuite vous décompressez l'archive avec la commande suivante

tar xvf phpMyAdmin-5.1.0-all-languages.tar.gz
vous déplacez le dossier décompressé dans /usr/share/phpmyadmin avec la commande suivante. Elle va déplacer le dossier et le renommer en phpmyadmin.

mv phpMyAdmin-5.1.0-all-languages/ /usr/share/phpmyadmin
Passons maintenant à la configuration.

Vous allez créer le dossier tmp qui sert à ce que les fichiers temporaires soient mis dedans.

mkdir -p /var/lib/phpmyadmin/tmp
Vous définissez ensuite le propiétaire de l'exécution

chown -R www-data:www-data /var/lib/phpmyadmin
Maintenant nous allons copier/coller le fichier de config et en le renommant et répondre à la question du blowfish_secret

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
$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

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
vous remplacez pmapass par un mot de passe. et vous décommentez les 2 lignes en retirant les //
Tout en bas du fichier vous ajoutez la ligne suivante
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Vous refermez le fichier en sauvegardant. Toute cette partie vous pouvez la faire également via filezilla si vous êtes plus à l'aise pour l'édition de fichiers.

Maintenant vous allez créer la table create_tables.sql
mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
Tapez ensuite
mariadb
ce qui va lancer mariadb
puis vous entrez la ligne suivante en modifiant à la fin de la ligne password par votre mot de passe mis sur la ligne plus haut
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Toutefois attention car le user 'pma' aura accès à phpmyadmin mais pas avec tout les droits d'ajout de user etc.
Donc 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 'papy'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION;
Remplacez papy et motdepasse par vos informations.

sortez ensuite de mariadb en tapant exit.

Vous allez configurer maintenant phpmyadmin avec apache2.
Tapez
nano /etc/apache2/conf-available/phpmyadmin.conf
et mettez

Code:
Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>
refermez le fichier en sauvegardant.
Tapez ensuite
a2enconf phpmyadmin.conf
puis relancez apache2
systemctl reload apache2
Votre phpmyadmin est maintenant accessible. Vous pouvez créer des utilisateurs etc. grâce à votre utilisateur qui à tout les droits

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 l'espace sur la machine.
mkdir /var/www/lenomquevousvoulez
remplacez lenomquevousvoulez par le nom de votre site par exemple. Moi je vais mettre testweb ce qui donne
mkdir /var/www/testweb
Ensuite on se déplace dans le dossier

cd /var/www/testweb
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
Code:
<?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 Entrer.

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 testweb.conf
Attention !!! mettez le même nom que votre dossier crée dans /var/www pour éviter de se perdre.

Vous vous retrouvez face à une page vide et vous allez copier/coller ce qui suit
Code:
<VirtualHost *:80>
	ServerName www.testweb.com
	ServerAlias testweb.com *.testweb.com

	ServerAdmin contact@testweb.com
	DocumentRoot /var/www/testweb

	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 testweb
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.

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 /var/www/testweb
Sinon vous risquez d'avoir des soucis avec les droits donc pensez bien que si vous ajoutez des fichiers il vous faudra taper cette commande à chaque fois.



Ce tutoriel est la propriété de configtonserv.com