Cómo instalar la pila LAMP en CentOS 9

En este artículo veremos cómo instalar LAMP en CentOS 9 paso a paso, de modo que tendrás disponible esta pila de Apache, PHP y MariaDB/MySQL para las aplicaciones que lo requieran en tu servidor o VPS CentOS.

Antes de instalar LAMP en CentOS 9

Para seguir esta guía de instalación LAMP en CentOS 9 necesitas partir de la siguiente base:

  • Un sistema CentOS Stream 9 actualizado.
  • Acceso a terminal de comandos con un usuario con permisos de sudo o el mismo usuario root.
  • Conexión a Internet.

Una pila o entorno LAMP se basa en un sistema Linux con servidor web Apache, el lenguaje del lado de servidor PHP y motor de bases de datos MySQL o MariaDB. En esta guía instalaremos estos componentes, pero tienes guías específicas para cada uno de ellos en este mismo sitio.

Cómo instalar LAMP en CentOS 9

Para instalar una pila LAMP en CentOS 9 podemos usar los paquetes disponibles en los repositorios de la distribución y los del repositorios alternativo de Remi (para usar versiones de PHP más avanzadas o que incluyen extensiones extra).

PHP

Los módulos incluidos en la distribución corresponden a las versiones 8.1 y 8.2. Si necesitas una versión más moderna, como la 8.3, o requieres de ciertas extensiones (como la extensión sodium) hay que instalar el repositorio alternativo:

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

En cualquier caso, actualizamos los repositorios:

~$ sudo yum update -y

Y activamos el módulo que nos interese. Si se trata de una versión de los repositorios de CentOS 9 el módulo se denominará como php:XY, donde X.Y es la versión; por ejemplo, para la versión 8.2:

~$ sudo yum module enable -y php:8.2

Pero si se trata de un módulo del repositorio alternativo se denominará como php:remi-X.Y; por ejemplo, para la versión 8.3:

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

MySQL

Los repositorios de CentOS 9 incluyen paquetes para MySQL Server 8.0.

MariaDB

Los repositorios de CentOS 9 incluyen actualmente un único módulo para MariaDB 10.11, una versión estable y que tiene soporte a largo plazo.

Instalación y activación de los servicios de la pila LAMP

Si quieres instalar la versión de la pila LAMP con MariaDB instala los siguientes paquetes:

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

Pero si prefieres una pila LAMP basada en MySQL, instala estos otros:

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

Se crean los servicios httpd.service y php-fpm.service por un lado, y mariadb.service o mysqld.service por otro. Por defecto estos servicios no quedan iniciados ni habilitados para iniciar automáticamente junto a CentOS 9, así que los iniciaremos y habilitaremos a continuación.

Para la pila basada en MariaDB:

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

Y para la pila basada en MySQL:

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

Podemos comprobar que los servicios están en funcionamiento mediante los comandos:

~$ systemctl status httpd php-fpm mariadb -n 0

O:

~$ systemctl status httpd php-fpm mysqld -n 0

como instalar la pila lamp en centos 9

Configurando el firewall de CentOS 9

Si quieres que el servidor web sea accesible desde la red debes proporcionar una regla o excepción para el firewall: de CentOS 9:

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

Si sólo quieres ofrecer el servicio HTTP entonces puedes especificar unicamente ese protocolo:

~$ sudo firewall-cmd --permanent --add-service=http

Hay que recargar la configuración del firewall para aplicar los cambios:

~$ sudo firewall-cmd --reload

Probando el servicio

Para probar la integración del servidor web con PHP, crearemos un script de prueba en este lenguaje:

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

Y pondremos este contenido:

<?php phpinfo();

Accedemos a través de un navegador, indicando la dirección del servidor y la ruta /info.php (en este ejemplo, http://centos9.local.lan/info.php).

como instalar lamp en centos 9

Cómo configurar la pila LAMP en CentOS 9

Los servicios ya están configurados por defecto, pero es necesario realizar unos mínimos y rápidos ajustes.

Servicio web

El servidor web funciona bien con los valores por defecto, pero para ajustes avanzados puede interesarte nuestra guía de instalación de Apache en CentOS 9.

Configurar PHP

El archivo principal de configuración es php.ini que debemos editar:

~$ sudo nano /etc/php.ini

Buscamos la directiva date.timezone:

...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
...

Está desactivada, hay que darle el valor de la zona horaria que nos interese:

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

Puedes consultar los valores posibles para esta directiva en http://php.net/date.timezone.

Si tu servidor LAMP CentOS 9 es para producción y funcionamiento expuesto al público hemos terminado, pero si es para desarrollo necesitas configurar algunos valores de tratamiento de errores.

Busca las siguientes directivas:

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

Y cambia los valores adecuados para desarrollo:

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

Tras hacer cualquier cambio en la configuración del archivo php.ini es necesario recargar el servicio php-fpm:

~$ sudo systemctl reload php-fpm

Configurar el motor de bases de datos

MySQL

Por defecto se crea una cuenta de root sin contraseña, lo que puede suponer un problema de seguridad enorme si no se soluciona. Para ello conectaremos con el sistema:

~$ mysql -u root

Creamos un usuario administrador alternativo con contraseña:

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

De esta forma garantizamos poder conectar al servicio si cometemos algún error en la configuración de root.

Cerramos la conexión:

> exit

Editamos el archivo de configuración principal del servicio:

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

Y dentro de la sección [mysqld] añadimos la siguiente directiva plugin_load_add:

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

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart mysqld

Iniciamos sesión con el usuario administrador nuevo (y su contraseña):

~$ mysql -u instalador -p

Cambiamos el método de conexión del usuario root:

> alter user root@localhost identified with auth_socket;

Y cerramos la conexión.

A partir de este momento podemos administrar el servicio con el usuario administrador alternativo (y su contraseña) o con root a través de sudo:

~$ sudo mysql

MariaDB

El servicio usa por defecto el juego de caracteres latin1, cuando lo recomendable sería utilizar el UTF-8. Para hacer el cambio editamos el archivo de configuración:

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

Y añadimos estas dos líneas en la sección [server]:

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

Guardamos el archivo y reiniciamos el servicio:

~$ sudo systemctl restart mariadb

Podemos aprovechar para crear un usuario administrador con contraseña que pueda utilizarse de forma remota, a través de frontends, etc., conectando con el servicio:

~$ sudo mysql

Creamos el usuario con su contraseña y le damos privilegios:

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

Cerramos sesión:

> exit

Y probamos nuestro nuevo usuario:

~$ mysql -u instalador -p
Enter password:
...
>

Conclusión

Ahora que sabes cómo instalar una pila o stack LAMP en CentOS 9 ya puedes dar soporte a aplicaciones y CMS que lo requieren, o realizar tus propios desarrollos web avanzados.

Si tienes dudas o preguntas, alguna sugerencia, etc. puedes dejar un comentario.

¡Apoya esta entrada!

¿Te ha servido esta guía de instalación LAMP en CentOS 9 para montar tu servidor? Si es así y deseas agradecérnoslo, cualquier mínima contribución ayuda al mantenimiento de este sitio y elaboración de nuevos tutoriales y guías.

Puedes ayudarnos dejando tan sólo 1 $ de propina deshaciéndote de la calderilla que no usas en PayPal:

O, si te sientes especialmente generoso, puedes invitarnos a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario