y despues como hago para que los sitios que cada usuario tiene en /home/usuario1/public_html sean visibles desde el docker_Apache2 sean vistos desde el contenedor de apache2
Para que los sitios web que cada usuario tiene en su carpeta /home/usuario1/public_html sean visibles desde el contenedor docker_apache2, necesitas hacer dos cosas clave:
✅ 1. Montar las carpetas public_html dentro del contenedor
Ya que Docker no permite usar comodines (*) directamente en volumes, la forma más práctica es montar todo el directorio /home dentro del contenedor.
En tu docker-compose.yml:
volumes:
- /home:/home:ro
Esto hace que el contenedor pueda acceder a:
/home/usuario1/public_html
/home/usuario2/public_html
...
✅ 2. Configurar Apache para servir esas carpetas
Tienes dos opciones:
🔹 Opción A: Usar AliasMatch (dinámico, recomendado para muchos usuarios)
En tu archivo de configuración de Apache (por ejemplo, httpd.conf o empresaX.conf):
AliasMatch ^/([^/]+)(/.*)?$ /home/$1/public_html$2
<DirectoryMatch "^/home/[^/]+/public_html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</DirectoryMatch>
Esto permite que accedas a los sitios así:
http://localhost/usuario1 → /home/usuario1/public_html
http://localhost/usuario2 → /home/usuario2/public_html
🔹 Opción B: Crear un VirtualHost por usuario (más control, pero más trabajo)
Ejemplo de archivo /home/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>
Y asegúrate de que esté montado en /etc/apache2/sites-available/ dentro del contenedor y que tu httpd.conf incluya:
IncludeOptional /etc/apache2/sites-available/*.conf
🔐 Permisos
Asegúrate de que los archivos sean legibles por Apache:
chmod -R o+r /home/*/public_html
🚀 Resultado
Con esto, los sitios de cada usuario serán accesibles desde el contenedor Apache, ya sea por rutas como:
http://localhost/usuario1- o por dominios personalizados como
http://usuario1.local(si configuras DNS o/etc/hosts).
¿Quieres que te genere automáticamente un archivo de configuración para un usuario específico (usuario1.conf) y actualice tu docker-compose.yml?
No hay comentarios:
Publicar un comentario