Servidor LAMP · 6 min read · Feb 02, 2026

Tutorial de Servidor LAMP en Debian 9 con Apache, PHP 7 y MariaDB

LAMP es la abreviatura de Linux, Apache, MySQL, PHP. Este tutorial muestra cómo puedes instalar un servidor web Apache en un servidor Debian Stretch (9) con soporte para PHP 7 (mod_php) y MariaDB. MariaDB es un fork del conocido servidor de bases de datos MySQL, proporciona un conjunto de características compatible con MySQL y es un poco más rápido según los benchmarks que encontré en internet. MariaDB funcionará con todas las aplicaciones que requieren MySQL como Wordpress, Joomla, etc.

Una configuración LAMP es una base perfecta para sistemas CMS como Joomla, Wordpress o Drupal.

1 Nota Preliminar

En este tutorial, utilizo el nombre de host server1.example.com con la dirección IP 192.168.1.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.

2 Instalando MariaDB como reemplazo de MySQL

Primero, instalamos MariaDB de la siguiente manera:

apt-get -y install mariadb-server mariadb-client

A continuación, aseguraremos MariaDB con el comando mysql_secure_installation. Ejecuta el siguiente comando y sigue el asistente.

mysql_secure_installation

La entrada recomendada se muestra en rojo.

mysql_secure_installation
NOTA: ¡SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MariaDB EN USO DE PRODUCCIÓN! ¡LEE CADA PASO CUIDADOSAMENTE!
Para iniciar sesión en MariaDB y asegurarla, necesitaremos la contraseña actual del usuario root. Si acabas de instalar MariaDB, y no has configurado la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.
Introduce la contraseña actual para root (presiona enter si no hay): <-- Presiona enter
OK, contraseña utilizada correctamente, continuando...
Configurar la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MariaDB sin la autorización adecuada.
¿Establecer contraseña de root? [Y/n] <-- y
Nueva contraseña: <-- Introduce la nueva contraseña para el usuario root de MariaDB
Reingresa la nueva contraseña: <-- Introduce la contraseña nuevamente
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
... ¡Éxito!
Por defecto, una instalación de MariaDB tiene un usuario anónimo, permitiendo que cualquiera inicie sesión en MariaDB sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas, y para hacer que la instalación sea un poco más fluida. Debes eliminarlos antes de pasar a un entorno de producción.
¿Eliminar usuarios anónimos? [Y/n] <-- y
... ¡Éxito!
Normalmente, solo se debería permitir que root se conecte desde 'localhost'. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <-- y
... ¡Éxito!
Por defecto, MariaDB viene con una base de datos llamada 'test' a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debe ser eliminado antes de pasar a un entorno de producción.
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <-- y
- Eliminando base de datos de prueba...
... ¡Éxito!
- Eliminando privilegios sobre la base de datos de prueba...
... ¡Éxito!
Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.
¿Recargar tablas de privilegios ahora? [Y/n] <-- y
... ¡Éxito!
Limpiando...
¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MariaDB ahora debería estar segura.
¡Gracias por usar MariaDB!

La configuración de MariaDB ahora está asegurada.

3 Instalando el servidor web Apache

Apache está disponible como un paquete de Debian, por lo tanto, podemos instalarlo de la siguiente manera:

apt-get -y install apache2

Ahora dirige tu navegador a http://192.168.1.100, y deberías ver la página de marcador de posición de Apache2 (¡Funciona!):

Página predeterminada de Apache en Debian 9

La raíz del documento predeterminada de Apache es /var/www en Debian, y el archivo de configuración es /etc/apache2/apache2.conf. Las configuraciones adicionales se almacenan en subdirectorios del directorio /etc/apache2 como /etc/apache2/mods-enabled (para módulos de Apache), /etc/apache2/sites-enabled (para hosts virtuales), y /etc/apache2/conf-enabled.

4 Instalando PHP 7.1

Podemos instalar PHP y el módulo PHP de Apache de la siguiente manera:

apt-get -y install php7.0 libapache2-mod-php7.0

Debemos reiniciar Apache después:

service apache2 restart

5 Probando PHP / Obteniendo detalles sobre tu instalación de PHP

La raíz del documento del sitio web predeterminado es /var/www/html. Ahora crearemos un pequeño archivo PHP (info.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.

nano /var/www/html/info.php

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

PHP instalado en Debian 9 en Apache

Como puedes ver, PHP 7.0 está funcionando, y está funcionando a través del Manejador de Apache 2.0, como se muestra en la línea de API del Servidor. Si desplazas hacia abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL / MariaDB no está listado allí lo que significa que aún no tenemos soporte para MySQL en PHP5.

6 Obteniendo soporte para MySQL y MariaDB en PHP

Para obtener soporte para MySQL en PHP, instalaremos el paquete php7.0-mysql. Es una buena idea instalar algunos otros módulos de PHP también, ya que podrías necesitarlos para tus aplicaciones. Puedes buscar módulos PHP 7 disponibles de la siguiente manera:

apt-cache search php7.0

Elige los que necesites e instálalos de la siguiente manera:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Ahora reinicia Apache:

service apache2 restart

7 Caché de PHP para mejorar la velocidad de PHP

Para acelerar PHP, se debe instalar un Opcache. Verifica si el módulo Opcache de PHP ha sido instalado y habilitado correctamente. Ejecuta este comando:

php --version

La salida debe contener la línea que marqué en rojo.

PHP 7.0.27-0+deb9u1 (cli) (built: Jan 5 2018 13:51:52) (NTS)  
Copyright (c) 1997-2017 The PHP Group  
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies  
with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

Si no ves el módulo Opcache en el resultado, instálalo con este comando:

apt-get -y install php7.0-opcache

Hay una caché más que podría ser útil, su nombre es APCu. APCu es un caché de opcodes PHP gratuito para almacenar en caché y optimizar el código intermedio de PHP.

APCu se puede instalar de la siguiente manera:

apt-get -y install php-apcu

Ahora reinicia Apache:

service apache2 restart

Ahora recarga http://192.168.1.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Ahora deberías encontrar muchos nuevos módulos allí, incluido el módulo MySQL que se utiliza como controlador de MariaDB:

Soporte de MySQL habilitado en PHP 7

8 phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL y MariaDB. Es una buena idea instalarlo:

apt-get -y install phpmyadmin

Verás las siguientes preguntas:

Configurar phpMyAdmin para Apache

Servidor web para reconfigurar automáticamente: <-- apache2
¿Configurar la base de datos para phpmyadmin con dbconfig-common? <-- Sí
Contraseña de aplicación MySQL para phpmyadmin: <-- Presiona enter, apt creará una contraseña aleatoria automáticamente.

Después, puedes acceder a phpMyAdmin en http://192.168.1.100/phpmyadmin/:

PHPMyAdmin en Debian 9

9 Habilitar inicio de sesión root de MySQL para phpMyAdmin

Mientras puedes iniciar sesión como usuario root en MariaDB en la shell, el inicio de sesión root no funcionará en phpMyAdmin. Para permitir que el usuario root use phpMyAdmin también, ejecuta el siguiente comando en la shell:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

10 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.