sábado, 21 de junio de 2025

apache2 docker con virtualhosts

que lo pueda utilizar desde un contenedor docker /home/projects/docker_apache2. Crear los archivos dockerfile, docker-compose.yml y httpd.conf, mostrarme que permisos debo dar en bash en el host, y como ejecutar los archivos de docker, el contenedor se ejecuta desde /home/projects/docker_apache2. Adicionar el manejo con virtual-hosts, donde los archivos .conf estan en la ruta /home/rojects/docker_apache2/sites/, por ejemplo: /home/rojects/docker_apache2/sites/usuario1.conf /home/rojects/docker_apache2/sites/usuario2.conf /home/rojects/docker_apache2/sites/usuario3.conf


Respuesta

Parece que ocurrió un error al intentar crear los archivos porque la ruta /home/projects/docker_apache2/ no existe aún en el entorno de ejecución. Pero no te preocupes, aquí tienes todo lo que necesitas para hacerlo manualmente en tu sistema:


📁 Estructura de directorios esperada

/home/projects/docker_apache2/
├── Dockerfile
├── docker-compose.yml
├── httpd.conf
├── sites/
│   ├── usuario1.conf
│   ├── usuario2.conf
│   └── usuario3.conf
└── www/
    └── index.html (u otros archivos web)

🐳 Dockerfile

FROM httpd:2.4

# Copiar configuración principal
COPY httpd.conf /usr/local/apache2/conf/httpd.conf

# Copiar archivos de VirtualHosts
COPY sites/ /usr/local/apache2/conf/sites/

🧩 docker-compose.yml

version: '3.8'

services:
  apache2:
    build: .
    container_name: apache2_vhosts
    ports:
      - "80:80"
    volumes:
      - ./sites/:/usr/local/apache2/conf/sites/
      - ./www/:/usr/local/apache2/htdocs/

⚙️ httpd.conf

ServerRoot "/usr/local/apache2"
Listen 80

LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

User daemon
Group daemon

ServerAdmin you@example.com
ServerName localhost

DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

ErrorLog /proc/self/fd/2
LogLevel warn

# Incluir todos los VirtualHosts
Include conf/sites/*.conf

🛡️ Permisos recomendados en el host

mkdir -p /home/projects/docker_apache2/sites /home/projects/docker_apache2/www
chmod -R 755 /home/projects/docker_apache2

🚀 Cómo construir y ejecutar el contenedor

cd /home/projects/docker_apache2
docker-compose up --build -d

🧪 Ejemplo de archivo usuario1.conf

<VirtualHost *:80>
    ServerName usuario1.local
    DocumentRoot "/usr/local/apache2/htdocs/usuario1"

    <Directory "/usr/local/apache2/htdocs/usuario1">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /proc/self/fd/2
    CustomLog /proc/self/fd/1 combined
</VirtualHost>

¿Quieres que te genere un archivo .zip con toda esta estructura lista para descargar?

No hay comentarios:

Publicar un comentario