Exemple de docker amb Apache, PHP i MariaDB

De binefa.com
Salta a la navegació Salta a la cerca

Accés al docker de la base de dades MariaDB

Si el nom del vostre docker MariaDB és lemp-mariadb-1:

docker exec -it lemp-mariadb-1 bash -l

Podem saber la IP interna de la base de dades:

root@ab445bde0f6e:/# ip a

Us ha de sortir una IP similar a 172.18.0.2, potser amb el darrer número canviat

Per accedir a la base dades:

docker exec -it lemp-mariadb-1 bash -l

Creeu la taula amb la que voleu treballar:

MariaDB [(none)]> CREATE DATABASE aula311;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| aula311            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.002 sec)

MariaDB [aula311]> exit
Bye

Codi 00_connect.php per provar l'accés a la base de dades

<!doctype html>
<HTML lang="ca">
<HEAD>
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
  <TITLE>Connexió a la base de dades</TITLE>
</HEAD>
<BODY>
<?php
$prg = "00_connect.php";
// Example (PDO) at https://www.w3schools.com/php/php_mysql_connect.asp
$servername = "172.18.0.2"; // docker inspect lemp-mariadb-1 | grep IPAddress
$username = "root"; // Poseu un usuari de la BD en comptes de root 
$password = "fjeclot"; 

try {
 $conn = new PDO("mysql:host=$servername;dbname=aula311", $username, $password);
 // set the PDO error mode to exception
 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "Connectat a la base de dades.";
} catch(PDOException $e) {
 echo "No es pot connectar. Motiu: " . $e->getMessage();
}
?>
</BODY>
</HTML>

Podeu accedir-hi anant a http://localhost/00_connect.php