Création du serveur web - NicolasGlassey/PROJWEB_WEBELWEISS GitHub Wiki

Création du serveur web

Introduction

Pour crée le serveur web, il est nécessaire d'installer plusieurs éléments différents.

Premièrement il est indispensable d'avoir une machine sur la quel installer le serveur (Debian 10), en second il est important de mettre é jour le Firewall et installer apache2.

En troisième il est possible d'installer une base de donnée (MariaDB) or dans le projet de webelweiss il n'est pas utile, donc pas expliquer ci-dessous ample information sur https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10.

En quatrième il faut installer PHP8, afin de pouvoir lire correctement les fichiers.

En cinquième point il faut installer un Virtual Host pour notre serveur.

En dernier point il faut effectuer les tests.

Liens utiles

Installation de Apache et autres installation: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10

Mise à jour du Firewall : https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-10#step-4-%E2%80%94-setting-up-a-basic-firewall

Installation de PHP8 : https://www.itzgeek.com/post/how-to-install-php-8-0-on-debian-10-debian-9.html

Installation de Debian 10

Pour installer de Debian 10 il nous faut aller chercher le fichier iso sur le site de Debian.

https://www.debian.org/

Une fois le fichier télécharger, il faut aller VMware Workstation et installer Debian 10, garder les installation par défaut et installer les option nécessaire au serveur.

Mettre a jour le Firewall et installer apache2

Apache est un logiciel de server HTTP, utiliser principalement sur linux.

  1. Installez Apache à l'aide du gestionnaire de paquets Debian, APT:

$ sudo apt update

$ sudo apt install apache2

  1. Mettre à jour le Firewall

Vous retrouvez toutes les commande utiliser ici pour le Firewall: https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-10#step-4-%E2%80%94-setting-up-a-basic-firewall

$ sudo apt update

$ sudo apt install ufw

Il est possible de voir la liste des élément télécharger avec cette commande:

$ sudo ufw app list

Vous devriez voir : OpenSSH, WWW, WWW Cache, WWW Full, WWW Secure

Il est important de s'assurer que le pare-feu autorise les connexions SSH afin que nous puissions nous reconnecter la prochaine fois.

$ sudo ufw allow OpenSSH

Ensuite il faut activer le Firewall.

$ sudo ufw enable

Il est possible de vérifier que les connexions SSH sont toujours autorisées en tapant:

$ sudo ufw status

  1. Suite Apache2

Inspectez le profil WWW Full, il montre qu'il autorise le trafic vers les ports 80 et 443:

$ sudo ufw app info "WWW Full"

Autoriser le trafic HTTP et HTTPS entrant pour ce profil:

$ sudo ufw allow in "WWW Full"

Tester si votre installation est correct en vous connectant sur le navigateur, dans la barre de navigation taper votre adresse IP vous dévrillez voir la page par défaut de Apache.

Installation de PHP8

Vous retrouvez toutes les commande utiliser ici pour PHP8: https://www.itzgeek.com/post/how-to-install-php-8-0-on-debian-10-debian-9.html

$ sudo apt update

Installez les packages

$ sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https

$ sudo wget https://packages.sury.org/php/apt.gpg

$ sudo apt-key add apt.gpg

Ajoutez le référentiel SURY à votre système.

$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php8.list

$ sudo apt update

Installez PHP8.

$ sudo apt install -y php8.0 php8.0-cli php8.0-common

Vérifiez la version de PHP.

$ php -v

Installez le package ci-dessous avec le serveur Web Apache pour prendre en charge PHP.

$ sudo apt install -y apache2 libapache2-mod-php8.0

Création d'un Virtual Host

Créez le répertoire Web racine de votre_domaine comme suit.

$ sudo mkdir /var/www/your_domain

Ensuite, attribuez la propriété du répertoire avec la variable d'environnement $ USER, qui doit référencer votre utilisateur système actuel.

$ sudo chown -R $USER:$USER /var/www/your_domain

Ensuite, ouvrez un nouveau fichier de configuration dans le répertoire disponible sur les sites d’Apache à l’aide de votre éditeur de ligne de commande préféré.

$ sudo nano /etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Avec cette configuration VirtualHost, nous demandons à Apache de servir votre_domaine en utilisant / var / www / votre_domaine comme répertoire racine Web. Si vous souhaitez tester Apache sans nom de domaine, vous pouvez supprimer ou commenter les options ServerName et ServerAlias en ajoutant un caractère # au début des lignes de chaque option.

Activer l'hôte virtuel.

$ sudo a2ensite your_domain

Désactiver le site web installer par défaut par apache.

$ sudo a2dissite 000-default

Faire un config test afin d'être sur que il n'y aie aucune erreur.

$ sudo apache2ctl configtest

Finalement redémarrer apache.

$ sudo systemctl reload apache2

Installation de git

$ sudo apt-get install git

Test

Test de la configuration de php.

$ nano /var/www/your_domain/info.php

http://your_domain/info.php

Vous devriez tomber sur une page similaire. https://assets.digitalocean.com/articles/lamp_debian10/phpinfo_debian10_lamp.png

Clonage du projet et pull du site

  1. se positionner dans le dossier
  2. faire un git clone du projet
  3. avec un sous dossier contenant le code vous devrez changer dans les paramètre apache le chemin de fichier

$ sudo nano /etc/apache2/sites-available/webelweiss.diduno.education.conf

changer en DocumentRoot /var/www/your_domain/dossier

  1. Pour pull le site vous devez vous positionner dans le dossier et faire un git pull

Commandes utiles

Pour trouver la configuration de apache:

$ sudo nano /etc/apache2/sites-available/webelweiss.diduno.education.conf

Trouver les erreurs apache :

$ tail -f /var/log/apache2/error.log