Configura un entorno LAMP completo en CentOS

Configuración de un entorno LAMP completo en CentOS

Un entorno LAMP (Linux, Apache, MySQL/MariaDB, PHP) es la base de la mayoría de aplicaciones web de código abierto. En esta guía se describe paso a paso cómo desplegar y asegurar un stack LAMP en CentOS, proporcionando ejemplos detallados, comandos y buenas prácticas.

1. Requisitos previos

  • Sistema operativo: CentOS 7 o 8 instalado y actualizado.
  • Acceso root o sudo: Permisos suficientes para instalar y configurar servicios.
  • Conexión a Internet: Para descargar paquetes oficiales.

2. Actualización del sistema

Antes de instalar cualquier componente, actualice el sistema:

sudo yum update -y
sudo yum install epel-release -y

3. Instalación de Apache

Apache es el servidor HTTP más utilizado. Instálelo con:

sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd

Verifique que Apache esté funcionando abriendo http://IP_DEL_SERVIDOR/ en su navegador.

4. Instalación de MariaDB (MySQL)

MariaDB es un fork de MySQL compatible y de alto rendimiento.

sudo yum install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb

Ejecute el siguiente script para asegurar la instalación:

sudo mysql_secure_installation
  • Establezca una contraseña de root robusta.
  • Elimine usuarios anónimos.
  • Deshabilite el login remoto de root.
  • Elimine la base de datos de prueba.

5. Instalación de PHP

Para que Apache interprete PHP, instale los paquetes necesarios:

sudo yum install php php-mysqlnd php-fpm php-opcache -y

Reinicie Apache para cargar el módulo PHP:

sudo systemctl restart httpd

6. Verificar la instalación de PHP

Para comprobar, cree un archivo info.php en el directorio raíz de Apache:

echo ltphp phpinfo() gt sudo tee /var/www/html/info.php

Abra http://IP_DEL_SERVIDOR/info.php y compruebe que la información de PHP se muestra correctamente.

7. Configuración de Virtual Hosts

Para alojar múltiples sitios, use Virtual Hosts:

Archivo de configuración: /etc/httpd/conf.d/misitio.conf

ltVirtualHost :80gt
nbspnbspServerName www.misitio.com
nbspnbspDocumentRoot /var/www/misitio/public_html
nbspnbspErrorLog /var/www/misitio/error.log
nbspnbspCustomLog /var/www/misitio/access.log combined
lt/VirtualHostgt

No olvide crear los directorios y asignar permisos:

sudo mkdir -p /var/www/misitio/public_html
sudo chown -R apache:apache /var/www/misitio

Reinicie Apache:

sudo systemctl restart httpd

8. Seguridad básica y buenas prácticas

  • Firewall: Permita puertos 80 y 443 en firewalld:
    sudo firewall-cmd –add-service=http –permanent
    sudo firewall-cmd –add-service=https –permanent
    sudo firewall-cmd –reload
  • SELinux: Configure correctamente contexto de archivos si está habilitado.
  • Actualizaciones automáticas: Considere yum-cron para parches de seguridad.

9. Optimización de rendimiento

  • OPcache: Active y configure en /etc/php.d/10-opcache.ini.
  • Caching: Instale Varnish para contenido dinámico.
  • Compresión: Habilite mod_deflate y mod_expires en Apache.

10. Copias de seguridad y recuperación

Implemente scripts periódicos para exportar bases de datos y respaldar archivos:

# Respaldar base de datos
mysqldump -u root -pMiPassSegura nombre_basedatos gt /backups/db_(date %F).sql

Almacene respaldos en ubicación remota o en la nube para asegurar redundancia.

11. Acceso remoto seguro mediante VPN

Para proteger la administración del servidor y conexiones a bases de datos, se recomienda usar una VPN. Dos opciones populares:

  • OpenVPN: Solución madura, multiplataforma, con amplio soporte comunitario.
  • WireGuard: Ligero, de alto rendimiento y fácil de configurar.

Instale y configure su VPN antes de permitir el acceso a puertos sensibles (MySQL, SSH) solo desde la red privada de la VPN.

12. Conclusión

Este completo entorno LAMP en CentOS le brinda una base robusta para desplegar aplicaciones web. Desde la instalación inicial hasta las mejores prácticas de seguridad y optimización, siguiendo estos pasos obtendrá un sistema fiable y profesional. Mantenga siempre su stack actualizado y supervise los logs para reaccionar ante cualquier incidencia.

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *