Skip to main content

Instalar apache, php y mariadb

Requisitos

Instalación

Crear una carpeta para almacenar el contenedor de Docker mkdir -p docker/apache_server, dentro de esta carpeta creamos un archivo llamado docker-compose.yml con:

#apache php y sql

services:
  web:
    build: 
      context: .
      dockerfile: Dockerfile
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./public:/var/www/html
    networks:
      - my_network
    depends_on:
      - db

  db:
    image: mariadb:latest
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - my_network

volumes:
  db_data:

networks:
  my_network:
    driver: bridge

Crear Dockerfile para instalar los módulos de php.

# Usa la imagen base de PHP con Apache
FROM php:8.1-apache

# Instala las extensiones necesarias
RUN docker-php-ext-install mysqli

# Habilita mod_rewrite de Apache si es necesario
RUN a2enmod rewrite

Una vez creado ejecutar:

docker compose up -d

Crear el contenido de la pagina en la carpeta public.

Si te quieres conectar a la base de datos:

# Instalar cliente
sudo apt install mariadb-client
# Obtener la informacion del contenedor
sudo docker ps -a
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' id_contenedor_mariadb
# Conectarse
mysql -u usuario -p'password' -h ip