Skip to content

Documentation_Web

Abderrachid BELLAALI edited this page Apr 27, 2022 · 2 revisions

Documentation Web Public

Responsable : Rachid

Statut de l'étape : en cours d'évaluation

C'est quoi un VirtualHost ?

Le principe des Serveurs Virtuels consiste à faire fonctionner un ou plusieurs serveurs Web (comme www.company1.example.com et www.company2.example.com) sur une même machine. Les serveurs virtuels peuvent être soit "par-IP" où une adresse IP est attribuée pour chaque serveur Web, soit "par-nom" où plusieurs noms de domaine se côtoient sur des mêmes adresses IP. L'utilisateur final ne perçoit pas qu'en réalité c'est le même serveur physique.

Fichier de configuration

Il faut configurer les VirtualHosts, car nous avons 2 sites : le site vitrine et le b2b. Pour ce faire, nous avons créé 2 fichiers avec une configuration pour chaque site.

Le Serveur Virtuel du site vitrine :

<VirtualHost *:80>
   ServerAdmin s.kinet@students.ephec.be
   ServerName www.m1-5.ephec-ti.be
   DocumentRoot /var/www/

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

Le Serveur Virtuel du site b2b :
<VirtualHost *:80>
	ServerAdmin s.kinet@students.ephec.be
    ServerName b2b.m1-5.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
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
Commande Description
ServerAdmin L'administrateur de ce serveur
ServerName Le nom de domaine
DocumentRoot La racine du site, c'est là où tous les fichier concernant le site pointe.
Options FollowSymLinks
AllowOverride all
avoir un lien symbolique dans votre racine Web pointant vers un autre fichier/répertoire.
AllowOverride all L'administrateur de ce serveur
ErrorLog & CustomLog Autoriser .htaccessles fichiers à remplacer tous les paramètres de configuration définis dans apache2.conf
Order allow,deny Par défaut, l'accès à un répertoire est interdit.
allow from all Autoriser les connexions depuis n'importe quel réseau.
ErrorLog &CustomLog Affichage des Logs

Base de donées

dossier "init_db"

Ce dossier contient initialement un fichier db.sql. Ce fichier contient toutes les commandes SQL afin d'initialiser la base de données avec :

  • un nouvel utilisateur
  • un schéma (database)
  • une table
  • des données

C'est dans ce fichier que les configurations initiales du schéma de la base de données doivent être faites !

procédure d'installation

prérequis : le dossier contenant le fichier docker-compose.yml ainsi que tous les dossier de configuration des différents services devant être installé sur la machine, doit être présent sur la dite machine.

  1. Naviguer en ligne de commande jusqu'au dossier parent du fichier docker-compose.yml .
  2. Lancer la commande suivante :
    docker-compose up -d 
  3. Vérifier que tous les services ont été créés et qu'ils tournent :
    docker ps -a 

Maintenance

Pour la création manuelle de table ou l'ajout de données à un table :

2. Manuellement écrire les commandes SQL dans le CLI (Command Line interface) de la base de données

Voici un exemple sur base de nos configs actuels :

# Ouvrir un terminal interactif dans le conteneur docker de la BDD
docker exec -it mysql-db bash

# Se connecter a mysql
root@xxx> mysql -u woody_admin -p
root@xxx Enter password:> admin

## Exécuter vos commandes sql :

# indiquer la db sur laquelle exécuter les futures commandes 
mysql> use woodytoys_db;

# création d'une table :
mysql> create table XXX (
        -> id integer not null,
        -> other char(10)
        -> );

# ajout de données dans une table :
mysql> insert into toys (toyName,toyPrice) values
        -> ('Chien',35.59),
        -> ('Yemak',52.99),
        -> ('Raca dbabak',80.52)
        -> ('ganfood',80.52);

## Commandes utiles:
mysql> show databases;
mysql> show tables;
mysql> select * from mysql.user;

Validation

Il existe deux moyens faciles de vérifier que la base de données fonctionne correctement :

1. Depuis une machine faisant partie de l'intranet :

Connectez vous en ssh sur un des VPS et exécutez la commande suivante :

curl erp.intranet.m1-5.ephec-ti.be

En l'absence d'erreurs dans le code HTML, la connexion à la base de données est réussie.

2. Depuis l'extérieur en étant revendeurs b2b :

En tant que revendeur b2b, visitez b2b.m1-5.ephec-ti.be. En l'absence d'erreur, la connexion à la base de données s'est bien déroulée.

Troubleshooting

1. Le conteneur n'a pas été créé.

Une erreur est sans doute survenue au cours de la création de l'image. Relancer l'installation en exécutant la commande suivante :

docker-compose up # ⚠️ pas de -d !

Cela vous permet d'obtenir les logs de création des images et du lancement des services. Il faut simplement les analyser pour cerner le problème.

Web externe (zone DMZ)

Rien de plus simple, il suffit d'aller dans son navigateur préféré, et d'entrer les URL.

Clone this wiki locally