Instalar apache, php y mariadb
Requisitos
- Docker Engine
- Nginx proxy manager
- Un dominio/subdominio
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