Cómo instalar la pila LAMP en Rocky Linux 8

En esta entrada explicaremos cómo instalar la pila LAMP en Rocky Linux 8 paso a paso, de tal forma que puedas instalar o desarrollar aplicaciones web complejas basadas en Apache, PHP y MariaDB/MySQL sobre tu máquina, servidor o VPS Rocky Linux.

Antes de instalar la pila LAMP en Rocky Linux 8

Si quieres completar los pasos de esta guía de instalación de la pila LAMP en Rocky Linux 8, sólo tienes que cumplir los siguientes requisitos básicos:

  • Una máquina Rocky Linux 8 actualizada.
  • Un usuario con privilegios de sudo.
  • Acceso a Internet.

Como seguramente ya cumples todos estos requerimientos es el momento de ajustar tu mesa a la altura más cómoda, abrir una consola de comandos y ponernos a trabajar.

Cómo instalar la pila LAMP en Rocky Linux 8

Para instalar la pila LAMP en Rocky Linux 8 podríamos usar sólo paquetes procedentes de los repositorios de la distribución, pero puede que algún componente como PHP no se correspondan con la versión que necesites (actualmente se ofrece desde la versión 7.2 a la 8.2, pero no la 8.3) Otro tanto sucede si prefieres usar MariaDB en lugar de MySQL, ya que la versión por defecto es la 10.3.

PHP 8.3, 8.2, 8.1 y anteriores

Si te sirve alguna de las versiones de la 7.2 a la 8.2 incluidas en la distribución, puedes saltarte esta sección.

Si necesitas la versión 8.3 (o alguna superior, cuando salga) habrá que instalar el repositorio alternativo:

~$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Actualizamos la información de los repositorios para que se incluyan las listas de paquetes de los que acabamos de instalar:

~$ sudo yum update -y

Deshabilitamos el módulo de PHP del repositorio de Rocky Linux 8:

~$ sudo yum module disable -y php

Y habilitamos el módulo que nos interese. En el caso de optar por una versión incluida en Rocky Linux, el nombre del módulo será php:X.Y, donde X.Y es la versión requerida; por ejemplo, para PHP 8.2:

~$ sudo yum module enable -y php:8.2

Y si necesitamos un módulo del repositorio alternativo, el nombre del módulo será php:remi-X.Y, sustituyendo igualmente X.Y por el valor adecuado; por ejemplo, para PHP 8.3:

~$ sudo yum module enable -y php:remi-8.3

Recuerda que antes de cambiar la versión por defecto previamente hay que desactivar el módulo activo:

~$ sudo yum module disable -y php

MariaDB 10.5, 10.6 y superiores

Si prefieres usar MySQL, puedes saltarte esta sección.

Rocky Linux 8 ofrece como versión por defecto la versión 10.3, aunque también están disponibles opcionalmente la 10.5 y la 10.11.

Si quieres cambiar de versión en primer lugar hay que desactivar el módulo actual:

~$ sudo yum module disable -y mariadb

Y activar el módulo de la versión que te interese, por ejemplo, para la 10.11:

~$ sudo yum module enable -y mariadb:10.11

Pero si necesitas trabajar con las versiones 11.3, 11.4, etc. hay que instalar el repositorio oficial, para lo que creamos un archivo de repositorio:

~$ sudo nano /etc/yum.repos.d/mariadb.org.repo

Y añadimos el siguiente contenido:

[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/11.3/rhel/$releasever/$basearch
module_hotfixes = 1
gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1

Si quieres otra versión, como la 11.4, haz el cambio apropiado en la directiva baseurl anterior.

Una vez guardado y cerrado el archivo, actualizamos los repositorios:

~$ sudo yum update

Instalación del servicio web y PHP

Instalamos los paquetes que corresponden al servicio web y al lenguaje de programación:

~$ sudo yum install -y httpd php php-mysqlnd

Instalación del motor de bases de datos

En cuanto al servicio de bases de datos podemos optar por MariaDB y MySQL.

Para instalar MariaDB:

~$ sudo yum install -y mariadb-server

O para instalar MySQL:

~$ sudo yum install -y mysql-server

Iniciando los servicios

Tras la descarga e instalación de todos estos paquetes y sus dependencias se crean nuevos servicios en Rocky Linux 8, los servicios httpd para el servicio web, php-fpm para el servicio PHP y mariadb o mysqld para el servicio de bases de datos (dependiendo del que hayamos elegido).

Iniciamos y habilitamos el servicio web y el servicio PHP-FPM:

~$ sudo systemctl enable --now httpd php-fpm

Si hemos elegido MariaDB iniciamos y habilitamos su servicio:

~$ sudo systemctl enable --now mariadb

Y si hemos optado por MySQL, hacemos lo propio:

~$ sudo systemctl enable --now mysqld

Podemos comprobar fácilmente que estos servicios quedan en ejecución y habilitados para su inicio automático también con el comando systemctl:

~$ systemctl status httpd php-fpm mariadb

O:

~$ systemctl status httpd php-fpm mysqld

como instalar la pila lamp en rocky linux 8

Configuración del firewall

Si vas a permitir conexiones en red a tu servidor LAMP Rocky Linux 8 es necesario añadir las excepciones necesarias al firewall, concretamente para los puertos HTTP y HTTPS:

~$ sudo firewall-cmd --permanent --add-service={http,https}

Aplicamos estas reglas recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Cómo probar la pila LAMP en Rocky Linux 8

Para probar la pila LAMP que acabamos de instalar en Rocky Linux 8 desde un navegador, crearemos un sencillo script en PHP:

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

Su contenido será únicamente la siguiente línea:

<?php phpinfo();

Guardamos y cerramos el archivo.

Ahora, desde el navegador web indicamos la dirección IP, nombre DNS, dominio, etc. del servidor Rocky Linux 8 (o localhost si trabajamos localmente) y añadimos la ruta /info.php.

Por ejemplo, la máquina Rocky Linux 8 sobre la que hemos desarrollado este tutorial es accesible en el subdominio rocky8.local.lan, así que podemos usar http://rocky8.local.lan/info.php como URL de prueba:

la pila lamp en rocky linux 8

Esta página es la prueba de que todos los elementos de la pila LAMP están interconectados y funcionando, además de ofrecer mucha información sobre su configuración.

Cómo configurar la pila LAMP en Rocky Linux 8

Vamos a configurar la pila LAMP en Rocky Linux 8 rápidamente, ya que como acabamos de ver la configuración por defecto es funcional.

PHP

Sin embargo, sí sería interesante revisar rápidamente la configuración de PHP, para lo que editamos el archivo php.ini:

~$ sudo nano /etc/php.ini

Buscamos esta línea:

...
;date.timezone =
...

Activamos la directiva eliminando el carácter ; inicial y le damos el valor que necesitemos:

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

Si no sabes qué valor corresponde a tu zona horaria, consúltalo en la documentación oficial.

En caso de que estés montando un servidor LAMP para producción al que accederán usuarios finales, el resto de la configuración presenta valores adecuados. Pero si se trata de un servidor para desarrollo de aplicaciones sin duda querrás que se muestre información en caso de errores para poder depurar dichas aplicaciones.

Para este último caso localiza estas directivas:

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

Y cambia sus valores por defecto por estos otros:

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

Una vez guardados los cambios, recargamos la configuración del servicio PHP-FPM para que los tenga en cuenta.

~$ sudo systemctl reload php-fpm

MariaDB

Versiones de la distribución

El usuario root del motor de bases de datos no tiene contraseña, algo que no es aconsejable para la mayoría de escenarios, así que conectaremos al servicio para solucionarlo:

~$ mysql -u root

El primer paso será crear un usuario administrador alternativo:

> grant all privileges on *.* to instalador identified by 'XXXXXXXX' with grant option;

Cerramos sesión:

> exit

Y volvemos a iniciarla, esta vez usando nuestro nuevo administrador:

~$ mysql -u instalador -p

Una vez introducida la contraseña, modificamos el plugin de conexión para root:

> alter user root@localhost identified with unix_socket;

Cerramos de nuevo sesión:

> exit

El nuevo método de conexión para root depende de un plugin que el servicio de bases de datos no carga por defecto. Para solucionarlo, editamos el archivo de configuración del servidor:

~$ sudo nano /etc/my.cnf.d/mariadb-server.cnf

En la sección [server] del archivo añadimos esta línea:

...
[server]
plugin-load-add=auth_socket.so
...

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart mariadb

Ahora para conectar como root sólo será posible hacerlo usando sudo:

~$ sudo mysql

como configurar la pila lamp en rocky linux 8

Las versiones del repositorio oficial ya incluyen esta configuración del usuario root (excepto lo relacionado con tu propio usuario administrador).

Versiones del repositorio oficial

Para conectar al servicio como root con el cliente mysql hay que usar sudo:

~$ sudo mysql

Eliminamos la base de datos de pruebas:

> drop database test;

Comprobamos los usuarios anónimos incluidos:

> select user,host from mysql.user;
+-------------+------------------+
| User        | Host             |
+-------------+------------------+
|             | localhost        |
| mariadb.sys | localhost        |
| mysql       | localhost        |
| root        | localhost        |
|             | rocky8.local.lan |
+-------------+------------------+

En este caso hay dos usuarios anónimos, aquellos cuyo valor en la columna ‘User‘ es nulo. Procedemos a eliminarlos:

> drop user ''@localhost;
> drop user ''@rocky8.local.lan;

Opcionalmente, podemos crear un usuario administrador con acceso mediante contraseña y capacidad de conexión remota:

> grant all privileges on *.* to instalador identified by 'XXXXXXXX' with grant option;

Ya podemos cerrar la conexión:

> exit

El servicio por defecto usa el juego de caracteres latin1, pero es recomendable usar UTF-8, así que podemos editar el archivo de configuración:

~$ sudo nano /etc/my.cnf.d/server.cnf

En la sección [server] añadimos estas dos directivas:

...
[server]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
...

Guardamos y cerramos el archivo, y reiniciamos el servicio para que cargue los nuevos ajustes:

~$ sudo systemctl restart mariadb

MySQL

Con MySQL ocurre algo parecido al caso anterior, el usuario root del servicio de bases de datos no tiene contraseña. Lo solucionaremos realizando algún ajuste en el archivo de configuración del servicio:

~$ sudo nano /etc/my.cnf.d/mysql-server.cnf

Añadimos esta directiva plugin-load-add dentro de la sección [mysqld]:

...
[mysqld]
...
plugin-load-add=auth_socket.so

Guardamos el archivo y reiniciamos el servicio:

~$ sudo systemctl restart mysqld

Conectamos al servicio con el cliente mysql:

~$ mysql -u root

Creamos un usuario administrador alternativo con contraseña y capacidades de conexión remota:

> create user instalador identified by 'XXXXXXXX';
> grant all privileges on *.* to instalador with grant option;

Cambiamos el método de conexión para root:

> alter user root@localhost identified with auth_socket;

Cerramos la conexión:

> exit

Ahora root sólo puede acceder a través del comando sudo:

~$ sudo mysql

Conclusión

Ahora que sabes cómo instalar y configurar la pila LAMP en Rocky Linux 8 ya estás en condiciones de instalar potentes aplicaciones web o desarrollar las tuyas propias en tu máquina o servidor, proporcionando la plataforma básica que necesitan para funcionar.

¡Apoya comoinstalar.me!

Si ya funciona la pila LAMP en tu propia máquina Rocky Linux 8 y quieres agradecérnoslo, siempre es bienvenida cualquier pequeña aportación al mantenimiento de este sitio y la creación de más tutoriales y guías.

Puedes ayudarnos dejando una propina a partir de 1 $ mediante PayPal:

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

¡Gracias!

¿Dudas, preguntas, sugerencias?

¿Te ha surgido alguna duda o pregunta? ¿Quieres hacernos alguna corrección o sugerencia? Si es así puedes dejarnos un comentario que, aunque están moderados para evitar SPAM, se revisan prácticamente a diario.

Valora esta entrada

5/5 - (4 votos)

1 comentario en «Cómo instalar la pila LAMP en Rocky Linux 8»

Deja un comentario