🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar un servidor LAMP en Ubuntu (Apache, MySQL, PHP)

Actualizado el 21 de octubre de 2025

¿Qué es un servidor LAMP y por qué lo necesitas?

Un servidor LAMP es un conjunto de software de código abierto que te permite alojar sitios web dinámicos y aplicaciones web. Las siglas significan Linux (sistema operativo), Apache (servidor web), MySQL (base de datos) y PHP (lenguaje de programación). Es la base de millones de sitios web en internet, desde blogs personales hasta grandes plataformas de comercio electrónico.

Si estás empezando en el mundo de la administración de servidores, montar un servidor LAMP es el primer gran paso. No te preocupes si no tienes experiencia técnica: esta guía te llevará de la mano, paso a paso, para que tengas tu propio servidor funcionando en menos de una hora.

La ventaja de usar Ubuntu es que es uno de los sistemas operativos más estables y documentados que existen. Además, los repositorios oficiales incluyen todas las herramientas necesarias, por lo que instalar LAMP Ubuntu es un proceso muy sencillo si sigues las instrucciones correctas.


Requisitos previos antes de instalar LAMP Ubuntu

Antes de comenzar con el tutorial LAMP, asegúrate de tener lo siguiente:

  • Un servidor o máquina virtual con Ubuntu 20.04, 22.04 o 24.04 instalado.
  • Acceso de usuario root o un usuario con permisos sudo.
  • Conexión a internet activa.
  • Al menos 2 GB de RAM y 10 GB de espacio en disco (recomendado).

[INFO] Si estás usando un VPS (servidor virtual privado), la mayoría de proveedores te dan acceso root por defecto. Si no sabes cómo conectarte, usa SSH desde tu terminal con el comando: ssh usuario@ip-de-tu-servidor.


Paso 1: Actualizar el sistema y preparar el entorno

Lo primero que debes hacer es asegurarte de que todos los paquetes del sistema estén actualizados. Esto evita conflictos de versiones y problemas de seguridad. Abre tu terminal y ejecuta:

sudo apt update

Este comando actualiza la lista de paquetes disponibles. Luego, actualiza los paquetes instalados:

sudo apt upgrade -y

El parámetro -y acepta automáticamente todas las preguntas de confirmación. Después de esto, es recomendable reiniciar el servidor si se actualizó el kernel. Puedes comprobarlo con:

sudo reboot

[TIP] Si no quieres reiniciar, puedes continuar con el tutorial. El reinicio solo es necesario si el sistema te lo pide explícitamente.


Paso 2: Instalar Apache (el servidor web)

Apache es el componente que se encarga de servir las páginas web a los visitantes. Es el servidor web más utilizado del mundo y su instalación en Ubuntu es trivial.

Ejecuta el siguiente comando para instalar Apache:

sudo apt install apache2 -y

Una vez instalado, el servicio se inicia automáticamente. Puedes verificarlo comprobando el estado:

sudo systemctl status apache2

Deberías ver un mensaje que dice active (running). Si no es así, inícialo manualmente:

sudo systemctl start apache2

Para que Apache se inicie automáticamente al arrancar el sistema, ejecuta:

sudo systemctl enable apache2

Ahora, abre tu navegador y escribe la IP de tu servidor (por ejemplo, http://192.168.1.100). Deberías ver la página de bienvenida de Apache. Si la ves, ¡felicidades! El servidor web ya está funcionando.

[WARNING] Si tienes un firewall activo (como UFW), debes permitir el tráfico HTTP y HTTPS. Ejecuta: sudo ufw allow 'Apache Full' para habilitar los puertos 80 y 443.


Paso 3: Instalar MySQL (el sistema de base de datos)

MySQL es el gestor de bases de datos que almacenará toda la información de tu sitio web: usuarios, publicaciones, productos, etc. Es fundamental para que tu servidor LAMP sea completo.

Instala MySQL con el siguiente comando:

sudo apt install mysql-server -y

Al igual que Apache, MySQL se inicia automáticamente. Verifica el estado con:

sudo systemctl status mysql

Ahora, es crucial ejecutar el script de seguridad que viene incluido. Este script elimina configuraciones inseguras por defecto y te permite establecer una contraseña para el usuario root de MySQL.

sudo mysql_secure_installation

Te hará una serie de preguntas. Te recomendamos responder así:

  • VALIDATE PASSWORD COMPONENT → Presiona y (recomendado) y elige nivel medio (1).
  • Contraseña root → Elige una contraseña fuerte y guárdala en un lugar seguro.
  • Remove anonymous users?y
  • Disallow root login remotely?y
  • Remove test database and access to it?y
  • Reload privilege tables now?y

[INFO] El usuario root de MySQL es diferente al usuario root del sistema. No lo confundas. La contraseña que acabas de configurar es para acceder a las bases de datos.


Paso 4: Instalar PHP (el lenguaje de programación)

PHP es el lenguaje que procesará el código de tus aplicaciones web. Se ejecuta en el servidor y genera contenido dinámico que luego Apache envía al navegador.

Instala PHP junto con los módulos más comunes:

sudo apt install php libapache2-mod-php php-mysql -y

Este comando instala:

  • php → El intérprete principal.
  • libapache2-mod-php → El módulo que permite a Apache procesar archivos PHP.
  • php-mysql → La extensión para que PHP pueda comunicarse con MySQL.

Para verificar la versión instalada, ejecuta:

php -v

Ahora, reinicia Apache para que cargue el nuevo módulo:

sudo systemctl restart apache2

Paso 5: Configurar Apache para priorizar PHP

Por defecto, Apache busca primero un archivo llamado index.html. Si tu sitio tiene un index.php, no lo mostrará a menos que lo configures. Para cambiar esta prioridad, edita el archivo de configuración de Apache:

sudo nano /etc/apache2/mods-enabled/dir.conf

Verás algo como esto:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Cambia el orden para que index.php aparezca primero:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Guarda el archivo (en nano, presiona Ctrl+X, luego Y y finalmente Enter) y reinicia Apache:

sudo systemctl restart apache2

Paso 6: Crear un archivo de prueba PHP

Para asegurarte de que todo el stack funciona correctamente, crea un archivo de prueba en el directorio raíz de Apache. Este directorio suele ser /var/www/html/.

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

Dentro del archivo, escribe el siguiente código:

<?php
phpinfo();
?>

Guarda el archivo y luego abre tu navegador y visita http://tu-ip/info.php. Deberías ver una página con toda la información de tu configuración de PHP. Si la ves, significa que tu servidor LAMP está funcionando correctamente.

[WARNING] IMPORTANTE: Después de verificar, elimina este archivo inmediatamente. La página phpinfo() revela información sensible sobre tu servidor que los atacantes podrían aprovechar. Ejecuta: sudo rm /var/www/html/info.php.


Paso 7: Configurar el cortafuegos (UFW)

Si tienes UFW (Uncomplicated Firewall) activo, debes permitir el tráfico web. Ejecuta los siguientes comandos:

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Habilita el firewall si aún no lo has hecho:

sudo ufw enable

Verifica el estado:

sudo ufw status

Deberías ver que los puertos 22 (SSH), 80 (HTTP) y 443 (HTTPS) están permitidos.


Paso 8: Instalar extensiones PHP adicionales (opcional pero recomendado)

Dependiendo de las aplicaciones que quieras instalar (como WordPress, Joomla o Magento), necesitarás extensiones PHP adicionales. Algunas de las más comunes son:

sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

Estas extensiones añaden funcionalidades como:

  • php-curl → Para hacer peticiones HTTP desde PHP.
  • php-gd → Para manipulación de imágenes.
  • php-mbstring → Soporte para caracteres multibyte (acentos, ñ, etc.).
  • php-xml → Para procesar documentos XML.
  • php-zip → Para manejar archivos comprimidos.

Después de instalar, reinicia Apache:

sudo systemctl restart apache2

Paso 9: Crear una base de datos MySQL de ejemplo

Para que entiendas cómo funciona MySQL, creemos una base de datos de prueba. Accede a MySQL con el usuario root:

sudo mysql

Dentro del prompt de MySQL, ejecuta los siguientes comandos:

CREATE DATABASE prueba_db;
CREATE USER 'usuario_prueba'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON prueba_db.* TO 'usuario_prueba'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Con esto has creado una base de datos llamada prueba_db y un usuario usuario_prueba con permisos sobre ella. Este es el patrón que usarás para cualquier aplicación.


Paso 10: Configurar hosts virtuales en Apache (VirtualHosts)

Los VirtualHosts te permiten alojar múltiples sitios web en un solo servidor. Es una práctica esencial para cualquier administrador de sistemas.

Crea un directorio para tu sitio:

sudo mkdir -p /var/www/tu-dominio.com/public_html

Asigna los permisos adecuados:

sudo chown -R $USER:$USER /var/www/tu-dominio.com/public_html

Crea un archivo de configuración para el VirtualHost:

sudo nano /etc/apache2/sites-available/tu-dominio.com.conf

Pega el siguiente contenido:

<VirtualHost *:80>
    ServerAdmin admin@tu-dominio.com
    ServerName tu-dominio.com
    ServerAlias www.tu-dominio.com
    DocumentRoot /var/www/tu-dominio.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Habilita el sitio y la reescritura de URLs:

sudo a2ensite tu-dominio.com
sudo a2enmod rewrite

Recarga Apache para aplicar los cambios:

sudo systemctl reload apache2

[TIP] Si no tienes un dominio real, puedes usar la IP de tu servidor o editar el archivo /etc/hosts de tu máquina local para simular uno.


Paso 11: Asegurar tu servidor LAMP (buenas prácticas)

La seguridad es fundamental. Aquí tienes algunas recomendaciones básicas:

  1. Mantén el sistema actualizado: Ejecuta sudo apt update && sudo apt upgrade semanalmente.
  2. Cambia el puerto SSH por defecto (opcional pero recomendado).
  3. Usa claves SSH en lugar de contraseñas.
  4. Configura fail2ban para bloquear intentos de acceso no autorizados.
  5. Haz copias de seguridad periódicas de tu base de datos y archivos.

Para instalar fail2ban:

sudo apt install fail2ban -y

Este servicio monitorea los logs del sistema y bloquea IPs que hagan demasiados intentos fallidos de conexión.


Solución de problemas comunes (FAQ)

1. ¿Por qué no veo la página de Apache al entrar por IP?

Asegúrate de que el servicio está activo: sudo systemctl status apache2. También verifica que el firewall permita el puerto 80: sudo ufw status. Si estás en un VPS, revisa que el grupo de seguridad del proveedor permita el tráfico HTTP.

2. ¿Cómo cambio la contraseña del usuario root de MySQL?

Accede a MySQL con sudo mysql y ejecuta:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'nueva_contraseña';
FLUSH PRIVILEGES;

3. ¿Cómo instalo PHP 8 en lugar de la versión por defecto?

Ubuntu 22.04 ya incluye PHP 8.1. Si quieres una versión más reciente, puedes usar el repositorio de Ondřej Surý:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

4. ¿Qué hago si veo un error 403 Forbidden?

Esto suele ser un problema de permisos. Asegúrate de que el directorio raíz tenga los permisos correctos:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

5. ¿Cómo reinicio todos los servicios a la vez?

Puedes usar:

sudo systemctl restart apache2 mysql

Alternativas de gestión con panel de control (Syspanel)

Si prefieres una interfaz gráfica para gestionar tu servidor LAMP, puedes instalar un panel de control como Syspanel (antes conocido como HestiaCP). Este panel te permite gestionar dominios, bases de datos, cuentas de correo y mucho más desde un navegador web.

Para instalarlo, necesitas un servidor limpio y ejecutar el instalador oficial. Una vez instalado, accede a través del puerto 2106 (por ejemplo, https://tu-ip:2106) y sigue el asistente de configuración inicial.

[INFO] Syspanel es una excelente opción si quieres ahorrar tiempo en tareas repetitivas. Incluye un firewall integrado, backups automáticos y soporte para múltiples versiones de PHP. Eso sí, requiere al menos 2 GB de RAM para funcionar correctamente.


Conclusión

Has completado con éxito la instalación de un servidor LAMP en Ubuntu. Ahora tienes una base sólida para alojar cualquier tipo de aplicación web. Recuerda que la práctica es clave: intenta instalar WordPress, crear más bases de datos, configurar SSL con Let's Encrypt y explorar las infinitas posibilidades que te ofrece este stack tecnológico.

El tutorial LAMP que acabas de seguir es el mismo que usan administradores de sistemas profesionales en producción. La diferencia está en la constancia y la atención al detalle. No tengas miedo de romper cosas: cada error es una oportunidad de aprendizaje.

Si te ha gustado esta guía, compártela con otros que estén empezando. Y si tienes dudas, deja un comentario o consulta la documentación oficial de Ubuntu y Apache. ¡Buen camino en tu aventura como administrador de servidores!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel