viernes, 20 de junio de 2025

Montar los archivos .conf desde /home/docker_apache2/ al contenedor. Montar /home para acceder a los public_html de los usuarios. Configurar Apache para incluir esos .conf y servir los sitios.

 

✅ Objetivos

  • Montar los archivos .conf desde /home/docker_apache2/ al contenedor.
  • Montar /home para acceder a los public_html de los usuarios.
  • Configurar Apache para incluir esos .conf y servir los sitios.



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


Respuesta

Perfecto. Si tus archivos de configuración .conf están en /home/docker_apache2/ y quieres que Apache dentro del contenedor sirva contenido desde /home/usuarioXX/public_html, aquí tienes los pasos detallados para lograrlo:


✅ Objetivo

  • Montar los archivos .conf desde /home/docker_apache2/ al contenedor.
  • Montar /home para acceder a los public_html de los usuarios.
  • Configurar Apache para incluir esos .conf y servir los sitios.

🧾 docker-compose.yml actualizado

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_apache2:/usr/local/apache2/conf/sites  # Monta los .conf
    command: >
      sh -c "echo 'IncludeOptional conf/sites/*.conf' >> /usr/local/apache2/conf/httpd.conf &&
             httpd-foreground"

📁 Estructura esperada

/home/
├── usuario1/public_html/index.html
├── usuario2/public_html/index.html
├── usuario3/public_html/index.html
└── docker_apache2/
    ├── usuario1.conf
    ├── usuario2.conf
    └── usuario3.conf

🧾 Ejemplo de archivo .conf

Archivo: /home/docker_apache2/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.).


🔐 Permisos necesarios

En el host, asegúrate de que Apache pueda acceder a los archivos:

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

🧪 (Opcional) Agrega dominios locales

Edita /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

🚀 Inicia el contenedor

Desde el directorio donde esté tu docker-compose.yml:

docker-compose up -d

¿Te gustaría que te genere un script para automatizar la creación de .conf, asignación de permisos y reinicio del contenedor?

No hay comentarios:

Publicar un comentario