Skip to content

Etat des configurations du service web

JarodEphec edited this page Aug 25, 2022 · 9 revisions

Etat des configurations du service web

Responsable : Jarod Boulanger-Flémal

Statut de l'étape : en attente de validation

Site statique : https://www.woodytoys.store

Site dynamique : https://b2b.woodytoys.store:8443

Les fichiers de configuration

L'agencement des fichiers

Screenshot_20220824_135938

Le fichier WEB contient deux fichiers, le fichier static pour le site www.woodytoys.store et le fichier dynamic pour le site b2b.woodytoys.store. Cette séparation des deux sites permet de ne pas s’embrouiller lors de la création des dockers via leurs Dockerfile respectif. Comme cela, pas besoin de mettre le chemin absolue de chaque fichier pour que le Dockerfile les copies, ils sont tous dans la même directory.

Docker

Il y a trois containers docker. Screenshot_20220824_142106

httpd

httpd est l'image officiel docker pour apache2, je l'utilise pour le site statique.

Pour le Docker files, je garde la configuration par défaut.

FROM httpd
COPY . /usr/local/apache2/htdocs/ ;copie tout les fichiers présent dans le même dossier que le docker file et la "working directory" de httpd.

Une fois compiler je l'exécute avec la commande:

sudo docker run -dit --name static  -p 80:80 static
  • -dit permet au container de s'éxecuter en arrière plan et est recommencée par la documentation de httpd.
  • -p permet au container de tout recevoir depuis le port 80 de la machine host.

php

php est l'image officiel docker pour php, je l'utilise pour le site dynamique avec le tag apache pour pouvoir l'utiliser en tant que serveur web. Pour le Docker files, je garde la configuration par défaut mais j'installe l’extension mysqli pour pouvoir utiliser mysql avec php.

FROM php:7.2-apache
RUN docker-php-ext-install mysqli ;installe l'extension pour pouvoir utiliser mysql avec php.
COPY . /var/www/html/ ;copie tout les fichiers présent dans le même dossier que le docker file et la "working directory" de php-apache. 

Une fois compiler je l'exécute avec la commande:

sudo docker run -d -p 8080:80 --name php php
  • -d permet au container de s’exécuter en arrière plan.
  • -p permet au container de rediriger le port 8080 de la machine vers le port 80 du container.

mysql

Pour mysql je n'utilise pas de Dockerfile, j'exécute directement la commande:

sudo docker run -v "$PWD/data":/var/lib/mysql --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=*mot de passe* -d mysql
  • -v permet au container de créer un volume qui lie le fichier /data, présent dans la directory de l'utilisateur, au fichier /var/lib/mysql du container.
  • -d permet au container de s’exécuter en arrière plan.
  • -p permet au container de tout recevoir depuis le port 3306 de la machine host.
  • -e permet au container de recevoir une variable d’environnement, dans ce cas MYSQL_ROOT_PASSWORD permet d'initier le mot de passe pour se connecter en root à mysql.

Le nom de domaine

Étant donné que je n'ai plus accès a notre DNS, j'ai acheté le nom de domaine woodytoys.store acheté chez ovhcloud.com.

Voici la configuration des redirections : Screenshot_20220824_150655

mysql

Pour le serveur mysql j'ai créé une simple base de donnée, voici son schéma :

Screenshot_20220824_151048

Pour se connecter depuis le serveur php j'ai créé un utilisateur remote, le code de création est :

CREATE USER 'remote'@'%';
GRANT Select ON toys.* TO 'remote'@'%';
GRANT Insert ON toys.* TO 'remote'@'%';

Clone this wiki locally