Guía completa para gestionar múltiples sitios web con LAMP.sh

Cuando se requiere alojar varias aplicaciones web en un único servidor, la administración de hosts virtuales se vuelve esencial. LAMP.sh simplifica este proceso mediante un script que integra Linux, Apache, MariaDB y PHP, ofreciendo una solución completa para desarrolladores y administradores de sistemas. Este artículo explica paso a paso cómo utilizar las herramientas de LAMP.sh para crear, configurar y gestionar múltiples sitios web de manera eficiente.

¿Por qué utilizar hosts virtuales?

Los hosts virtuales permiten ejecutar varios sitios web en un mismo servidor, cada uno con su propio nombre de dominio, directorio raíz y configuración. La herramienta lamp de LAMP.sh automatiza este proceso, evitando la edición manual de archivos de configuración de Apache.

Funcionalidades clave

  • Creación de hosts virtuales: agrega nuevas configuraciones de sitio de forma rápida.
  • Listado de hosts: muestra todos los sitios configurados.
  • Eliminación segura: remueve hosts sin afectar otros servicios.
  • Gestión de certificados SSL: compatible con Let's Encrypt y certificados personalizados.
  • Integración con bases de datos: crea automáticamente bases de datos MariaDB asociadas.

Instalación del entorno LAMP

Antes de gestionar hosts virtuales, debe instalar el entorno. LAMP.sh es compatible con varias distribuciones Linux:

git clone https://gitcode.com/gh_mirrors/la/lamp.git
cd lamp
chmod 755 *.sh
./lamp.sh

Durante la instalación, seleccione la versión de MariaDB (10.11, 11.4 o 11.8) y de PHP (7.4 a 8.5), y defina la contraseña del usuario root de la base de datos.

Pila LAMP

Creación de un host virtual paso a paso

1. Iniciar el asistente

Ejecute el siguiente comando para comenzar:

lamp vhost add

El sistema solicitará:

  • Nombre de dominio: por ejemplo, www.misitio.com
  • Correo del administrador: para el registro de SSL
  • Directorio del sitio: ruta donde se almacenarán los archivos (por defecto: /data/www/dominio)
  • Crear base de datos: opción para asociar una base de datos MariaDB

2. Configuración generada

LAMP.sh crea automáticamente el archivo de configuración de Apache. Por ejemplo, para www.misitio.com:

  • En RHEL/CentOS: /etc/httpd/conf.d/vhost/www.misitio.com.conf
  • En Debian/Ubuntu: /etc/apache2/sites-enabled/www.misitio.com.conf

Ejemplo del contenido:

<VirtualHost *:80>
    ServerAdmin admin@misitio.com
    ServerName www.misitio.com
    DocumentRoot /data/www/www.misitio.com
    <Directory /data/www/www.misitio.com>
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.html index.htm index.php
    </Directory>
    ErrorLog /data/wwwlog/www.misitio.com/error.log
    CustomLog /data/wwwlog/www.misitio.com/access.log combined
</VirtualHost>

3. Configuración SSL

Tras crear el host, se preguntará si desea agregar un certificado SSL. Las opciones son:

  1. Usar un certificado existente (proporcionando rutas).
  2. Obtener uno gratuito de Let's Encrypt (automático).
  3. Solicitar uno a Buypass CA.

El sistema configurará automáticamente el host HTTPS y, opcionalmente, la redirección de HTTP a HTTPS.

Comandos de gestión de hosts virtuales

Listar todos los hosts

lamp vhost list

Muestra todos los dominios configurados en el servidor.

Eliminar un host virtual

lamp vhost del

Pide el nombre del dominio a eliminar y remueve su configuración. Atención: los archivos del sitio no se borran automáticamente; debe eliminarlos manualmente si es necesario.

Gestión de bases de datos

LAMP.sh integra comandos para trabajar con MariaDB:

  • lamp db add: crea una base de datos y un usuario con todos los privilegios.
  • lamp db list: muestra todas las bases de datos existentes.
  • lamp db del: elimina una base de datos y su usuario asociado.
  • lamp db edit: cambia la contraseña de un usuario de base de datos.

Consejos avanzados

1. Estructura de directorios personalizada

Puede asignar diferentes directorios raíz a cada host, por ejemplo:

/data/www/
├── www.misitio.com/
│   ├── public_html/
│   ├── logs/
│   └── config/
├── blog.misitio.com/
│   └── wordpress/
└── api.misitio.com/
    └── laravel/

2. Registros de acceso y errores

Los logs se almacenan por separado para cada sitio:

/data/wwwlog/
├── www.misitio.com/
│   ├── access.log
│   └── error.log
├── blog.misitio.com/
│   ├── access.log
│   └── error.log

3. Permisos de archivos

LAMP.sh asigna automáticamente el propietario correcto:

  • RHEL/CentOS: apache:apache
  • Debian/Ubuntu: www-data:www-data

Buenas prácticas de seguridad

1. Renovación de certificados SSL

Si usa Let's Encrypt, la renovación se programa automáticamente. Puede verificar el estado con:

certbot certificates

2. Aislamiento de archivos

Asegúrese de que los permisos de cada sitio impidan el acceso cruzado entre ellos.

3. Monitoreo de logs

Revise periódicamente los registros de errores para detectar problemas:

tail -f /data/wwwlog/www.misitio.com/error.log

Optimización del rendimiento

1. Ajustes en Apache

LAMP.sh ya incluye compresión Gzip y confgiuración KeepAlive. Puede ajustar el módulo MPM según los recursos del servidor.

2. Configuración de PHP-FPM

Modifique los parámetros del pool según la capacidad del sevridor:

pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

3. MariaDB

Algunos parámetros básicos configurados:

innodb_buffer_pool_size = 100M
max_allowed_packet = 1024M
net_read_timeout = 3600
net_write_timeout = 3600

Solución de problemas comunes

El host virtual no responde

  • Verifique la sintaxis de Apache: apachectl -t
  • Reinicie Apache: systemctl restart httpd (o apache2)

Problemas con SSL

  • Confirme que las rutas de los certificados son correctas.
  • Asegúrese de que la cadena de certificados esté completa.
  • Verifique que el dominio apunte al servidor.

Errores de permisos

  • Revise el propietario del directorio del sitio.
  • Compruebe la configuración de SELinux o AppArmor.

Comandos esenciales

  • lamp vhost add — crear un nuevo sitio
  • lamp vhost list — ver todos los sitios
  • lamp vhost del — eliminar un sitio
  • lamp db add — crear una base de datos

Servidor Linux

Etiquetas: LAMP.sh Apache virtual hosts MariaDB Let's Encrypt Linux server administration

Publicado el 7-7 21:35