-
Notifications
You must be signed in to change notification settings - Fork 0
Documentation du service WEB
Le contenu de notre service web contient les fichiers principale suivante:
-docker-compose.yml
version: "3.3"
services:
server_web:
build:
context: ./web
dockerfile: Dockerfile
ports:
- "80:80"
- "443:443"
volumes:
- ./web/www/:/var/www/
- ./web/Sites-available/:/etc/apache2/sites-available/
- ./web/apache2.conf:/etc/apache2/apache2.conf
container_name: web_container
database:
build:
context: ./DB
dockerfile: Dockerfile
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
volumes:
- ./DB/db.sql/:/data/
environment:
MYSQL_ROOT_PASSWORD: MESEPHEC
container_name: db-container
On a utilisé le docker compose Docker pour faciliter le déploiement et la gestion de nos sites sur conteneurs.
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ServerSignature Off
ServerTokens Prod
ServerName 127.0.0.1
Ils ont organisés de la manière suivante :
- Le fichier sites-available contient les fichiers de configuration des sites disponible
- Le fichier sites-enabled contient les liens symbolyques vers les configurations, dans site-available, des sites activés
Il se trouve 2 fichiers qui représente 2 sites qui sont héberger dans le serveur
- www.conf : qui est le serveur virtuel des clients disponible sur www.mmes-4.ephec-ti.be
- b2b.conf : qui est le serveur B2B disponible sur b2b.mmes.ephec-ti.be
<VirtualHost *:80>
ServerAdmin aymar@students.ephec.be
ServerName b2b.mmes-4.ephec-ti.be
DocumentRoot /var/www/b2b/
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/b2b/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
AddType application/x-httpd-php .php
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin aymar@students.ephec.be
ServerName www.mmes-4.ephec-ti.be
DocumentRoot /var/www/html
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/>
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>
Pour demarrer le service web il faut applique la commande suivante:
docker compose up -d
Pour se connecter dans le conteneur du service, il faut taper cette commande:
docker exec -it web_container /bin/bash
Pour verifier le fonctionnement des 2 sites, il faut utiliser la commande suivante:
links https://www.mmes-4.ephec-ti.be
| commandes | Description |
|---|---|
VirtualHost *:80 |
Les connexions sont permises sur n'importe quelle adresse IP serveur (*) sur le port 80. |
ServerName |
C'est nom de notre domaine qui est b2b.mmes-4.ephec-ti.be et www.mmes-4.ephec-ti.be |
DocumentRoot |
C'est la directive d'où se trouve notre site |
Directory |
spécification des règles du répertoire |
AllowOverride all |
Il est possible d'inclure une configuration personnalisée via un fichier .htaccess. |
Allow from all |
Autorisation de connection sur n'importe quel réseau |
ErrorLogcustomLog
|
Il convient d'avoir des logs séparés pour chaque hôte virtuel, afin de ne pas mélanger toutes les informations. |
- Déplacer vous dans le dossier /etc/apache2/ et modifier le fichier apache2.conf
cd /etc/apache2
nano apache2.conf
- Mettre à jour le conteneur et Redemarrer le service apache2
sudo apt update && sudo apt upgrade
service apache2 restart
Mettre en place une base de donnée et l'insertion des données dans la table
mysql -u woodytoys -h localhost -p db_woody
- procedure pour mettre en place la DB et table
CREATE USER 'woodytoys'@'ipaddress' IDENTIFIED BY 'MESEPHEC';
CREATE DATABASE db_woody;
GRANT ALL PRIVILEGES ON db_woody.* to 'woodyToys'@'ipaddress';
FLUSH PRIVILEGES;
USE db_woody;
create table woody(
id INTEGER NOT NULL AUTO_INCREMENT,
Name CHAR(50) NOT NULL,
Price DECIMAL(8,2) NOT NULL,
CONSTRAINT pk_woody PRIMARY KEY(id)
);
INSERT INTO woody (name,price)
VALUES ('toy en bois' , 15), ('Robot de l espace' , 16);
- Pour le site www
Rajouter les fichiers de la page dans le dossier /html
- Connecter vous au conteneur docker
docker exec -it web_container /bin/bash
- Déplacer vous dans le dossier /var/www/html et copier les nouveau fichier de la page
cd /var/www/html
cp new_file.html
- Pour le site B2B Rajouter les fichiers de la page dans le dossier /B2B
- Connecter vous au conteneur docker
docker exec -it web_container /bin/bash
- Déplacer vous dans le dossier /var/www/html et copier les nouveau fichier de la page
cd /var/www/b2b
cp new_file.html
En cas de dysfonctionnement, voici les éléments à observer pour trouver des informations de debug :
-
Il faut faire une vérification dans les logs qui se trouve dans le répertoire
cd var/log/apache2.
On trouve dans ce repertoire les fichiers: -
access.log
-
error.log
-
other_vhosts_access.log
-
Procédure de test 1 : Taper la commande ex:
docker exec -it web_container /bin/bashpour ce connecter sur le container du Web. Si résultatError response from daemon: Container 01faaa3dc83895bcbc475d47c9f8a1fdcd086390d0f334deb4d5954d6bf61da2 is not running: Le problème vient du container qui n'est pas active, sinon, le problème ailleurs. -
Procédure de test 2 : Taper la commande
ping www.mmes-4.ephec-ti.bepour tester si on arrive à joindre la service. Si résultatLa requête Ping n’a pas pu trouver l’hôte www.mmes-4.ephec-ti.be. Vérifiez le nom et essayez à nouveau.s'affiche dans le terminal c'est qu'il n'arrive pas à trouver le nom du hôte : Le problème vient dans les fichiers de configuration, sinon, le problème ailleurs.
- Les fichiers de configuration des pages ne sont pas configurés correctement. => La page requise n'apparaît pas.
- Oublier de préciser le dossier dans lequel sont situés les fichiers HTML d'un site particulier => affiche la page HTML par défaut qui n'est pas celle que vous voulez.
- Analyse service DNS
- Etat des configurations du service DNS
- Documentation du service DNS
- Sécurisation du service DNS
- Analyse service WEB
- Etat des configurations du service WEB
- Documentation du service WEB
- Sécurisation du service WEB
- Analyse service MAIL
- Etat des configurations du service MAIL
- Documentation du service MAIL
- Sécurisation du service MAIL
- Analyse service Interne
- Etat des configurations du service Interne
- Documentation du service Interne
- Sécurisation du service Interne