Crear los archivos dockerfile, docker-compose.yml y httpd.conf; bien documentados
Explicar que modulos se deben importar en httpd.conf para tener virtual-hosts con varios usuarios y paginas web que tiene carpetas en el host:
/home/usuario1/public_html/
/home/usuario2/public_html/
/home/usuario3/public_html/
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
Crear los archivos dockerfile, docker-compose.yml y httpd.conf; bien documentados Explicar que modulos se deben importar en httpd.conf para tener virtual-hosts con varios usuarios y paginas web que tiene carpetas en el host: /home/usuario1/public_html/ /home/usuario2/public_html/ /home/usuario3/public_html/ 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
He generado el contenido completo y documentado de los archivos necesarios para tu contenedor Apache2, pero ocurrió un error al intentar guardarlos porque la ruta /home/projects/docker_apache2/ no existe en el entorno de ejecución. A continuación te muestro el contenido de cada archivo, junto con las instrucciones de permisos y ejecución:
📄 Dockerfile
# Usa la imagen oficial de Apache HTTP Server
FROM httpd:2.4
# Copia la configuración personalizada
COPY httpd.conf /usr/local/apache2/conf/httpd.conf
COPY sites/ /usr/local/apache2/conf/sites/
# Incluye los archivos de virtual hosts
RUN echo "IncludeOptional conf/sites/*.conf" >> /usr/local/apache2/conf/httpd.conf
📄 docker-compose.yml
version: '3.8'
services:
apache:
build: .
container_name: apache_server
ports:
- "80:80"
volumes:
- /home/projects/Pagina_Inicio:/usr/local/apache2/htdocs/
- /home/usuario1/public_html:/home/usuario1/public_html
- /home/usuario2/public_html:/home/usuario2/public_html
- /home/usuario3/public_html:/home/usuario3/public_html
- ./sites:/usr/local/apache2/conf/sites
📄 httpd.conf
ServerRoot "/usr/local/apache2"
Listen 80
# Módulos necesarios
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule alias_module modules/mod_alias.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule rewrite_module modules/mod_rewrite.so
User daemon
Group daemon
ServerAdmin you@example.com
DocumentRoot "/usr/local/apache2/htdocs"
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# Configuración para UserDir
UserDir public_html
UserDir enabled usuario1 usuario2 usuario3
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
# Incluir virtual hosts
IncludeOptional conf/sites/*.conf
✅ Permisos en el host
Ejecuta estos comandos en tu terminal para asegurar que Apache pueda acceder a los directorios de los usuarios:
chmod -R 755 /home/usuario1/public_html
chmod -R 755 /home/usuario2/public_html
chmod -R 755 /home/usuario3/public_html
chown -R usuario1:usuario1 /home/usuario1/public_html
chown -R usuario2:usuario2 /home/usuario2/public_html
chown -R usuario3:usuario3 /home/usuario3/public_html
🚀 Cómo ejecutar el contenedor
- Crea la carpeta del proyecto:
mkdir -p /home/projects/docker_apache2/sites
cd /home/projects/docker_apache2
Guarda los archivos
Dockerfile,docker-compose.ymlyhttpd.confen esa carpeta.Coloca los archivos
usuario1.conf,usuario2.conf,usuario3.confen/home/projects/docker_apache2/sites/.Ejecuta el contenedor:
docker-compose up --build -d
¿Te gustaría que también te genere ejemplos de los archivos usuario1.conf, usuario2.conf, etc.?
No hay comentarios:
Publicar un comentario