TUTOS.EU

Créer un serveur php mysql phpmyadmin avec Docker

Comment faire tourner php mysql et phpmyadmin avec Docker

Vérifier que Docker est bien installé avec

sudo apt install docker docker-compose
Lien vers le fichier : cliquez ici

Comme indiqué sur https://docs.docker.com/engine/install/linux-postinstall/
ou encore https://www.youtube.com/watch?v=_mwWxgfZ7Zc&t=806s
Pour que votre compte utilisateur possède les droits type 'root' sur docker, taper les commandes suivantes, puis se reloger pour prise en compte

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Lien vers le fichier : cliquez ici

Vérifier que docker fonctionne bien avec

docker run hello-world
Lien vers le fichier : cliquez ici

On va commencer par créer un répertoire dockerapp dans notre répertoire personnel.
On y fait un répertoire php qui contiendra ensuite les fichiers du site ainsi qu'un répertoire db pour les bases de données et un répertoire pour phpmyadmin

On va avoir besoin de customiser l'image de php pour déclarer mysqli (technique trouvé sur https://www.youtube.com/watch?v=_mwWxgfZ7Zc&t=824s),
aussi dans ce répertoire dockerapp on va créer un fichier dockerfile

cd ~
mkdir dockerapp
cd dockerapp
mkdir php
mkdir db
mkdir phpmyadmin
nano dockerfile
Lien vers le fichier : cliquez ici

Coller ce contenu dans le dockerfile de php

FROM php:7.3-apache
RUN apt-get update && apt-get upgrade -y
RUN docker-php-ext-install mysqli
EXPOSE 80
Lien vers le fichier : cliquez ici

Dans le répertoire php on va créer un fichier index.php
afin que le site affiche qqchose le moment venu.
Pour cela taper

nano ./php/index.php
Lien vers le fichier : cliquez ici

Y coller ceci

<?php
$host = 'db'; //Nom donné dans le docker-compose.yml
$user = 'myuser';
$password = 'monpassword';
$db = 'tutoseu';

$conn = new mysqli($host,$user,$password,$db);
if(!$conn) {echo "Erreur de connexion à MSSQL<br />";}
else{
        echo "Connexion à MSSQL ok<br />";
        mysqli_close($conn);
}

?>
Lien vers le fichier : cliquez ici

Maintenant on va créer un fichier docker-compose.yml
dans lequel on donnera nos instructions

nano docker-compose.yml
Lien vers le fichier : cliquez ici

Y Coller ce contenu

version: '3.3'

services:
 php:
  build:
   context: .
   dockerfile: dockerfile
  container_name: php73
  image: php:7.3-apache
  volumes:
   - ./php:/var/www/html/
  ports:
   - 80:80
Lien vers le fichier : cliquez ici

On peut déjà vérifier que php se lance en tapant

docker-compose up -d
Lien vers le fichier : cliquez ici

Le build doit se passer sans erreur et vous devez voir un conteneur php73

On va compléter le fichier docker-compose.yml
Pour éviter les erreurs on va le supprimer puis le recréer

rm docker-compose.yml
nano docker-compose.yml
Lien vers le fichier : cliquez ici

Y coller ceci

Noter que ./php correspond à un sous répertoire dont la position est relative au fichier docker-compose.yml

version: '3.3'

services:
 php:
  build:
   context: .
   dockerfile: dockerfile
  container_name: php73
  depends_on:
   - db
  image: php:7.3-apache
  volumes:
   - ./php:/var/www/html/
  ports:
   - 80:80
 db:
  container_name: mysql8
  image: mysql:8.0
  command: --default-authentication-plugin=mysql_native_password
  environment:
   MYSQL_ROOT_PASSWORD: tutoseu
   MYSQL_DATABASE: tutoseu
   MYSQL_USER: myuser
   MYSQL_PASSWORD: monpassword
  ports:
   - 3306:3306
 phpmya:
  image: phpmyadmin/phpmyadmin:latest
  container_name: phpmyadmin
  environment:
   PMA_ARBITRARY: 1
   PMA_HOST: db
   PMA_USER: myuser
   PMA_PASSWORD: monpassword
   UPLOAD_LIMIT: 20M
  ports:
   - 8899:80
Lien vers le fichier : cliquez ici

Prendre en compte les modifications en faisant de nouveau

docker-compose up -d
Lien vers le fichier : cliquez ici

Avec un navigateur, si vous accédez à l'ip de votre machine linux, vous devez voir s'afficher quelque-chose comme ci-dessous.
Pour récupérer l'ip de votre machine, voir https://www.tutos.eu/5699


Article(s) précédent(s)