viernes, 20 de junio de 2025

Montar los archivos de configuración desde /home/docker_project/ y permitir que Apache dentro del contenedor sirva contenido desde /home/usuarioXX/public_html.

 



Permitir que el contenedor docker_apache2 sirva contenido web desde los directorios /home/usuarioXX/public_html del host, muestrame los pasos sabiendo que tengo los archivo .conf el el /home/docker_project, por ejemplo: /home/docker_project/usuario1.conf, /home/docker_project/usuario2.conf, /home/docker_project/usuario3.conf


Respuesta

Perfecto. Si ya tienes los archivos .conf de los VirtualHosts en el directorio /home/docker_project/, aquí tienes los pasos detallados para que el contenedor docker_apache2 sirva contenido desde los directorios /home/usuarioXX/public_html.


✅ Objetivo

Montar los archivos de configuración desde /home/docker_project/ y permitir que Apache dentro del contenedor sirva contenido desde /home/usuarioXX/public_html.


🧩 Paso a Paso

🔹 1. Estructura esperada

/home/
├── usuario1/public_html/
├── usuario2/public_html/
├── usuario3/public_html/
└── docker_project/
    ├── usuario1.conf
    ├── usuario2.conf
    └── usuario3.conf

🔹 2. docker-compose.yml

Crea o edita tu archivo docker-compose.yml así:

version: '3.8'

services:
  apache2:
    image: httpd:2.4
    container_name: docker_apache2
    ports:
      - "80:80"
    volumes:
      - /home:/home:ro  # Monta los directorios de usuarios
      - /home/docker_project:/usr/local/apache2/conf/sites  # Monta los .conf
    command: >
      sh -c "echo 'IncludeOptional conf/sites/*.conf' >> /usr/local/apache2/conf/httpd.conf &&
             httpd-foreground"

🔸 Esto asegura que Apache cargue todos los .conf desde /usr/local/apache2/conf/sites.


🔹 3. Verifica los archivos .conf

Ejemplo de /home/docker_project/usuario1.conf:

<VirtualHost *:80>
    ServerName usuario1.local
    DocumentRoot /home/usuario1/public_html

    <Directory /home/usuario1/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

🔁 Repite esto para cada usuario (usuario2, usuario3, etc.).


🔹 4. Permisos en el host

Asegúrate de que Apache pueda leer los archivos:

chmod -R o+r /home/*/public_html
chmod -R o+x /home/* /home/*/public_html

🔹 5. Agrega dominios locales a /etc/hosts

En tu máquina local:

sudo nano /etc/hosts

Agrega:

127.0.0.1 usuario1.local
127.0.0.1 usuario2.local
127.0.0.1 usuario3.local

🔹 6. Inicia el contenedor

Desde /home/docker_project/ o donde esté tu docker-compose.yml:

docker-compose up -d

🔹 7. Verifica en el navegador

Abre:

  • http://usuario1.local
  • http://usuario2.local
  • http://usuario3.local

¿Quieres que te genere un script para automatizar la creación de nuevos .conf y agregar dominios al /etc/hosts?

No hay comentarios:

Publicar un comentario