WEB PUBLIQUE - a-kalin0/Admin-Projet-CAA GitHub Wiki

Web Publique

Notre conteneur pour le web publique contient les fichiers de configuration suivants : Dockerfile, apache2.conf, b2b.conf, index.html et index.php.


Dockerfile

FROM php:7.4-apache

MAINTAINER 2TL1-1

RUN apt-get update && \
    apt-get install -y libzip-dev libicu-dev libonig-dev zlib1g-dev mariadb-client && \
    docker-php-ext-install mysqli pdo pdo_mysql && \
    docker-php-ext-enable mysqli && \
    a2enmod rewrite
RUN apt update -y
RUN apt install net-tools -y
RUN apt install nano -y
RUN apt install iputils-ping -y
RUN apt install traceroute -y
RUN apt install dnsutils -y
RUN apt install traceroute -y
RUN apt install links -y
RUN apt install tcpdump -y

COPY apache2.conf /etc/apache2/sites-available/apache2.conf
COPY b2b.conf /etc/apache2/sites-available/b2b.conf

RUN a2ensite apache2.conf
RUN a2ensite b2b.conf

COPY . /var/www/html
COPY ./site_vitrine /var/www/html/site_vitrine
COPY ./b2b /var/www/html/b2b
  • Le dockerfile est assez similaire au dockerfile du serveur web interne avec en plus l'installation des outils de test de base et le lancement des fichiers de configuration des sites vitrine et b2b.

b2b.conf

<VirtualHost *:80>
    ServerName b2b.l1-1.ephec-ti.be
    DocumentRoot /var/www/html/b2b

    ErrorLog ${APACHE_LOG_DIR}/b2b_error.log
    CustomLog ${APACHE_LOG_DIR}/b2b_access.log combined
</VirtualHost>

apache2.conf

<VirtualHost *:80>
    ServerName www.l1-1.ephec-ti.be
    DocumentRoot /var/www/html/site_vitrine

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

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Woodytoys</title>
</head>
<body>
    <h1>Bienvenue sur le site Vitrine de Woodytoys</h1>
</body>
</html>
  • Similaire au fichier index.html du serveur web interne.

index.php

<?php

// Connexion à la base de données
$servername = "172.20.1.6";
$username = "roott";
$password = "roott";
$dbname = "db";

$conn = new MySQLi($servername, $username, $password, $dbname);

// Vérification de la connexion
if ($conn->connect_error) {
  die("The connection failed: " . $conn->connect_error);
}

// Récupération des données de la table "inventory"
$sql = "SELECT * FROM inventory";
$result = $conn->query($sql);

// Affichage des données dans un tableau HTML
if ($result->num_rows > 0) {
  echo "<table>";
  echo "<tr><th>ID</th><th>Nom</th><th>Prix</th></tr>";
  while($row = $result->fetch_assoc()) {
    echo "<tr><td>" . $row["id"] . "</td><td>" . $row["name"] . "</td><td>" . $row["price"] . "</td></tr>";
  }
  echo "</table>";
} else {
  echo "0 résultats";
}

// Fermeture de la connexion
$conn->close();
?>
  • Similaire au fichier test.sql de la DB interne.

Lancement du conteneur

Voir : DOCKER-COMPOSE


Test de fonctionnement

  • Affichage de la page "www.l1-1.ephec-ti.be"

image

  • Affichage de la page "b2b.li-1.ephec-ti.be"

image


Maintenance WEB

Voici un petit guide de maintenance sur la partie web publique. Elle ressemble à celle sur le web interne.


  • Ajout / Modification / Suppression d'un site web

    • Créer un fichier HTML ou PHP, modifier ou supprimer le fichier actuellement utilisé
    • Modifier le Dockerfile en fonction des modifications, notamment les liens vers les fichiers

  • Troubleshooting

Les logs de apache se trouvent généralement dans /var/log/apache2/access.log. Utilisez des commandes comme grep, tail, ou less pour consulter et rechercher des erreurs spécifiques dans les logs. Si vous êtes sur docker desktop, les logs se trouvent dans un onglet dédié, vous pouvez voir les logs et les éventuelles erreurs pour chaque conteneurs


  • Mises à jour

    • Connectez-vous au VPS via SSH.
    • Mettez à jour la liste des paquets disponibles : sudo apt-get update.
    • Mettez à jour Apache2 spécifiquement : sudo apt-get install --only-upgrade apache2.
    • Redémarrez le service Apache pour appliquer les changements : sudo systemctl restart apache2.service ou sudo service apache2 restart

  • Erreurs fréquentes et solutions
  1. Problèmes d'affichage du site ou de la DB
  • Analyser l'erreur et aller vérifier dans les logs
  • Vérifier les liens de fichiers, les noms de fichiers, l'adressage IP et si les fichiers sont correctement écrits
⚠️ **GitHub.com Fallback** ⚠️