Instalar la pila LAMP en Debian 11

La Pila LAMP es un conjunto común de herramientas de código abierto utilizadas para alojar sitios web y aplicaciones en la web. La Pila LAMP es una plataforma de desarrollo web que utiliza Linux como sistema operativo, Apache como servidor web, MariaDB/MySQL como servidor de bases de datos y PHP como lenguaje de scripting. Su uso está muy extendido y proporciona un conjunto de software probado para ofrecer aplicaciones web de alto rendimiento.

En este tutorial, te mostraremos cómo instalar la pila LAMP en Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar el servidor web Apache

El paquete del servidor web Apache está incluido en el repositorio por defecto de Debian 11. Puedes instalarlo simplemente ejecutando el siguiente comando:

apt-get install apache2 apache2-utils -y

Tras instalar el servidor web Apache, verifica la versión instalada de Apache con el siguiente comando:

apache2 -v

Deberías ver la siguiente salida:

Server version: Apache/2.4.48 (Debian)
Server built:   2021-08-12T11:51:47

Para iniciar el servicio Apache, ejecuta el siguiente comando:

systemctl start apache2

Para activar el servicio Apache de modo que se inicie al arrancar el sistema, ejecuta el siguiente comando:

systemctl enable apache2

También puedes comprobar el estado completo del Apache con el siguiente comando:

apt-get install elinks
apache2ctl fullstatus

Deberías ver la siguiente salida:

 Apache Server Status for localhost (via ::1)

   Server Version: Apache/2.4.48 (Debian)

   Server MPM: prefork

   Server Built: 2021-08-12T11:51:47

   --------------------------------------------------------------------------

   Current Time: Tuesday, 17-Aug-2021 09:29:41 UTC

   Restart Time: Tuesday, 17-Aug-2021 09:29:33 UTC

   Parent Server Config. Generation: 1

   Parent Server MPM Generation: 0

   Server uptime: 7 seconds

   Server load: 0.05 0.01 0.00

   Total accesses: 0 - Total Traffic: 0 kB - Total Duration: 0

   CPU Usage: u.03 s.02 cu0 cs0 - .714% CPU load

   0 requests/sec - 0 B/second

   1 requests currently being processed, 4 idle workers

Por defecto, Apache se ejecuta en el puerto 80, puedes comprobarlo con el siguiente comando:

ss -antpl | grep apache2

Deberías obtener la siguiente salida:

LISTEN 0      511                *:80              *:*    users:(("apache2",pid=44022,fd=4),("apache2",pid=44021,fd=4),("apache2",pid=44020,fd=4),("apache2",pid=44019,fd=4),("apache2",pid=44018,fd=4),("apache2",pid=44017,fd=4))

También puedes comprobar la instalación de Apache navegando por la URL http://your-server-ip. Deberías ver la página de prueba de Apache en la siguiente pantalla:

Página por defecto de Debian

Instalar el servidor de bases de datos MariaDB

MariaDB es un sistema de gestión de bases de datos que se utiliza para almacenar y gestionar los datos de tu sitio web. Puedes instalarlo utilizando el siguiente comando:

apt-get install mariadb-server -y

Una vez instalado MariaDB, inicia el servicio MariaDB y habilítalo para que se inicie al arrancar el sistema utilizando el siguiente comando:

systemctl start mariadb
systemctl enable mariadb

También puedes comprobar el estado del servicio MariaDB utilizando el siguiente comando:

systemctl status mariadb

Deberías ver la siguiente salida:

? mariadb.service - MariaDB 10.3.31 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

También se recomienda asegurar tu instalación de MariaDB y establecer una contraseña de root de MariaDB. Puedes ejecutar el script mysql_secure_installation para asegurar la instalación de MariaDB:

mysql_secure_installation

Se te pedirá que establezcas una contraseña de root de MariaDB, elimines los usuarios anónimos, deshabilites el inicio de sesión de root de forma remota y elimines la base de datos de prueba, como se muestra a continuación:

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Por defecto, MariaDB se ejecuta en el puerto 3306. Puedes comprobarlo utilizando el siguiente comando:

ss -antpl | grep mariadb

Deberías ver el siguiente comando:

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Para conectar la shell de MariaDB, ejecuta el siguiente comando:

mysql -u root -p

Proporciona tu contraseña de root de MariaDB y pulsa Intro para conectarte al shell de MariaDB. Una vez conectado, deberías ver la siguiente salida:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Ahora, ejecuta el siguiente comando para comprobar la versión de MariaDB:

MariaDB [(none)]> SELECT VERSION();

Deberías ver la siguiente salida:

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

Instalar el lenguaje de procesamiento PHP

PHP es el lenguaje de procesamiento utilizado para servir aplicaciones PHP en el servidor web. Por defecto, la versión de PHP disponible en Debian 11 es PHP 7.4. Puedes instalar PHP con otras extensiones de uso común con el siguiente comando:

apt-get install php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml -y

Una vez instalado PHP, verifica la versión de PHP con el siguiente comando:

php -v

Deberías ver la siguiente salida:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Crear un host virtual para Apache

En este punto, la pila LAMP está instalada en tu servidor. Ahora, necesitarás crear un archivo de configuración del host virtual de Apache para alojar cualquier aplicación.

En este caso, crearemos un directorio ejemplo.com para alojar una página PHP. Puedes crearlo con el siguiente comando:

mkdir /var/www/html/example.com

A continuación, establece la propiedad del directorio example.com en www-data:

chown -R www-data:www-data /var/www/html/example.com

A continuación, crea un archivo de configuración de host virtual Apache con el siguiente comando:

nano /etc/apache2/sites-available/example.com.conf

Añade las siguientes líneas:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example.com
    DocumentRoot /var/www/html/example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Guarda y cierra el archivo y, a continuación, activa el host virtual ejemplo.com y desactiva el host virtual por defecto con el siguiente comando:

a2ensite example.com.conf
a2dissite 000-default

A continuación, comprueba que el archivo de host virtual no contenga ningún error de sintaxis con el siguiente comando:

apache2ctl configtest

Si todo va bien, deberías ver la siguiente salida:

Syntax OK

Por último, reinicia el servicio Apache para aplicar los cambios de configuración:

systemctl reload apache2

También puedes comprobar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Deberías ver la siguiente salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:30 UTC; 2min 56s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 2257 (apache2)
      Tasks: 55 (limit: 2353)
     Memory: 5.3M
     CGroup: /system.slice/apache2.service
             ??2257 /usr/sbin/apache2 -k start
             ??2259 /usr/sbin/apache2 -k start
             ??2260 /usr/sbin/apache2 -k start

Aug 21 04:13:30 debian11 systemd[1]: Starting The Apache HTTP Server...
Aug 21 04:13:30 debian11 apachectl[2246]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 216.9>
Aug 21 04:13:30 debian11 systemd[1]: Started The Apache HTTP Server.

Verificar la instalación de PHP en Apache

A continuación, tendrás que crear un archivo PHP de ejemplo para servirlo a través del servidor web Apache. Puedes crear un archivo phpinfo.php dentro de tu directorio example.com:

nano /var/www/html/example.com/phpinfo.php

Añade la siguiente línea:

<?php phpinfo(); ?>

Guarda y cierra el archivo y, a continuación, abre tu navegador web y accede a tu página PHP utilizando la URL http://example.com/phpinfo.php. Deberías ver tu página PHP en la siguiente pantalla:

PHP en Debian 11

Conclusión

En la guía anterior hemos explicado cómo instalar la pila LAMP en Debian 11. Ahora puedes empezar a alojar tu primer sitio web utilizando la pila LAMP. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...