Cómo instalar LAMP en CentOS 8 / CentOS Stream 8

En este artículo veremos cómo instalar LAMP en CentOS 8 / CentOS Stream 8 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 8

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

  • Un sistema CentOS 8 / CentOS Stream 8 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 8

Para instalar una pila LAMP en CentOS 8 usaremos los paquetes disponibles en los repositorios de la distribución y, opcionalmente, en repositorios auxiliares, por lo que la primera tarea es actualizar el sistema:

~$ sudo yum update -y

En cuanto a PHP, la versión incluida en la distribución es la 7.2, que a día de hoy puede resultar un tanto obsoleta, por lo que puede ser interesante configurar un repositorio para las versiones más recientes.

PHP 7.3, 7.4, 8.0 y 8.1

Para poder trabajar con estas versiones instalamos el repositorio Remi:

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

Actualizamos las listas de paquetes:

~$ sudo yum update

Desactivamos la versión de PHP de CentOS 8:

~$ sudo yum module disable -y composer glpi php

Y activamos la versión que nos interese (la 8.0, en este caso):

~$ sudo yum module enable -y composer glpi php:remi-8.0

Como estarás imaginando, puedes usar el parámetro remi-7.4 ó remi-8.1 para otras versiones.

Instalación del servicio web y PHP

Empezaremos instalando los paquetes comunes correspondientes al servidor web Apache, PHP y la extensión de PHP para conexión a bases de datos. Instalaremos estos paquetes con yum:

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

Se crean los servicios httpd.service y php-fpm.service que no están iniciados ni habilitados para iniciar automáticamente junto a CentOS 8.

Iniciaremos y habilitaremos los servicios para su inicio automático con el sistema:

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

Por otro lado, tienes dos posibilidades a la hora de instalar la pila LAMP, según si prefieres usar MySQL o MariaDB como servicio de bases de datos.

Instalación del motor de base de datos

Si prefieres usar MySQL Server 8 instala el paquete mysql-server:

~$ sudo yum install -y mysql-server

El servicio que se crea es mysqld.service, procedemos a iniciarlo y habilitarlo:

~$ sudo systemctl enable --now mysqld

En cambio, si quieres optar por usar MariaDB Server 10.3 instala el paquete mariadb-server:

~$ sudo yum install -y mariadb-server

Se crea el servicio mariadb.service, que tendremos que arrancar y habilitar:

~$ sudo systemctl enable --now mariadb

Configurando el firewall de CentOS 8

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

~$ 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://centos8.local.lan/info.php).

como instalar lamp en centos 8 / centos stream 8

Obviamente, se mostrará información de la versión instalada.

como instalar y configurar la pila lamp en centos 8 / centos stream 8

Cómo configurar la pila LAMP en CentOS 8

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 8.

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 8 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 MariaDB/MySQL

Cualquiera de los dos servicios de bases de datos crea una cuenta de root sin contraseña, lo que es un problema de seguridad enorme si no se soluciona.

Puedes pasar el script interactivo mysql_secure_installation que, entre otras cosas, permitirá crear una contraseña para root.

Pero además permite borrar bases de datos de pruebas, usuarios anónimos y eliminar el acceso remoto a root.

El script se lanza igual para ambos sistemas de bases de datos:

~$ sudo mysql_secure_installation

Pero tiene algunas particularidades para cada sistema.

En MySQL:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: n
Please set the password for root here.

New password:

Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

En MariaDB:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Conclusión

Ahora que sabes cómo instalar una pila o stack LAMP en CentOS 8 / CentOS Stream 8 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 8 / CentOS Stream 8 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 - (3 votos)

10 comentarios en «Cómo instalar LAMP en CentOS 8 / CentOS Stream 8»

  1. Hola. Excelente aporte, me gustaría saber qué hay que hacer cuando tienes activado SELinux en CentOS 8, así lo requerimos por seguridad institucional. Al probar el script de php.info no se despliega y por ende no se puede ejecutar la instalación desde web, por lo que creo son permisos de SELinux, si tienes la oportunidad de publicar los pasos que se deben ejecutar de SELinux en tu aporte sería altamente agradecido. El Firewall está correcto y habilitados los servicios http y https.

    Saludos y gracias de antemano.

    Responder

Deja un comentario

Ads Blocker Image Powered by Code Help Pro

¡Detectado un bloqueador de publicidad!

Hemos detectado que está usando extensiones para bloquear anuncios prublicitarios. Por favor, ayúdenos desactivando dicho bloqueador para este sitio web. ¡Gracias!