Skip to content
Snippets Groups Projects
Commit f362def9 authored by MENACER Mohamed's avatar MENACER Mohamed
Browse files

28 edition

parent d7385ae0
No related branches found
No related tags found
No related merge requests found
Pipeline #47317 failed
Bonjour
# Utiliser une image PHP avec Apache
FROM php:8.0-apache
# Installer l'extension MySQLi
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
# Copier les fichiers du projet
COPY . /var/www/html/
# Exposer le port 80
EXPOSE 80
<?php
$servername = "db";
$username = "user";
$password = "password";
$database = "test_db";
// Connexion à MySQL
$conn = new mysqli($servername, $username, $password, $database);
// Vérifier la connexion
if ($conn->connect_error) {
die("Échec de la connexion : " . $conn->connect_error);
}
echo "Connexion réussie à MySQL ! 🚀";
// Fermer la connexion
$conn->close();
?>
FROM php:7.4-apache
# Installer les extensions PHP nécessaires
RUN docker-php-ext-install mysqli pdo pdo_mysql
# Activer les modules Apache
RUN a2enmod rewrite
# Copier les fichiers du projet
COPY src/ /var/www/html/
# Donner les permissions à Apache
RUN chown -R www-data:www-data /var/www/html
EXPOSE 80
CMD ["apache2-foreground"]
<?php
session_start();
if (!isset($_SESSION["loggedin"])) {
header("Location: index.php");
exit;
}
include "db.php";
$query = "SELECT name FROM cars";
$result = $conn->query($query);
?>
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h2>Bienvenue, Admin !</h2>
<h3>Liste des voitures :</h3>
<ul>
<?php while ($row = $result->fetch_assoc()): ?>
<li><?php echo $row["name"]; ?></li>
<?php endwhile; ?>
</ul>
<a href="logout.php">Déconnexion</a>
</body>
</html>
<?php
$host = "db";
$user = "root";
$password = "rootpassword";
$database = "car_database";
// Connexion à la base de données
$conn = new mysqli($host, $user, $password, $database);
// Vérifier la connexion
if ($conn->connect_error) {
die("Erreur de connexion: " . $conn->connect_error);
}
?>
<?php
session_start();
include 'db.php'; // Vérifie qu'il n'affiche rien
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
if ($username == "admin" && $password == "admin123") {
$_SESSION['loggedin'] = true;
header("Location: dashboard.php");
exit(); // Toujours ajouter `exit()` après `header()`
} else {
$error = "Identifiants incorrects";
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Connexion</title>
</head>
<body>
<h2>Connexion</h2>
<form method="post">
<label>Nom d'utilisateur :</label>
<input type="text" name="username" required><br>
<label>Mot de passe :</label>
<input type="password" name="password" required><br>
<button type="submit">Se connecter</button>
</form>
<?php if (isset($error)) echo "<p style='color:red;'>$error</p>"; ?>
</body>
</html>
<?php
session_start();
session_destroy();
header("Location: index.php");
exit;
?>
body {
font-family: Arial, sans-serif;
text-align: center;
}
form {
margin-top: 50px;
}
input, button {
display: block;
margin: 10px auto;
padding: 10px;
}
CREATE DATABASE IF NOT EXISTS car_database;
USE car_database;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE TABLE cars (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
INSERT INTO users (username, password) VALUES ('admin', MD5('admin123'));
INSERT INTO cars (name) VALUES
('Toyota Corolla'),
('Honda Civic'),
('Ford Mustang'),
('Chevrolet Camaro'),
('Tesla Model 3'),
('BMW M3'),
('Audi R8'),
('Mercedes-Benz C-Class'),
('Volkswagen Golf'),
('Nissan GT-R');
version: '3.8'
services:
web:
build: ./app # Assure-toi que ce chemin est correct !
container_name: php_app
image: php:7.4-apache # Utilise une image avec Apache pour exposer un serveur web
backend:
build: ./backend
container_name: backend_app
environment:
- DB_HOST=db
- DB_USER=root
- DB_PASSWORD=rootpassword
- DB_NAME=car_database
volumes:
- ./backend/src:/var/www/html
ports:
- "8000:80" # Expose le port 80 du conteneur sur le port 8080 de l'hôte
- "8000:80"
depends_on:
- db # Assure-toi que le conteneur `db` est prêt avant de démarrer `web`
- db
networks:
- dev_network # Réseau personnalisé
- app_network
nginx:
build: ./nginx
container_name: nginx
ports:
- "80:80"
volumes:
- ./backend/src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- backend
networks:
- app_network
db:
image: mysql:5.7
container_name: mysql_db_dev
restart: always
container_name: db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306" # Expose le port 3306 pour MySQL
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: car_database
volumes:
- ./database/init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- dev_network # Réseau personnalisé
- app_network
networks:
dev_network:
driver: bridge # Utiliser un réseau `bridge` personnalisé
app_network:
driver: bridge
FROM nginx:latest
# Copier la configuration Nginx
COPY default.conf /etc/nginx/conf.d/default.conf
server {
listen 80;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass backend_app:80;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment