WEB PUBLIQUE - a-kalin0/Admin-Projet-CAA GitHub Wiki
Notre conteneur pour le web publique contient les fichiers de configuration suivants : Dockerfile, apache2.conf, b2b.conf, index.html et index.php.
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.
<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>
<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>
<!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.
<?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.
Voir : DOCKER-COMPOSE
- Affichage de la page "www.l1-1.ephec-ti.be"
- Affichage de la page "b2b.li-1.ephec-ti.be"
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
- 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