Exemple de docker amb Apache, PHP i MariaDB
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
00_connect.php
<!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-php-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>