En esta entrada veremos cómo instalar LEMP en Fedora 30 paso a paso, es decir, el servidor web Nginx con PHP y servicio de bases de datos MariaDB/MySQL, para que puedas desplegar o desarrollar potentes aplicaciones web sobre tu servidor o VPS Fedora.
Contenido
Antes de instalar LEMP en Fedora 30
Si tienes intención de completar esta guía de instalación de la pila LEMP en Fedora 30, sería recomendable cumplir las siguientes condiciones básicas:
- Una instalación actualizada de Fedora 30.
- Acceso a consola como root o un usuario con permisos de sudo.
- Acceso a Internet.
Cómo instalar LEMP en Fedora 30
Vamos a instalar LEMP en Fedora 30 usando los paquetes presentes en los repositorios de la misma distribución, por lo que es interesante en primer lugar actualizar las listas de paquetes:
~$ sudo yum update
Ya podemos instalar todos los paquetes que componen la pila LEMP con yum. En este caso usaremos MariaDB como servicio de bases de datos:
~$ sudo yum install -y nginx php-fpm php-mysqlnd mariadb-server
Pero si prefieres MySQL bastaría cambiar el paquete mariadb-server por community-mysql-server.
~$ sudo yum install -y nginx php-fpm php-mysqlnd community-mysql-server
Tras la descarga e instalación de los paquetes se crean una nueva serie de servicios en Fedora 30, que son nginx.service, php-fpm.service y mariadb.service (o mysqld.service), aunque también puedes usar los nombres cortos nginx, php-fpm y mariadb (o mysqld). Ninguno de estos servicios queda en ejecución tras la instalación, ni tampoco activados para iniciar automáticamente junto a Fedora 30, por lo que tendremos que realizar estos ajustes manualmente.
Habilitamos el servicio PHP y lo iniciamos con systemctl:
~$ sudo systemctl enable --now php-fpm.service
Hacemos lo mismo con Nginx:
~$ sudo systemctl enable --now nginx.service
E igualmente con MariaDB:
~$ sudo systemctl enable --now mariadb.service
Para MySQL se haría de forma similar:
~$ sudo systemctl enable --now mysqld.service
Puedes comprobar el estado de los servicios de la pila LEMP en cualquier momento con el comando systemctl status nginx php-fpm mariadb
:
Cómo configurar el firewall de Fedora 30 para LEMP
Normalmente será necesario configurar el firewall de Fedora 30 para permitir el acceso desde red al servidor LEMP, ya que el firewall suele estar activado por defecto. Por tanto, añadiremos una excepción que permita el acceso a contenido web mediante los protocolos HTTP y HTTPS:
~$ sudo firewall-cmd --permanent --add-service={http,https}
Esta configuración tomará efecto al recargar la configuración del firewall:
~$ sudo firewall-cmd --reload
Cómo configurar los elementos de la pila LEMP en Fedora 30
Vamos a configurar los elementos de la pila LEMP en Fedora 30 para ajustar su funcionamiento a nuestras necesidades.
PHP
La configuración principal del servicio PHP se encuentra en el archivo php.ini, que editaremos a continuación:
~$ sudo nano /etc/php.ini
En primer lugar deberíamos configurar la zona horaria a la que corresponde el servidor, a través de la directiva date.timezone:
... [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ...
Activaremos la directiva eliminando el carácter ; al inicio de línea y dándole el valor apropiado:
... date.timezone = Europe/Madrid ...
Si no conoces el valor que corresponde a tu zona horaria, puedes consultarlo en la documentación en línea de PHP.
En cuanto al tratamiento de mensajes de error, si la instalación que estás realizando está orientada a producción no hay que realizar ajustes, pero si es para desarrollo entonces interesa que se muestren mensajes de error que ayuden en el proceso de depuración. En este caso buscaremos las siguientes directivas y asignaremos los valores mostrados:
... error_reporting = E_ALL ... display_errors = On ... display_startup_errors = On ...
En los mismos comentarios del archivo php.ini se muestran los valores de producción y desarrollo, por si en cualquier momento necesitamos modificarlos rápidamente.
Por último, en un entorno de producción tal vez prefieras que el servidor web no pueda informar de la versión de PHP que tiene instalada, para evitar que usuarios maliciosos puedan usar ataques específicos. Esto lo conseguimos a través de la directiva expose_php:
... expose_php = Off ...
Una vez guardados los cambios y cerrado el archivo php.ini, debemos recargar la configuración del servicio:
~$ sudo systemctl reload php-fpm
Servicio de bases de datos
A fin de hacer algo más seguro el servicio, ya que inicialmente el usuario root no tiene contraseña, es interesante lanzar el script mysql_secure_installation:
~$ sudo mysql_secure_installation
MariaDB
Empezará solicitando la contraseña actual (ninguna):
Enter current password for root (enter for none):
Nos preguntará si deseamos establecer una contraseña:
Set root password? [Y/n]
A continuación debemos introducir y confirmar la nueva contraseña.
Al resto de preguntas es aconsejable contestar que sí, ya que se eliminarán usuarios con acceso anónimo, se desactivará el acceso remoto de root, se eliminará la base de datos de pruebas, y se recargará la tabla de privilegios.
MySQL
Se nos pregunta si deseamos activar el componente validador de contraseñas, que obligará a la creación de contraseñas fuertes para los usuarios:
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:
A continuación establecemos la contraseña para el usuario root.
Después podremos eleminar los usuarios anónimos:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Desactivamos el acceso remoto de root:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Eliminamos la base de datos de pruebas:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Y recargamos la tabla de privilegios:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Cómo probar la pila LEMP en Fedora 30
Para probar la pila LEMP en Fedora 30 crearemos un pequeño archivo PHP que mostrará la integración de los distintos elementos.
Crearemos este archivo en el directorio de archivos web de Nginx:
~$ sudo nano /usr/share/nginx/html/info.php
Con la siguiente línea como contenido:
<?php phpinfo();
Ahora accederemos desde un navegador indicando como URL la dirección IP o dominio del servidor Fedora 30 y añadiendo la ruta /info.php o como corresponda si has decidido llamar al archivo con otro nombre:
Ahora sabemos que el servicio PHP está conectado con Nginx y además podremos obtener mucha información de esta sencilla página.
Conclusión
Ahora que sabes cómo instalar la pila LEMP en Fedora 30 ya puedes desarrollar o desplegar aplicaciones web complejas sobre tu servidor o VPS en cuestión de minutos, ya que el entorno básico apenas necesita configuración.
Si tienes alguna duda, pregunta, suegerencia, corrección, etc. puedes dejar un mensaje.
¡Apoya este sitio!
¿Ya estás listo para empezar con tus desarrollos gracias a esta guía de instalación LEMP en Fedora 30? Si es así y te apetece agradecérnoslo, la más pequeña aportación ayuda a mantener este sitio web y a la creación de nuevos tutoriales de Fedora 30.
Puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:
O, si te sientes especialmente generoso, invitándonos a un cappuccino:
¡Gracias!