Mission 1 : WEB - SuperKumKum/SysAdmin-ll_Project GitHub Wiki

Installation de l'image Docker: Apache-PHP-MySQL

Installation

docker pull php:apache
docker pull mysql:latest

Création via un Docker-Compose

On créée un fichier: docker-compose.yml

# apache et php
# php:apache officiel
 php:
 image: nimmis/apache-php5
 container_name: apache-php
 ports:
  - 80:80
  - 443:443
 volumes:
  - /srv/docker/apache/conf:/etc/apache2
  - /srv/docker/apache/html:/var/www/html
  - /srv/docker/apache/logs:/var/log/apache2
  - /srv/docker/apache/ssl:/etc/ssl/certs/wt7
 links:
  - db

# sql
# mariadb
db:
image: mysql/mysql-server:5.6
container_name: db
environment:
  - MYSQL_ROOT_PASSWORD=rootPassword
  - MYSQL_USER=wt7
  - MYSQL_DATABASE=web_db
  - MYSQL_PASSWORD=password
ports:
  - 3306:3306

On lance notre Docker-Compose :
docker-compose up

Shell Access - Maintenance:

docker exec -it <apache> bash
docker exec -it <mysql> bash

Delete the exited containers

sudo docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs sudo docker rm

Arrêt et démarrage du docker

docker start/stop <apache>
docker start/stop <mysql>

Editer fichiers config

  • On rentre dans l'image Docker via la commande > docker exec

Configuration de Apache

Ajout des pages web dans les dossiers correspondants

On ajoute chaque sites correspondants dans un dossier spécifique pour la création des vHosts.

  • /var/www/www pour la page web.
  • /var/www/b2b pour la page b2b.
  • /var/www/intranet pour la page intranet.

Création d'hôtes virtuels

On créée un fichier basé sur 00_default.conf qui se trouve dans le dossier /etc/apache2/sites-available.

Contenu du fichier nommé sites_config.conf:

  • vHost pour la page web/www :

    <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.wt7.ephec-ti.be
    ServerAlias wt7.ephec-ti.be
    DocumentRoot /var/www/www
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

  • vHost pour la page b2b/php :

    <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName b2b.wt7.ephec-ti.be
    ServerAlias wt7.ephec-ti.be
    DocumentRoot /var/www/b2b
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

  • vHost pour la page intranet :

    <VirtualHost *:80>
    ServerName intranet.wt7.ephec-ti.be
    DocumentRoot /var/www/intranet
    <Directory /var/www/intranet>
    Allow from 151.80.119.151
    Deny from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

On utilise les options Allow from et Deny from pour restreindre l'accès au site.

Ajout d'une page spéciale en cas d'erreurs (403, 404)

403_forbidden

  • On a besoin de créer un fichier .htaccess dans le dossier contenant le site où l'on veut un page spéciale.
  • On créer ensuite une exception dans ce fichier ErrorDocument 403 /path/access/toPage.html

Configuration de MySQL

Il s'agit avant tout de la création d'une base de donnée en mode commande.

  • Il faut d'abord se connecter à MySQL via la commande : mysql -h localhost -u root -p
  • -h défini l'hôte, donc soit une NS ou une ip.
  • -u défini l'utilisateur, par défaut, root.
  • -p défini le password, inscrit plus tôt dans le Docker-Compose ou est videpar défaut.
  • On crée la base de données avec la commande :
    CREATE DATABASE db_wt7;
  • On crée une table avec la commande :
    CREATE TABLE db_Table (id tinyint(3), produits varchar(100), qte tinyint(3));
  • On ajoute des données à cette table avec la commande :
    INSERT INTO 'db_Table' VALUES (1, "Jouet en bois", 25);
  • Création d'un utilisateur ayant tous les droits sur la base de donnée :
    GRANT ALL PRIVILEGES ON db_Table.* TO user@localhost IDENTIFIED BY "mot_de_passe";
⚠️ **GitHub.com Fallback** ⚠️