La pagina de inicio de un servidor http://xx.xx.xx.xx por medio de un contenedor de apache2 muestra lo que esta un host
/home/projects/Pagina_Inicio
En el servidor tengo usuarios con carpetas
/home/usuario1/public_html/
/home/usuario2/public_html/
/home/usuario3/public_html/
Las webs de cada usuario pueden ser vistas desde un navegador que escribe la direccion del servidor: http://xx.xx.xx.xx/usuario1
http://xx.xx.xx.xx/usuario2
http://xx.xx.xx.xx/usuario3
Por medio de virtual-hosts, donde los archivos .conf estan en la ruta:
/home/projects/docker_apache2/sites/
Para los usuarios los archivos virtual-host estan en:
/home/projects/docker_apache2/sites/usuario1.conf
/home/projects/docker_apache2/sites/usuario2.conf
/home/projects/docker_apache2/sites/usuario3.conf
Los archivos virtual-hosts tienen la forma:
<VirtualHost *:80>
ServerName usuario1
DocumentRoot /home/usuario1/public_html
<Directory /home/usuario1/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName usuario2
DocumentRoot /home/usuario2/public_html
<Directory /home/usuario2/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName usuario3
DocumentRoot /home/usuario3/public_html
<Directory /home/usuario3/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Crear los archivos dockerfile, docker-compose.yml y httpd.conf; bien documentados
Mostrarme que permisos debo dar en bash en el host
Mostrar como ejecutar los archivos de docker
El contenedor se ejecuta desde /home/projects/docker_apache2
La pagina de inicio de un servidor http://xx.xx.xx.xx por medio de un contenedor de apache2 muestra lo que esta un host /home/projects/Pagina_Inicio En el servidor tengo usuarios con carpetas /home/usuario1/public_html/ /home/usuario2/public_html/ /home/usuario3/public_html/ Las webs de cada usuario pueden ser vistas desde un navegador que escribe la direccion del servidor: http://xx.xx.xx.xx/usuario1 http://xx.xx.xx.xx/usuario2 http://xx.xx.xx.xx/usuario3 Por medio de virtual-hosts, donde los archivos .conf estan en la ruta: /home/projects/docker_apache2/sites/ Para los usuarios los archivos virtual-host estan en: /home/projects/docker_apache2/sites/usuario1.conf /home/projects/docker_apache2/sites/usuario2.conf /home/projects/docker_apache2/sites/usuario3.conf Los archivos virtual-hosts tienen la forma: ServerName usuario1 DocumentRoot /home/usuario1/public_html Options Indexes FollowSymLinks AllowOverride All Require all granted ServerName usuario2 DocumentRoot /home/usuario2/public_html Options Indexes FollowSymLinks AllowOverride All Require all granted ServerName usuario3 DocumentRoot /home/usuario3/public_html Options Indexes FollowSymLinks AllowOverride All Require all granted Crear los archivos dockerfile, docker-compose.yml y httpd.conf; bien documentados Mostrarme que permisos debo dar en bash en el host Mostrar como ejecutar los archivos de docker El contenedor se ejecuta desde /home/projects/docker_apache2
Aquí tienes todo lo necesario para configurar tu contenedor Apache2 con VirtualHosts, de forma manual, ya que no tengo permisos para escribir directamente en /home/projects.
📁 Estructura esperada
/home/projects/docker_apache2/
├── Dockerfile
├── docker-compose.yml
├── httpd.conf
└── sites/
├── usuario1.conf
├── usuario2.conf
└── usuario3.conf
🐳 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:
- /home/projects/Pagina_Inicio:/usr/local/apache2/htdocs/
- /home:/home
- ./sites/:/usr/local/apache2/conf/sites/
⚙️ 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 webmaster@localhost
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 archivos de configuración de VirtualHosts
Include conf/sites/*.conf
🧪 Ejemplo de archivo sites/usuario1.conf
<VirtualHost *:80>
ServerName usuario1
DocumentRoot /home/usuario1/public_html
<Directory /home/usuario1/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Repite lo mismo para usuario2.conf y usuario3.conf, cambiando el nombre y la ruta.
🔐 Permisos recomendados en el host
sudo chmod -R 755 /home/projects/docker_apache2
sudo chmod -R 755 /home/projects/Pagina_Inicio
sudo chmod -R 755 /home/usuario1/public_html
sudo chmod -R 755 /home/usuario2/public_html
sudo chmod -R 755 /home/usuario3/public_html
🚀 Cómo construir y ejecutar el contenedor
cd /home/projects/docker_apache2
docker-compose up --build -d
¿Quieres que te genere un archivo .zip con esta estructura lista para descargar y descomprimir en tu servidor?
No hay comentarios:
Publicar un comentario