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.
Tabla de contenidos
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
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:
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
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!
Actualización para contemplar versiones más recientes de MariaDB.
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.