[VPS] Installation et configuration d'un serveur web (Debian 9)

IdoTek

Modérateur
Modérateur
Envie d’héberger son propre site internet ? Vous êtes au bon endroit !


ETAPE 1 : INSTALLATION DU SERVEUR WEB.

Il existe de multiples serveurs web, et certains sont plus complexes que d’autres. Dans ce tutoriel je vais vous présenter le serveur web Apache2.
La plupart des commandes requiert un accès root en utilisant sudo par exemple.

Pour commencer, nous allons mettre à jour votre machine.

Code:
apt update && apt upgrade.
Puis, installer apache2

Code:
apt install apache2
Votre serveur web est maintenant installé, vérifiez qu’il est bien lancé avec la commande.

Code:
systemctl status apache2
Ou rendez-vous sur l’adresse I.P. de votre vps avec l’adresse I.P. de votre VPS, si votre serveur web est fonctionnel, vous devriez tomber sur cette page:

281

Les fichiers de votre serveur web se trouve dans le répertoire: /var/www/html

Et voilà, votre serveur web apache2 est installé !


ETAPE 2 : Les vHosts.

Les vHosts vont vous permettre de gérer les domaines et sous-domaines sur votre serveur web, il existe de multiples configurations différentes, mais je vais vous donner celle que j'utilise depuis déjà un an. Si vous avez des propositions pour améliorer les vHosts présents dans ce tutoriel, n’hésitez à les proposer en répondant à ce topic.


Les vHosts sont situés dans les fichiers /etc/apache2/sites-available

⚠ Oubliez pas de relier votre nom de domaine sur votre VPS ⚠
Commençons pas créer notre premier VHOST.
Code:
touch monvhost.conf
Puis éditez-le avec nano( ou votre editeur de texte favoris )
Code:
nano monvhost.conf
Puis ajoutez dedans


Code:
<VirtualHost *:80>

    ServerName "http://domaine.tld" # Indiquer ici votre nom de domaine

    DocumentRoot /var/www/votredossier # Et ici l'endroit ou les fichiers de votre serveur web seront stockés ( laissez dans /var/www/ )

    <Directory /var/www/votredossier>

       Options -Indexes +FollowSymLinks +MultiViews

        AllowOverride All # On autorise la réécriture d'URL

        Require all granted

    </Directory>

</VirtualHost>
Activez maintenant votre vhost avec
Code:
a2ensite monvhost
Voila, vous avez activé votre premier vHOST sous apache2 !


ETAPE 3 : Le chiffrement (SSL/TLS).

Le HTTPS est une obligation pour n'importe quel site internet, qu'il soit complexe ou avec seulement du HTML & CSS. Le HTTPS(HyperText Transfer Protocol Secure) est utilisé pour chiffrer les échanges entre le client et le serveur web pour éviter qu'ils soient intercepté par une personne malveillante, mais c'est aussi une question d'image, un facteur de confiance.
Il existe plusieurs façon d'obtenir un certificat SSL( ou TLS ), vous pouvez en acheter un sur Internet ( mais les prix montent très vite ), vous pouvez en avoir un en utilisant un CDN(Content Delivery Network) comme Cloudflare qui vous en propose un de bonne qualité, ou d'utiliser des services comme Let's Encrypt qui vous permet d'en installer un sur votre machine, et c'est ce que je vais vous montrer aujourd'hui.


Let's Encrypt est, depuis Debian 9, présent dans les repos officiel de Debian.
Vous pouvez donc l'installer en faisant:

Code:
apt install letsencrypt
Une fois letsencrypt installer, faites la commande en la modifiant par vos paramètres
Code:
letsencrypt certonly --webroot --webroot-path /var/www/dossierdevotresite/ --domain votredomaine.tld --email votre@email.tld
Si l'installation s'est bien passée, vous avez dû recevoir un message dans votre console "Congratulations!"

Nous devons maintenant installer le module ssl pour apache2.
Code:
a2enmod ssl
puis relancez apache2
Code:
systemctl restart apache2
Nous devons maintenant ajouter dans notre vhost notre SSL.

Modifier votre vhost dans /etc/apache2/sites-avalaible/votrevhost.conf

Puis ajoutez


Code:
<VirtualHost *:443>

    ServerName domaine.tld

    DocumentRoot /var/www/fichier_de_votre_site

        <Directory /var/www/fichier_de_votre_site>

                Options -Indexes +FollowSymLinks +MultiViews

                AllowOverride All

                Require all granted

        </Directory>

        SSLEngine on

        SSLCertificateFile    /etc/letsencrypt/live/domaine.tld/fullchain.pem

        SSLCertificateKeyFile   /etc/letsencrypt/live/domaine.tld/privkey.pem



        ErrorLog /var/log/apache2/error.domaine.tld.log

        CustomLog /var/log/apache2/access.idotek.domaine.tld.log combined

</VirtualHost>


Redémarrez votre apache2 et le tour est joué !

ETAPE 3 : Installation de PHP.

Depuis Debian 9, la version par défaut de PHP dans les repos officiel est la 7.0, pour l'installer avec des les extensions les plus utiles:
Code:
apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json php7.0-gd php7.0-mcrypt php7.0-intl php7.0-sqlite3 php7.0-gmp php7.0-mbstring  php7.0-xml php7.0-zip
Redémarrer votre apache2.
Pour vérifier la version de PHP installée, faites dans votre terminal

Code:
php -v
Pour vérifier si php est bien installé dans votre serveur web, créez un nouveau fichier dans le webroot (racine de votre web) avec l'extension .php et renseigner
Code:
<?php phpinfo(); ?>
Rendez-vous sur la page créé et si tout s'est bien passé, vous devriez tomber sur une page PHP avec toutes les extension installées.

ETAPE 4: Base de données.



Nous allons maintenant installer un système de gestion de bases de données appelé "MySQL".
Code:
apt install mysql-client mysql-server
Pour lancer la console SQL:
Code:
mysql
Une fois dans la console SQL nous allons désactiver le plugin UNIX_SOCKET pour setup un nouveau mot de passe.


Code:
MariaDB [(none)]> UPDATE mysql.user SET plugin = NULL WHERE user = 'root' AND plugin = 'unix_socket';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> SET PASSWORD FOR root@'localhost'=PASSWORD('votre_mot_de_passe');
Et voilà, votre MySQL est installé !
 

Fichiers joints

Dernière édition par un modérateur:
Haut