LAMP es un grupo de programas de código abierto que suelen instalarse juntos para que un servidor pueda alojar sitios web dinámicos y aplicaciones web escritas en PHP. Este término es un acrónimo que representa el sistema operativo Linux con el servidor web Apache. Los datos del sitio se almacenan en una base de datos MySQL, y el contenido dinámico es procesado por PHP.
En esta guía, configuraremos un entorno LAMP en un servidor Ubuntu 22.04.
Requisitos previos
Para completar este tutorial, necesitaremos tener un servidor Ubuntu 22.04 con una cuenta de usuario no root habilitada para sudo
y un cortafuegos básico.
Paso 1 – Instalación de Apache y actualización del cortafuegos
El servidor web Apache es uno de los más populares del mundo. Está bien documentado, tiene una comunidad activa de usuarios, y ha sido ampliamente utilizado durante gran parte de la historia de la web, lo que lo convierte en una gran opción para alojar un sitio web.
Empezamos por actualizar la caché del gestor de paquetes:
$ sudo apt update
A continuación, instalamos Apache con:
$ sudo apt install apache2
Una vez finalizada la instalación, tenemos que ajustar la configuración del cortafuegos para permitir el tráfico HTTP. La herramienta de configuración del cortafuegos por defecto de Ubuntu se llama Uncomplicated Firewall (UFW). Tiene diferentes perfiles de aplicación que podemos aprovechar. Para listar todos los perfiles de aplicación UFW disponibles actualmente, ejecutamos este comando:
$ sudo ufw app list
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Apache: Este perfil sólo abre el puerto 80
(tráfico web normal, no cifrado).
Apache Full: Este perfil abre tanto el puerto 80
(tráfico web normal, no cifrado) como el puerto 443
(tráfico cifrado TLS/SSL).
Apache Seguro: Este perfil sólo abre el puerto 443
(tráfico cifrado TLS/SSL).
Por ahora, es mejor permitir sólo conexiones en el puerto 80
, ya que se trata de una instalación nueva de Apache y aún no tiene un certificado TLS/SSL configurado para permitir el tráfico HTTPS en el servidor.
Para permitir tráfico sólo en el puerto 80
, habilitamos el perfil de Apache
:
$ sudo ufw allow in "Apache"
Verificamos el cambio con:
$ sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Ahora el cortafuegos permite el tráfico a través del puerto 80
.
Podemos hacer una comprobación rápida para verificar que todo ha ido según lo previsto visitando la dirección IP pública del servidor en un navegador web:
http://ip_del_servidor
Debemos poder ver la página web de Apache predeterminada en Ubuntu 22.04:
Si podemos ver esta página, nuestro servidor web está correctamente instalado y es accesible a través del cortafuegos.
Paso 2 – Instalación de MySQL
Ahora que tenemos un servidor web en funcionamiento, necesitamos instalar el sistema de base de datos para poder almacenar y gestionar los datos de nuestro sitio web. MySQL es un popular sistema de gestión de bases de datos utilizado en entornos PHP.
De nuevo, usamos apt
para instalar este software:
$ sudo apt install mysql-server
Una vez finalizada la instalación, se recomienda ejecutar el script de seguridad mysql_secure_installation
que viene preinstalado con MySQL. Este script eliminará algunas configuraciones inseguras por defecto y bloqueará el acceso a nuestro sistema de base de datos.
Antes de ejecutarlo, primero debemos configurar la contraseña del usuario root de MySQL, ya que no tiene:
$ sudo mysql
A continuación, ejecutamos el siguiente comando ALTER USER
para cambiar el método de autenticación del usuario root a uno que utilice una contraseña. El siguiente ejemplo cambia el método de autenticación a mysql_native_password
(acuérdate de sustituir password por tu contraseña):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Después de realizar este cambio, salimos de MySQL con la instrucción exit
:
mysql> exit
Ahora ya podemos inicar el script ejecutando:
$ sudo mysql_secure_installation
Este script nos hará una serie de preguntas de configuración. La primera pregunta es para determinar si queremos configurar el plugin VALIDATE PASSWORD
, que sirve para validar la robustez de las contraseñas de nuestros usuarios MySQL. Es seguro contestar NO
a esta pregunta y no habilitar el plugin, pero debemos asegurarnos de crear contraseñas fuertes a los usuarios de la base de datos.
Podemos contestar SÍ
al resto de preguntas.
Al finalizar la ejecución del script, comprobamos si podemos iniciar sesión en la consola MySQL con el siguiente comando:
$ sudo mysql -p
Nos pedirá que introduzcamos la contraseña que hemos configurado anteriormente para el usuario root y nos conectará al servidor MySQL como usuario administrador de base de datos, mostrando una salida como esta:
Output Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.28-0ubuntu4 (Ubuntu) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Para salir de la consola de MySQL ejecutamos:
mysql> exit
Nuestro servidor MySQL ya está instalado y protegido. A continuación, instalaremos PHP, el último componente del stack LAMP.
Paso 3 – Instalación de PHP
PHP es el componente de nuestra configuración que procesará el código para mostrar contenido dinámico al usuario final. Además del paquete php
, necesitaremos php-mysql
, un módulo PHP que permite a PHP comunicarse con bases de datos basadas en MySQL. También necesitaremos libapache2-mod-php
para permitir a Apache manejar archivos PHP. Los paquetes principales de PHP se instalarán automáticamente como dependencias.
Para instalar estos paquetes, ejecutamos el siguiente comando:
$ sudo apt install php libapache2-mod-php php-mysql
Una vez finalizada la instalación, ejecutamos el siguiente comando para confirmar la versión de PHP:
$ php -v
Output
PHP 8.1.2 (cli) (built: Mar 4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
En este punto, nuestro entorno LAMP es completamente operativo.
2 comentarios sobre «Cómo instalar Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 22.04»