mayo 2

Instalar LAMP Stack en Ubuntu: Apache, MySQL y PHP

La pila LAMP es una de las configuraciones de servidor web más populares del mundo. Sus siglas representan Linux, Apache, MySQL y PHP. Es la base que impulsa millones de sitios web, desde blogs personales hasta aplicaciones empresariales. En esta guía completa te explico cómo instalar y configurar cada componente paso a paso en Ubuntu.

¿Qué es exactamente LAMP?

LAMP es un acrónimo que describe una pila de software de código abierto para servidores web:

  • Linux — El sistema operativo (Ubuntu, Debian, CentOS, etc.)
  • Apache — El servidor web que sirve las páginas HTTP
  • MySQL/MariaDB — El sistema de gestión de bases de datos
  • PHP — El lenguaje de programación del lado del servidor

Juntos, estos cuatro componentes crean un entorno completo para ejecutar aplicaciones web dinámicas como WordPress, Joomla, Drupal, Laravel y muchas más.

Requisitos previos

  • Un servidor o máquina virtual con Ubuntu 20.04, 22.04 o 24.04
  • Acceso root o un usuario con privilegios sudo
  • Conexión a Internet
  • Al menos 512MB de RAM (1GB recomendado)

Paso 1: Actualizar el sistema

Antes de instalar cualquier paquete, actualiza los repositorios y el software existente:

sudo apt update
sudo apt upgrade -y

Paso 2: Instalar Apache

Apache es el servidor web más utilizado del mundo. Para instalarlo:

sudo apt install apache2 -y

Después de la instalación, Apache se inicia automáticamente. Verifica que está funcionando:

sudo systemctl status apache2

Deberías ver active (running). También puedes abrir un navegador y visitar http://tu-ip-del-servidor para ver la página de bienvenida de Apache.

Configurar el firewall

Si tienes UFW activado, permite el tráfico HTTP y HTTPS:

sudo ufw allow 'Apache Full'
sudo ufw status

Paso 3: Instalar MySQL

MySQL es un sistema de gestión de bases de datos relacional. Para instalarlo:

sudo apt install mysql-server -y

Después de la instalación, ejecuta el script de seguridad:

sudo mysql_secure_installation

Este script te guiará para:

  • Establecer una contraseña para el usuario root de MySQL
  • Eliminar usuarios anónimos
  • Deshabilitar el login remoto de root
  • Eliminar la base de datos de prueba

Responde Y (sí) a todas las preguntas para una configuración segura.

Verificar MySQL

sudo systemctl status mysql

Paso 4: Instalar PHP

PHP es el lenguaje de programación que procesa el contenido dinámico. Instala PHP junto con los módulos más comunes:

sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

Cada módulo tiene una función específica:

  • php-mysql — Conexión a bases de datos MySQL
  • php-curl — Peticiones HTTP externas
  • php-gd — Manipulación de imágenes
  • php-mbstring — Cadenas multibyte (UTF-8)
  • php-xml — Procesamiento de XML
  • php-zip — Compresión de archivos

Verificar PHP

Crea un archivo de prueba:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Visita http://tu-ip/info.php en tu navegador. Deberías ver la página de información de PHP. Importante: elimina este archivo después de verificar:

sudo rm /var/www/html/info.php

Paso 5: Probar la pila completa

Crea un script de prueba que conecte a MySQL:

sudo nano /var/www/html/test_db.php

Añade este contenido:

<?php
$mysqli = new mysqli("localhost", "root", "tu_contraseña");

if ($mysqli->connect_error) {
    die("Error de conexión: " . $mysqli->connect_error);
}
echo "Conexión exitosa a MySQL!";
$mysqli->close();
?>

Visita http://tu-ip/test_db.php para verificar la conexión. Recuerda eliminarlo después.

Paso 6: Configurar Virtual Hosts

Para alojar múltiples sitios web en un solo servidor, configura Virtual Hosts:

sudo nano /etc/apache2/sites-available/misitio.conf

Añade:

<VirtualHost *:80>
    ServerName misitio.com
    ServerAlias www.misitio.com
    DocumentRoot /var/www/misitio
    ErrorLog ${APACHE_LOG_DIR}/misitio_error.log
    CustomLog ${APACHE_LOG_DIR}/misitio_access.log combined
</VirtualHost>

Activa el sitio y el módulo rewrite:

sudo mkdir -p /var/www/misitio
sudo a2ensite misitio.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Conclusión

Con estos pasos, tienes un servidor LAMP completamente funcional en Ubuntu. Esta configuración es la base para ejecutar WordPress, aplicaciones Laravel, tiendas PrestaShop, y prácticamente cualquier aplicación web basada en PHP. Recuerda mantener el sistema actualizado y seguir buenas prácticas de seguridad.



Copyright 2020. www.garcalia.com

Publicado 2 de mayo de 2020 por Titogus in category "Bases de Datos", "Linux", "Seguridad", "Servidores Web