Cómo instalar LAMP en Debian 11 Bullseye

En este artículo veremos cómo instalar la pila LAMP en Debian 11 Bullseye paso a paso, de tal forma que puedas desarrollar aplicaciones web complejas o instalar aplicaciones de terceros sobre tu propia máquina, servidor o VPS Debian.

Antes de instalar la pila LAMP en Debian 11 Bullseye

Si quieres completar los pasos de esta guía de instalación de la pila LAMP en Debian 11 Bullseye deberías partir del siguiente escenario:

  • Un sistema Debian 11 Bullseye actualizado.
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Como seguramente cumples todos estos requisitos básicos, es hora de regular la altura de la mesa a la posición más cómoda, abrir nuestra terminal de comandos favorita y empezar a trabajar.

Cómo instalar la pila LAMP en Debian 11 Bullseye

Cuando hablamos de instalar la pila LAMP en Debian 11 Bullseye nos estamos refiriendo a acomodar en nuestro sistema el servicio web Apache con el lenguaje de programación PHP integrado y un motor de bases de datos MariaDB/MySQL.

Podemos realizar la instalación de todos estos elementos desde los repositorios de Debian 11, pero quizás pueda interesarnos obtener versiones más recientes de alguno de ellos (como PHP o MariaDB) desde repositorios alternativos.

PHP 8.2 y 8.3 (y versiones anteriores)

Debian 11 incluye la versión 7.4 de este lenguaje de programación, pero hay casos en los que puede interesarnos otra versión no incluida:

  • Versiones anteriores: Por cuestiones de compatibilidad con alguna aplicación concreta que lo requiera, podríamos necesitar trabajar con una versión anterior.
  • Versiones posteriores: La versión 8.2 cada vez está más extendida en el desarrollo de aplicaciones, y a medio plazo ocurrirá lo mismo con la 8.3.
  • Versión nativa más actualizada: Por último, el repositorio alternativo ofrece revisiones más actualizadas de la versión 7.4.

Si no te encuentras en ninguno de estos casos te servirá perfectamente la versión incluida en los repositorios de Debian 11 y puedes saltarte esta sección. Pero si no es así, instalaremos el repositorio alternativo.

Empezamos creando un archivo de configuración del repositorio:

~$ sudo nano /etc/apt/sources.list.d/php-sury.org.list

Su contenido será la siguiente línea:

deb http://packages.sury.org/php/ bullseye main

Guardamos el archivo y lo cerramos.

Como los paquetes de este repositorio están firmados, instalaremos la clave pública que nos permitirá comprobar las firmas:

~$ sudo wget -O /etc/apt/trusted.gpg.d/php-sury.org.gpg https://packages.sury.org/php/apt.gpg

¡Listo!

MariaDB 10.6 y superiores

Debian 11 incluye la versión 10.5 que para algunos desarrollos y aplicaciones ha quedado obsoleta o, simplemente, exigen como requisito una versión superior. Si necesitamos alguna de estas versiones configuraremos su repositorio siguiendo estos pasos.

Instalamos algunos paquetes necesarios:

~$ sudo apt-get install -y apt-transport-https

Instalamos la clave pública para verificar las firmas (son repositorios firmados):

~$ sudo wget -O /etc/apt/trusted.gpg.d/mariadb-keyring.pgp https://mariadb.org/mariadb_release_signing_key.pgp

Creamos un nuevo archivo de repositorio:

~$ sudo nano /etc/apt/sources.list.d/mariadb.org.list

Con el siguiente contenido:

deb [signed-by=/etc/apt/trusted.gpg.d/mariadb-keyring.pgp] https://mirror.rackspace.com/mariadb/repo/10.6/debian bullseye main

Observa que hemos indicado el archivo de clave pública que acabamos de descargar y que la versión del motor de base de datos forma parte de la URL del repositorio, así que puedes elegir otra versión (10.11, 11.1, 11.2 u 11.3) cambiando dicha parte de la URL.

Ya podemos cerrar y guardar el archivo.

Instalación de la pila LAMP

El primer paso de este proceso será actualizar la información de los repositorios:

~$ sudo apt update

Si vas a usar la versión de PHP incluida en Debian 11, instala los componentes de la pila LAMP con este comando:

~$ sudo apt install -y apache2 libapache2-mod-php php php-mysql mariadb-server

Pero si has configurado el repositorio alternativo, tendrás que indicar el número de versión que te interese en los paquetes relacionados con PHP. Por ejemplo, para la versión 8.2:

~$ sudo apt install -y apache2 libapache2-mod-php8.2 php8.2 php8.2-mysql mariadb-server

Para MariaDB no hay que indicar versión, ya que el paquete a instalar se llama igual sea cual sea el repositorio del que proceda.

Una vez descargados estos paquetes y sus dependencias dispondremos de un par de servicios nuevos en Debian 11, los servicios apache2 y mariadb. Estos servicios quedan iniciados corriendo en segundo plano y habilitados para su inicio automático en cada arranque del sistema.

Podemos comprobar el estado de estos servicios con el comando systemctl:

~$ systemctl status apache2 mariadb

como instalar la pila lamp en debian 11 bullseye

Configurar el firewall

Si tienes activado el firewall UFW de Debian 11 y quieres permitir conexiones desde la red a las aplicaciones de la pila LAMP será necesario añadir un par de reglas.

Para permitir conexiones HTTP estándar:

~$ sudo ufw allow http

Y para permitir conexiones HTTPS seguras:

~$ sudo ufw allow https

Cómo probar la pila LAMP en Debian 11 Bullseye

Con todos los servicios de la pila LAMP funcionando en Debian 11 es fácil comprobar su funcionamiento a través de una pequeña página web realizada en PHP.

Crearemos el siguiente archivo:

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

El contenido será el siguiente:

<?php phpinfo();

Guardamos los cambios y cerramos el archivo.

Para acceder a esta página desde un navegador introduciremos la dirección IP, nombre DNS, dominio, etc. del servidor Debian 11 (o localhost si accedemos localmente) donde corre la pila LAMP y añadiremos la ruta /info.php.

Por ejemplo, la máquina Debian 11 sobre la que hemos preparado este tutorial es accesible en el subdominio debian11.local.lan, así que podemos usar http://debian11.local.lan/info.php como URL de prueba de la pila LAMP:

instalar la pila lamp en debian 11 bullseye

Igualmente, si te decidiste por una versión alternativa, por ejemplo, la 8.2, verás la información correspondiente:

En cualquier caso, esta página no sólo demuestra que la pila LAMP funciona, sino que ofrecerá abundante información sobre versiones y configuraciones.

En entornos de producción puede suponer un riesgo que esta información esté disponible tan fácilmente, así que es buena idea borrar el archivo PHP:

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

Cómo configurar la pila LAMP en Debian 11 Bullseye

PHP

Editaremos el archivo php.ini para el módulo del servicio web que corresponda a la versión instalada. Por ejemplo, para la versión nativa de Debian 11:

~$ sudo nano /etc/php/7.4/apache2/php.ini

Y para las versiones alternativas, por ejemplo la 8.2:

~$ sudo nano /etc/php/8.2/apache2/php.ini

Buscaremos la directiva date.timezone:

...
;date.timezone =
...

La activaremos eliminando el carácter ; al inicio de línea y le daremos el valor adecuado, por ejemplo, para España peninsular:

...
date.timezone = Europe/Madrid
...

Si no conoces el valor adecuado para tu zona horaria, puedes consultarlo en la documentación oficial.

Por otro lado, la configuración por defecto está orientada a entornos de producción, para ser accedidos por usuarios finales. Pero si se trata de un entorno de desarrollo seguramente querrás que se muestren mensajes de error que ayuden a depurar las aplicaciones que estés desarrollando. Para ello buscaremos estas directivas:

...
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
...
display_errors = Off
...
display_startup_errors = Off
...

Y cambiaremos sus valores por defecto por estos otros:

...
error_reporting = E_ALL
...
display_errors = On
...
display_startup_errors = On
...

Terminados los cambios, guardamos y cerramos el archivo y recargamos la configuración del servicio web:

~$ sudo systemctl reload apache2

También existe un archivo php.ini para la versión de consola que deberíamos editar igualmente.

En el caso de la versión nativa:

~$ sudo nano /etc/php/7.4/cli/php.ini

Y para una versión alternativa, como la 8.2 por ejemplo:

~$ sudo nano /etc/php/8.2/cli/php.ini

En este archivo podemos realizar cambios similares, especialmente en el caso de la directiva date.timezone, ya que muchas aplicaciones trabajan tanto con la parte del lenguaje usada por el servicio web como con la parte de consola, y es importante que calculen fecha y hora del mismo modo.

Los cambios realizados en este archivo se aplican de forma inmediata, tras guardarlos.

MariaDB

Por defecto el usuario root de MariaDB se identifica a través de sockets de Linux, así que no se necesita contraseña, bastará trabajar con un usuario con permisos de sudo:

~$ sudo mysql

configurar la pila lamp en debian 11 bullseye

O con el usuario root de Debian 11:

~# mysql

Si hemos instalado una versión del repositorio alternativa podremos comprobar exactamente cuál también al iniciar sesión:

A través del cliente de consola mysql podrás crear las bases de datos y usuarios que necesiten las aplicaciones web.

Puedes cerrar la conexión con el comando exit.

Conclusión

Ahora que sabes cómo instalar y configurar la pila LAMP en Debian 11 Bullseye fácilmente y en pocos minutos, ya puedes desarrollar tus propias aplicaciones web complejas o instalar aplicaciones desarrolladas por terceros.

Si tienes dudas, preguntas, sugerencias, correcciones, etc. puedes dejar un comentario (están moderados para evitar SPAM, pero se revisan a diario).

Y si gracias a esta pequeña guía ya tienes la pila LAMP instalada en tu propia máquina Debian 11 y quieres agradecérnoslo, siempre es bien recibida cualquier mínima aportación para mantener este sitio y crear nuevos artículos.

Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

5/5 - (5 votos)

2 comentarios en «Cómo instalar LAMP en Debian 11 Bullseye»

  1. Muy fáciles y bien explicados tus artículos.
    Lo que no encuentro o echo en falta es alguno para utilizar certificados autofirmados de Let’s encrypt ya sea aparte o como un añadido en la configuración del Webmin por ejemplo.
    Para tener los dominios con HTTPS que parece tan «amado» hoy día.

    Responder

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.