domingo, 23 de marzo de 2025

Top 5 de la semana

Artículos relacionados

Curso comprimido de Docker para crear un ecosistema de contenedores con PHP 8.0, MySQL y Apache

1. ¿Qué es Docker?

Docker es una plataforma que permite empaquetar aplicaciones y todas sus dependencias en contenedores, que son como máquinas virtuales ligeras. Esto garantiza que la aplicación funcione de la misma manera, independientemente del entorno.

2. Instalación de Docker

Primero, debes instalar Docker en tu sistema. Sigue las instrucciones según tu sistema operativo en la página oficial de Docker.

3. Configurar el proyecto

Crea una carpeta para tu proyecto, por ejemplo, docker-php-mysql, y dentro de esta carpeta, crea los siguientes archivos:

  • Dockerfile: Define la configuración de PHP y Apache.
  • docker-compose.yml: Configura los servicios (PHP, MySQL, Apache).
  • php.ini: Configura PHP si necesitas cambiar valores predeterminados.

4. Crear el archivo Dockerfile

Este archivo se encargará de configurar PHP y Apache.

# Imagen base con PHP 8.0 y Apache
FROM php:8.0-apache

# Instalación de extensiones de PHP
RUN docker-php-ext-install pdo pdo_mysql mysqli

# Copiar el archivo php.ini personalizado (opcional)
COPY php.ini /usr/local/etc/php/

# Habilitar mod_rewrite de Apache
RUN a2enmod rewrite

# Configurar el directorio de trabajo
WORKDIR /var/www/html

5. Crear el archivo docker-compose.yml

Este archivo es el corazón de nuestro ecosistema, que coordina los contenedores PHP, Apache y MySQL.

version: '3.8'

services:
  php-apache:
    build: .
    container_name: php-apache
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:5.7
    container_name: mysql-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: my_database
      MYSQL_USER: user
      MYSQL_PASSWORD: user_password
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - "3306:3306"

volumes:
  db_data:

6. Configurar el archivo php.ini (opcional)

Si deseas personalizar la configuración de PHP, puedes crear un archivo php.ini en la misma carpeta. Por ejemplo:

memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M

7. Estructura de carpetas

Tu proyecto debería tener la siguiente estructura:

docker-php-mysql/
│
├── Dockerfile
├── docker-compose.yml
├── php.ini
└── src/                # Aquí va el código PHP que quieras ejecutar

8. Iniciar los contenedores

Desde la línea de comandos, navega a la carpeta de tu proyecto y ejecuta el siguiente comando:

docker-compose up -d

Esto creará e iniciará los contenedores en segundo plano. Para detener los contenedores, puedes usar:

docker-compose down

9. Acceder a la aplicación

Abre tu navegador y ve a http://localhost:8080. Aquí deberías ver el contenido de tu carpeta src/.

10. Conectar PHP con MySQL

Dentro de tu código PHP en la carpeta src/, puedes conectarte a la base de datos MySQL utilizando las credenciales que definiste en el archivo docker-compose.yml:

$dsn = 'mysql:host=db;dbname=my_database';
$username = 'user';
$password = 'user_password';

try {
    $pdo = new PDO($dsn, $username, $password);
    echo "Conexión exitosa a la base de datos.";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}

11. Conclusión

Con estos pasos, has creado un ecosistema de contenedores con Docker que incluye PHP 8.0, Apache y MySQL. Ahora puedes desarrollar tus aplicaciones PHP sin preocuparte por las configuraciones del entorno de desarrollo.

Jordi Morillo
Jordi Morillohttps://www.programador-web.com
Soy un programador PHP Senior con más de 20 años de experiencia en desarrollo web y administración de sistemas Linux, especializado en Symfony y metodologías ágiles como Scrum. He trabajado con tecnologías como MySQL, MongoDB y WordPress, y siempre busco nuevas oportunidades para seguir aprendiendo y aplicando mis conocimientos.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Artículos populares