¿Cómo configurar un servidor LAMP en Ubuntu?
¡Hola! ¿Estás listo para montar tu propio servidor web desde cero? Si alguna vez te has preguntado cómo funcionan las páginas web por dentro, o quieres tener el control total de tu hosting para tus proyectos, este artículo es para ti.
Hoy vamos a desmitificar el proceso de configuración de un servidor LAMP en Ubuntu. LAMP es el acrónimo de Linux, Apache, MySQL y PHP. Es la combinación de software más popular del mundo para servir sitios web dinámicos. La buena noticia es que no necesitas ser un gurú de la informática para lograrlo. Con esta guía LAMP paso a paso, tendrás tu servidor funcionando en menos de lo que te imaginas.
Vamos a ir despacio, explicando cada comando y cada concepto, para que entiendas no solo el "cómo", sino también el "por qué". Al final, tendrás un entorno de desarrollo o producción sólido y listo para usar. ¡Manos a la obra!
¿Qué es exactamente un servidor LAMP y para qué sirve?
Antes de ensuciarnos las manos con la terminal, es crucial entender qué vamos a construir. Un servidor LAMP es una pila de software de código abierto que permite alojar y servir aplicaciones web y sitios dinámicos.
Piénsalo como un equipo de trabajo donde cada miembro tiene un rol específico:
- L (Linux): Es el sistema operativo, la base sobre la que se asienta todo. Es el encargado de gestionar los recursos del hardware (memoria, CPU, disco duro). En nuestro caso, usaremos Ubuntu, una de las distribuciones más amigables y documentadas.
- A (Apache): Es el servidor web. Su trabajo es "escuchar" las peticiones que llegan de los navegadores (Chrome, Firefox, etc.) y responder con los archivos del sitio (HTML, CSS, imágenes). Es el portero que recibe a los visitantes.
- M (MySQL): Es el sistema de gestión de bases de datos. Aquí es donde se almacenan los datos de tu aplicación: usuarios, comentarios, productos, etc. Es la memoria del equipo.
- P (PHP): Es el lenguaje de programación que se ejecuta en el servidor. Su función es generar contenido dinámico. Por ejemplo, si un usuario inicia sesión, PHP consulta la base de datos (MySQL) y genera una página personalizada para ese usuario. Es el cerebro que procesa la lógica de negocio.
Juntos, forman un ecosistema perfecto para ejecutar aplicaciones como WordPress, Joomla, Drupal o cualquier desarrollo a medida.
Prerrequisitos: Lo que necesitas antes de empezar
Para seguir esta guía LAMP sin contratiempos, necesitarás:
- Un servidor con Ubuntu: Puede ser una máquina virtual en tu ordenador (como VirtualBox), una instancia en la nube (como AWS, DigitalOcean o Google Cloud) o un equipo físico dedicado.
- Acceso SSH: Necesitarás una terminal para conectarte a tu servidor. Si es un equipo local, puedes usar la terminal directamente. Si es un servidor en la nube, usarás un cliente SSH como PuTTY (en Windows) o el comando
ssh(en Linux/macOS). - Un usuario con privilegios
sudo: Este comando te permitirá ejecutar tareas administrativas. Es la forma segura de instalar software sin estar logueado como root (el superusuario). - Actualizar el sistema: Es una buena práctica. Ejecuta
sudo apt update && sudo apt upgrade -ypara asegurarte de que todos los paquetes estén al día.
Paso 1: Instalar Apache (El servidor web)
El primer componente que vamos a instalar es Apache. Es el encargado de recibir las peticiones HTTP.
Instalando el paquete
Abre tu terminal y ejecuta el siguiente comando:
sudo apt install apache2 -y
El flag -y responde "sí" automáticamente a la pregunta de confirmación de instalación.
Verificando la instalación
Una vez finalizado, Apache debería estar corriendo. Podemos comprobarlo con:
sudo systemctl status apache2
Deberías ver un mensaje que dice active (running). Si no es así, inícialo con sudo systemctl start apache2.
Probando Apache
Ahora viene la parte divertida. Abre tu navegador web favorito y escribe la dirección IP de tu servidor (o localhost si estás en tu máquina local). Deberías ver la página de bienvenida por defecto de Apache. ¡Eso significa que instalar Apache ha sido un éxito!
[TIP] Para saber la IP de tu servidor, ejecuta hostname -I en la terminal.
Configurando el firewall (Opcional pero recomendado)
Si tienes el firewall UFW activado, necesitas permitir el tráfico web. Ejecuta:
sudo ufw allow in "Apache Full"
Esto habilitará los puertos 80 (HTTP) y 443 (HTTPS).
Paso 2: Instalar y Configurar MySQL (La base de datos)
Ahora es el turno de MySQL, el gestor de bases de datos. Es donde guardaremos toda la información de nuestras aplicaciones.
Instalando MySQL
El comando es igual de sencillo:
sudo apt install mysql-server -y
Ejecutando el script de seguridad
MySQL viene con una configuración por defecto que no es muy segura. Afortunadamente, incluye un script que nos guía paso a paso para asegurarla. Ejecuta:
sudo mysql_secure_installation
Este script te hará varias preguntas. Te recomiendo responder de la siguiente manera:
- VALIDATE PASSWORD COMPONENT: Presiona
Ypara activar la política de contraseñas fuertes. Te preguntará por un nivel (0, 1, 2). El nivel 2 es el más seguro, pero el 1 es un buen equilibrio. - Enter a password for root: Aquí establecerás la contraseña para el usuario
rootde MySQL. - Remove anonymous users?:
Y(Elimina usuarios anónimos). - Disallow root login remotely?:
Y(No permitir que el usuario root se conecte desde fuera del servidor). - Remove test database and access to it?:
Y(Elimina la base de datos de prueba). - Reload privilege tables now?:
Y(Recarga los permisos para que los cambios surtan efecto).
[WARNING] ¡No pierdas esta contraseña! La necesitarás para administrar tus bases de datos. Si la olvidas, el proceso de recuperación es tedioso.
Verificando la instalación
Para comprobar que todo está bien, intenta conectarte a MySQL:
sudo mysql
Deberías entrar en el monitor de MySQL (verás un prompt mysql>). Escribe EXIT; para salir.
Paso 3: Instalar PHP (El lenguaje de programación)
PHP es el pegamento que une Apache y MySQL. Necesitamos instalarlo junto con algunos módulos para que se comunique correctamente con ambos.
Instalando PHP y módulos esenciales
Ejecuta el siguiente comando. Incluye los módulos más comunes que necesitarás para la mayoría de aplicaciones web.
sudo apt install php libapache2-mod-php php-mysql php-curl php-json php-cgi php-xml php-mbstring php-zip php-gd -y
libapache2-mod-php: Permite que PHP se ejecute dentro de Apache.php-mysql: Conector para que PHP hable con MySQL.- Los demás son bibliotecas para funcionalidades específicas (manejo de imágenes, XML, etc.).
Verificando la instalación
Para saber qué versión de PHP tienes y que se instaló correctamente, ejecuta:
php -v
Probando PHP con Apache
Vamos a crear un archivo de prueba para asegurarnos de que Apache y PHP están trabajando juntos.
-
Crea un archivo llamado
info.phpen el directorio raíz de Apache. Para ello, usa un editor de texto como nano:sudo nano /var/www/html/info.php -
Dentro del archivo, pega el siguiente contenido:
<?php phpinfo(); ?> -
Guarda el archivo (Ctrl+X, luego
Yy Enter). -
Ahora, en tu navegador, ve a
http://tu-ip/info.php. Deberías ver una página enorme con toda la configuración de PHP.
[INFO] Este archivo info.php es una herramienta de diagnóstico. Es crítico que lo elimines después de la prueba para no revelar información sensible sobre tu servidor. Puedes hacerlo con sudo rm /var/www/html/info.php.
Paso 4: Configurar los Virtual Hosts (Opcional pero muy útil)
Apache permite alojar múltiples sitios web en el mismo servidor. Esto se logra mediante "Virtual Hosts". Aunque no es estrictamente necesario para un servidor básico, es una habilidad esencial para cualquier administrador.
Creando la estructura de directorios
Vamos a crear un directorio para tu nuevo sitio. Por ejemplo, miproyecto.com.
sudo mkdir -p /var/www/miproyecto.com/public_html
Asignando permisos
Dale al usuario actual (el que tiene sudo) la propiedad del directorio para poder editar archivos sin problemas.
sudo chown -R $USER:$USER /var/www/miproyecto.com/public_html
Creando un archivo de configuración
Apache guarda sus configuraciones en /etc/apache2/sites-available/. Vamos a crear un archivo para nuestro sitio.
sudo nano /etc/apache2/sites-available/miproyecto.com.conf
Pega el siguiente contenido:
<VirtualHost *:80>
ServerAdmin admin@miproyecto.com
ServerName miproyecto.com
ServerAlias www.miproyecto.com
DocumentRoot /var/www/miproyecto.com/public_html
<Directory /var/www/miproyecto.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activando el sitio
-
Habilita el sitio con
a2ensite:sudo a2ensite miproyecto.com.conf -
Desactiva el sitio por defecto (opcional, pero recomendado):
sudo a2dissite 000-default.conf -
Recarga la configuración de Apache:
sudo systemctl reload apache2
Ahora, si has configurado tu archivo /etc/hosts (en tu máquina local) para que miproyecto.com apunte a la IP de tu servidor, podrás ver tu nuevo sitio. Si no, puedes acceder a través de la IP.
Paso 5: Instalar phpMyAdmin (Opcional pero muy común)
Administrar bases de datos desde la línea de comandos puede ser intimidante. phpMyAdmin es una herramienta web que facilita enormemente esta tarea.
Instalando phpMyAdmin
sudo apt install phpmyadmin -y
Durante la instalación, te preguntará qué servidor web usar. Selecciona apache2 con la barra espaciadora y presiona Enter. Luego, te preguntará si quieres configurar la base de datos con dbconfig-common. Elige Sí y establece una contraseña para el usuario de phpMyAdmin.
Configurando Apache
Para que Apache sirva phpMyAdmin, necesitas incluirlo en su configuración. Ejecuta:
sudo nano /etc/apache2/apache2.conf
Añade la siguiente línea al final del archivo:
Include /etc/phpmyadmin/apache.conf
Reiniciando Apache
Reinicia Apache para aplicar los cambios:
sudo systemctl restart apache2
Ahora, la herramienta estará disponible en http://tu-ip/phpmyadmin. Podrás iniciar sesión con el usuario root y la contraseña que configuraste durante la instalación de MySQL.
[TIP] Si no puedes acceder a phpMyAdmin, es posible que necesites instalar el módulo php-mbstring. Ejecuta sudo apt install php-mbstring y reinicia Apache.
Preguntas Frecuentes (FAQ)
Aquí tienes algunas dudas comunes que surgen al configurar un servidor LAMP:
¿Por qué mi página muestra el código PHP en lugar de ejecutarlo?
Esto casi siempre significa que el módulo de PHP no está cargado en Apache. Verifica que el paquete libapache2-mod-php esté instalado y que hayas reiniciado Apache después de instalar PHP.
¿Cómo cambio la contraseña de MySQL?
Puedes hacerlo desde la línea de comandos:
sudo mysql -u root
Luego, dentro del monitor de MySQL, ejecuta:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NuevaContraseña';
FLUSH PRIVILEGES;
EXIT;
¿Cuál es la diferencia entre MySQL y MariaDB?
MariaDB es un "fork" (derivado) de MySQL, creado por los desarrolladores originales. Es 100% compatible y a menudo se usa como reemplazo directo. En Ubuntu, mysql-server instala MariaDB por defecto, pero funciona de la misma manera.
¿Cómo puedo asegurar mi servidor LAMP?
Además del script mysql_secure_installation, te recomiendo:
- Mantener el sistema actualizado (
sudo apt update && sudo apt upgrade). - Configurar un firewall (UFW) para permitir solo los puertos necesarios (22 para SSH, 80 y 443 para web).
- Usar HTTPS con un certificado SSL gratuito de Let's Encrypt (Certbot).
¿Qué hago si Apache no arranca?
Revisa los logs de error. Puedes verlos con sudo tail -f /var/log/apache2/error.log. También puedes verificar la sintaxis de tus archivos de configuración con sudo apachectl configtest.
¿Cómo instalo WordPress después de configurar LAMP?
WordPress es una aplicación PHP/MySQL, así que ya tienes la base. Solo necesitas crear una base de datos y un usuario en MySQL, descargar WordPress en tu directorio web y seguir el asistente de instalación. Es tan simple como eso.
Conclusión y próximos pasos
¡Felicidades! Has construido con éxito tu propio servidor LAMP en Ubuntu. Has aprendido a instalar Apache, configurar MySQL, instalar PHP y darle un toque profesional con los Virtual Hosts y phpMyAdmin. Este es un hito enorme en tu camino como administrador de sistemas o desarrollador web.
Ahora tienes un lienzo en blanco sobre el que puedes pintar cualquier cosa: desde un blog personal con WordPress hasta una aplicación web compleja a medida.
Para la gestión de tu servidor, si en el futuro buscas una forma más visual y centralizada de administrar múltiples sitios, bases de datos y cuentas de correo, te recomiendo explorar paneles de control. Existen opciones como Syspanel (anteriormente conocido como HestiaCP), que puedes instalar fácilmente y acceder a través del puerto 2106 para gestionar todo tu hosting desde un navegador web. Es una herramienta fantástica para cuando tu proyecto crezca.
¿Cuál es tu próximo paso? Te sugiero:
- Instala WordPress para crear tu primer sitio web dinámico.
- Consigue un dominio y apúntalo a la IP de tu servidor.
- Asegura tu servidor con un certificado SSL gratuito para habilitar HTTPS.
La aventura no termina aquí. Sigue explorando, experimentando y, sobre todo, divirtiéndote. Si te has quedado con alguna duda, repasa los pasos o busca en la documentación oficial de cada proyecto. ¡Nos vemos en el próximo tutorial!
