Cómo instalar LAMP en Ubuntu 20.04 LTS

En este artículo explicamos cómo instalar la pila LAMP en Ubuntu 20.04 LTS Focal Fossa paso a paso, de modo que en muy pocos minutos dispondrás de Apache, MariaDB/MySQL y PHP integrados en tu servidor o VPS Ubuntu.

Antes de instalar LAMP en Ubuntu 20.04 LTS

Para completar los pasos de esta guía de instalación de la pila LAMP Server en Ubuntu 20.04 sólo necesitas partir de los siguientes requerimientos básicos:

  • Una instalación actualizada de Ubuntu 20.04 LTS Focal Fossa.
  • Acceso a línea de comandos con un usuario con capacidades de sudo.
  • Conexión a Internet.

Cómo instalar LAMP en Ubuntu 20.04

Vamos a instalar la pila LAMP en Ubuntu 20.04 LTS en su mayoría desde los repositorios de la distribución, por lo que el primer paso será actualizar las listas de paquetes:

~$ sudo apt update

¿PHP 7.3 ó PHP 8 en Ubuntu 20.04?

En el nuevo Ubuntu 20.04 LTS Focal Fossa por fin disponemos de PHP 7.4 en los repositorios oficiales, pero ¿y si necesitas una versión anterior o posterior? Si necesitas PHP 8.0, PHP 7.3 ó incluso versiones más antiguas será necesario configurar un repositorio adicional.

Instalaremos previamente alguna herramienta necesaria:

~$ sudo apt install software-properties-common

Ya podemos instalar el repositorio:

~$ sudo add-apt-repository ppa:ondrej/php

Se nos mostrará un aviso informativo que pasaremos por alto pulsando la tecla intro.

Y actualizamos las listas de paquetes:

~$ sudo apt update

A partir de este momento, en cualquier paquete de PHP que necesitemos, si no especificamos número de versión el el nombre se referirá a la última versión estable, PHP 8.0 en el momento de actualizar este tutorial). Si queremos una versión distinta cambiaremos la partícula php por php7.x ó php8.x. Por ejemplo, si necesitamos el módulo de Apache para PHP 7.3, en lugar de instalar libapache2-mod-php (que correspondería a PHP 8.0) instalamos el paquete libapache2-mod-php7.3.

Instalación de los paquetes

A continuación habrá que instalar los paquetes que componen los distintos elementos de la pila LAMP para Ubuntu 20.04 (ten en cuenta lo dicho antes sobre los nombres de paquetes de PHP). El siguiente comando instalará PHP 7.4 si no has instalado el repositorio adicional, ó PHP 8.0 si lo has instalado:

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

Si has instalado una versión concreta del repositorio alternativo habrá que indicarla en la nomenclatura de los paquetes, por ejemplo para PHP 7.3:

~$ sudo apt install -y apache2 libapache2-mod-php7.3 php7.3-mysql mariadb-server

En unos instantes se descargarán e instalarán estos paquetes y sus dependencias, creándose los servicios apache2.service y mariadb.service, o apache2 y mariadb si prefieres los nombres cortos. Ambos servicios quedan iniciados y habilitados para su arranque automático junto a Ubuntu 20.04.

En cualquier momento puedes comprobar el estado de los servicios que forman la pila LAMP en Ubuntu 20.04 mediante el comando systemctl status apache2 mariadb:

como instalar lamp en ubuntu 20.04 lts focal fossa

Configurar el firewall UFW de Ubuntu 20.04 para la pila LAMP

Si tienes activado el firewall UFW en Ubuntu 20.04 y necesitas acceder desde red a los servicios que ofrece la pila LAMP, debes añadir algunas reglas.

Para permitir el acceso HTTP estándar:

~$ sudo ufw allow http

Para permitir el acceso HTTPS si estás ofreciendo conexiones seguras:

~$ sudo ufw allow https

Si quisieras permitir el acceso remoto al servicio de bases de datos (aunque no es recomendable):

~$ sudo ufw allow mysql

Estos cambios se aplican inmediatamente.

Configurar LAMP en Ubuntu 20.04

Para configurar los componentes de la pila LAMP en Ubuntu 20.04 realizaremos unos mínimos ajustes.

Apache

Es interesante para evitar alertas y eventos en los registros asignar un valor a la variable ServerName en el archivo de configuración principal:

~$ sudo nano /etc/apache2/apache2.conf

Al principio de la configuración global añadiremos esta directiva con el dominio, nombre o incluso dirección IP del servidor Ubuntu 20.04:

...
#ServerRoot "/etc/apache2"

ServerName ubuntu2004.local.lan:80
...

Guardados los cambios, los aplicamos recargando la configuración del servicio:

~$ sudo systemctl reload apache2

PHP

El archivo de configuración principal es el famoso php.ini, que editaremos (modifica la ruta siguiente de acuerdo con la versión de PHP que hayas instalado):

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

Un valor que es importante configurar es la zona horaria, para que las aplicaciones web calculen la hora correctamente, por lo que buscaremos la directiva date.timezone:

...
;date.timezone =
...

Por defecto esta directiva está desactivada, así que la activaremos eliminando el carácter ; inicial y le daremos el valor de la zona horaria que le interese:

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

Si no conoces el valor de la zona horaria que te interesa, puedes consultarlo en la documentación de PHP.

En cuanto al tratamiento de errores, la configuración por defecto está dirigida a entornos de producción, por lo que se ocultan los mensajes de error. Pero si tu entorno es de desarrollo, necesitarás activar los mensajes de error para facilitar la depuración. Habrá que modificar los valores de las siguientes directivas tal como se muestra a continuación:

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

En los comentarios figuran los valores de producción y desarrollo, por lo que es fácil revertir los cambios.

Guardados los cambios, los aplicamos recargando la configuración del servicio web:

~$ sudo systemctl reload apache2

Existe también otro archivo php.ini para la versión de PHP de consola o CLI. Podemos editarlo teniendo en cuenta su ruta de ubicación:

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

Haremos los cambios necesarios de modo similar, aunque en este caso los nuevos ajustes se aplican directamente.

MariaDB

La configuración por defecto de MariaDB prácticamente no necesita ajustes, ya que sus valores son operativos. Para conectar al servicio con el usuario root de MariaDB se necesita lanzar el cliente mysql con sudo:

~$ sudo mysql

Si prefieres acceder con root mediante contraseña, puedes cambiar la forma de autenticación una vez iniciada sesión:

> alter user root@localhost identified via mysql_native_password;

Hecho esto habrá que crear la contraseña:

> alter user root@localhost identified by 'XXXXXXXX';

Y actualizaremos la tabla de privilegios para aplicar los cambios de inmediato:

> flush privileges;

Ya podemos cerrar la conexión:

> exit

Desde este momento hay que especificar el usuario y solicitar contraseña para poder conectar:

~$ mysql -u root -p
Enter password:
...
MariaDB [(none)]>

En cualquier momento puedes volver al sistema de autenticación sin contraseña, por socket de Unix, iniciando sesión y cambiando de nuevo el método:

> alter user root@localhost identified via unix_socket;

Y conviene refrescar la tabla de permisos nuevamente:

> flush privileges;

Cómo probar la pila LAMP en Ubuntu 20.04

Para probar la pila LAMP en Ubuntu 20.04 crearemos un pequeño script en PHP fácilmente accesible vía web:

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

El contenido será esta única línea:

<?php phpinfo();

Una vez, guardado el archivo podremos acceder desde un navegador. Bastará con introducir como URL la dirección IP o dominio del servidor Ubuntu 20.04 añadiendo la ruta /info.php (o como hayas decidido nombrar el archivo).

Por ejemplo, el servidor Ubuntu 20.04 sobre el que realizamos este tutorial es accesible en el dominio ubuntu 2004.local.lan, por lo que accedemos con http://ubuntu2004.local.lan/info.php como dirección:

instalar y configurar lamp en ubuntu 20.04 lts focal fossa

Esta página nos ofrecerá gran cantidad de información sobre la configuración del servicio web y PHP, extensiones disponibles, etc.

Conclusión

Ahora que sabes cómo instalar y configurar la pila LAMP en Ubuntu 20.04 LTS Focal Fossa ya puedes comenzar a desarrollar potentes aplicaciones web, o establecer la base sobre la que se apoyan aplicaciones de terceros.

Si te ha surgido alguna duda o pregunta, quieres sugerir mejoras de este artículo o crees que necesita una actualización, notificar algún error, etc., puedes dejar un comentario que leeré encantado.

¡Apoya comoinstalar.me!

¿Ya tienes el entorno funcionando gracias a esta guía de instalación y configuración de la pila LAMP en Ubuntu 20.04? Si es así y quieres agracecérnoslo, cualquier pequeña ayuda contribuirá más de lo que imaginas al mantenimiento de este sitio y la elaboración de nuevos tutoriales sobre Ubuntu 20.04 o la pila LAMP. Puedes ayudar dejando una propina de 1 $ con el saldo que no usas en PayPal:

 

O, si te sientes especialmente generoso, invitándonos a un café:

¡Gracias!

Valora esta entrada

32 comentarios en «Cómo instalar LAMP en Ubuntu 20.04 LTS»

  1. Excelente tutorial, sólo tengo una pregunta, ¿cuál es la diferencia, aparte de la instalación, con las instalaciones que haces por medio de apt?

    Responder
    • Hola, Gabriel. Para instalar la aplicación a la que te refieres basta con instalar la extensión MySQL que menciona este tutorial. ¿Qué versión de PHP estás utilizando?

      Responder
  2. Para acceder a la URL, no es necesario especificar local.lan, sino simplemente el nombre de tu dominio en este caso ubuntu2004/info.php y debería funcionar sin problemas.

    Responder
    • No solo no es necesario especificar local.lan, sino que no funcionará, a no ser que sea el dominio de tu red, por eso al principio del párrafo se especifica que es un EJEMPLO. Por otro lado, ubuntu2004 no es un dominio, sino el hostname o nombre de máquina. En caso de una red compleja o trabajar en un servidor o VPS en Internet, difícilmente se podrá acceder sólo con el nombre de máquina.

      Responder
    • A ver, Fernando, alma de cántaro, lo que no funciona es tu comprensión lectora. Es normal que no puedas acceder a esa URL porque tal como se indica claramente, el subdominio ubuntu2004.local.lan pertenece a mi red local. Justo en el párrafo anterior se explica que debe utilizarse la dirección IP o dominio (si existe) de TU máquina Ubuntu 20.04 LTS.

      Responder
  3. La versión 7.4, por algún motivo no estaba instalada, la he instalado y me ha creado una carpeta en la ruta /etc/php/7.4/cli, la cual dentro tiene un php.ini, la ruta no es la misma, ¿pero debería funcionar esta instalación modificando ese archivo?

    Responder
    • Hola, Brais. Ese php.ini corresponde a la versión de consola de PHP, la que llamas con el comando php. Creo que te falta instalar también el módulo de PHP 7.4 para Apache, que es el que crea el php.ini que te interesa.

      Responder
      • Genial, he instalado el módulo de PHP 7.4, he hecho los cambios en php.ini y ha funcionado a la perfección, es extraño porque en teoría se me había instalado todo bien pero parece ser que lo que hizo fué saltarse la instalación de PHP sin dar ningún error y se me pasó, ya he conseguido ejecutar phpinfo sin problemas, eso quiere decir que está la pila LAMP correctamente instalada, ¿no?

        Muchas gracias.

        Responder
  4. Buenas tardes, he seguido el tutorial y todo bien hasta el momento de localizar la carpteta de PHP, accedo a /etc/php/7.4 y ahí dentro sólo está la carpeta llamada mods-available, no está el php.ini, en ninguna de las 2 rutas que se exponen, ¿a qué puede ser debido? Hasta ese momento no he tenido error alguno.

    Un saludo.

    Responder
  5. Buenas noches. Cometí un error y ahora cada vez que quiero iniciar sesión con mysql me dice el error que el plugin ‘micontrasena‘ no está cargado. ¿Qué podría hacer?

    Responder
  6. No consigo entrar con el comando sudo mysql, me da error.

    sudo mysql
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

    Responder
    • Hola, valek. ¿Has comprobado que el servicio MariaDB esté funcionando? Por ejemplo con systemctl status mariadb. Si el servicio no está en funcionamiento quizá puedas encontrar el motivo en el registro de errores, en el archivo /var/log/mysql/error.log.

      Responder
  7. Hola,
    No consigo ver la información del info.php creado con el tutorial…
    No sé si quizá es por que cometí algún fallo al seguir tus pasos.

    Responder
    • Hola, Roberto. Deberías indicar algo más de información sobre tu problema.

      ¿Accedes local o remotamente? ¿Puedes acceder a la página web principal del servidor LAMP (sin añadir /info.php)? ¿Con qué URL completa visitas la página info.php? ¿Qué errores o qué comportamiento obtienes al acceder?

      Responder
      • Tengo el mismo problema, no puedo ver la información del PHP, mientras tanto sí puedo ver la información del Apache pero cuando agrego el /info.php se queda en blanco.

        Responder
        • ¡Hola, Iván! Revisa el contenido del archivo info.php, puede que haya algún error. Si crees que todo está correcto revisa el archivo de registro de Apache, en /var/log/apache2/error.log, donde quizás encuentres información sobre el problema.

          Responder

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies