En este artículo veremos cómo instalar la pila LAMP en Fedora 40, 39 y 38 paso a paso, el entorno formado por Linux, Apache, MariaDB/MySQL y PHP en un mismo servidor o VPS Fedora, de modo que puedan correr complejas y potentes aplicaciones web.
Contenido
Antes de instalar LAMP en Fedora 40/39/38
Para poder completar los pasos de esta guía de instalación y configuración de la pila LAMP en Fedora 40 sólo habrá que tener en cuenta estos requisitos:
- Un sistema Fedora 40, 39 ó 38 actualizado.
- Acceso a consola con un usuario con permisos de sudo, o root.
- Conexión a Internet.
Cómo instalar LAMP en Fedora 40/39/38
Vamos a instalar la pila LAMP en Fedora 40 a partir de los repositorios de la distribución, por lo que es importante actualizar las listas de paquetes disponibles:
~$ sudo yum update
Empezamos instalando el servicio web:
~$ sudo yum -y install httpd
Finalizada la descarga e instalación de este paquete y sus dependencias se crea un nuevo servicio en Fedora 40, el servicio httpd.service (o httpd si prefieres el nombre corto).
Arrancamos este servicio que es la base de la pila LAMP y lo habilitamos para que inicie automáticamente en cada arranque de Fedora 40:
~$ sudo systemctl enable --now httpd
El servicio queda iniciado, habilitado y listo para trabajar.
MariaDB
Fedora 40 incluye la versión 10.11 de este motor de bases de datos, pero Fedora 39 y 38 incluyen la versión 10.5, que para algunas aplicaciones ya ha quedado obsoleta y exigen a partir de la versión 10.6. Afortunadamente podemos instalar la versión que necesitemos desde los repositorios oficiales de MariaDB.
Si quieres instalar una de las versiones del repositorio oficial es necesario crear el archivo de configuración del repositorio:
~$ sudo nano /etc/yum.repos.d/mariadb.org.repo
Con el siguiente contenido:
[mariadb] name = MariaDB baseurl = https://rpm.mariadb.org/10.6/fedora/$releasever/$basearch gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
En caso de necesitar otra versión, como la 10.11, simplemente haz el cambio adecuado en la URL de la directiva ‘baseurl‘.
Para instalar el servicio el paquete mariadb-server hace referencia a la versión nativa de los repositorios de Fedora, mientras que el paquete MariaDB-server (las mayúsculas importan) pertenece al repositorio oficial.
Por tanto, este comando instala la versión de Fedora:
~$ sudo yum install -y mariadb-server
Y este otro la versión oficial:
~$ sudo yum install -y MariaDB-server
En cualquier caso activamos y arrancamos el servicio:
~$ sudo systemctl enable --now mariadb
PHP
La versión de PHP incluida en Fedora 40 es la 8.3, mientras que la que incluyen Fedora 39 y 38 es la 8.2. Si es la que necesitas, instalaremos los componentes necesarios para completar la pila LAMP:
~$ sudo yum install -y php-fpm php-cli php-mysqlnd
Terminada la descarga e instalación, se crea el servicio php-fpm.service (o php-fpm.service) que activaremos e iniciaremos:
~$ sudo systemctl enable --now php-fpm
Y recargaremos la configuración de Apache:
~$ sudo systemctl reload httpd
Otras versiones de PHP
Si quieres instalar una versión alternativa de PHP en Fedora, ya sea superior o inferior, habrá que instalar el repositorio Remi adecuado a tu versión de Fedora.
Para Fedora 40:
~$ sudo yum install -y https://rpms.remirepo.net/fedora/remi-release-40.rpm
Para Fedora 39:
~$ sudo yum install -y https://rpms.remirepo.net/fedora/remi-release-39.rpm
Y para Fedora 38:
~$ sudo yum install -y https://rpms.remirepo.net/fedora/remi-release-38.rpm
Hecho esto, activamos el repositorio remi, que es el que contiene los paquetes de PHP:
~$ sudo yum config-manager --set-enabled remi
Actualizamos la información de los repositorios:
~$ sudo yum update -y
E instalamos los paquetes para completar la pila LAMP con la versión de PHP que necesitemos, por ejemplo para la versión 8.1:
~$ sudo yum install -y php81-php-fpm php81-php-cli php81-php-mysqlnd
Sustituye en el comando anterior php81 por la versión de PHP que te interese. Por ejemplo, para la versión 7.4 especificaríamos php74:
~$ sudo yum install -y php74-php-fpm php74-php-cli php74-php-mysqlnd
Finalizada la descarga, disponemos del servicio php81-php-fpm.service (o phpXX-php-fpm) que tendremos que iniciar y habilitar:
~$ sudo systemctl enable --now php81-php-fpm
Y recargaremos la configuración de Apache:
~$ sudo systemctl reload httpd
Es importante saber que los binarios para consola de PHP incluyen el sufijo con el número de versión en el nombre del comando. Por ejemplo, el comando php como tal no existe:
~$ php -v -bash: php: orden no encontrada
Por ejemplo, si hemos instalado PHP 8.1 el comando que tendremos será php81:
~$ php81 -v PHP 8.1.28 (cli) (built: Apr 10 2024 05:53:50) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.28, Copyright (c) Zend Technologies
Puedes tenerlo en cuenta o, mejor aún, crear enlaces simbólicos para facilitar el uso y compatibilidad:
~$ sudo ln -s /usr/bin/php81 /usr/bin/php
Configurar el firewall de Fedora 40 para la pila LAMP
Para poder acceder desde red a las aplicaciones que instalemos o desarrollemos sobre la pila LAMP, será necesario añadir alguna excepción al firewall de Fedora 40, ya que está activado por defecto e impide las conexiones entrantes.
Para permitir el acceso al servicio HTTP estándar:
~$ sudo firewall-cmd --permanent --add-service=http
Si además vamos a ofrecer contenido seguro mediante conexiones cifradas, habrá que permitir el acceso al puerto del servicio HTTPS:
~$ sudo firewall-cmd --permanent --add-service=https
Finalmente, aplicamos los cambios:
~$ sudo firewall-cmd --reload
Cómo probar la pila LAMP en Fedora 40/39/38
Para probar la pila LAMP en Fedora 40 creamos un pequeño script PHP fácilmente accesible desde la navegación web:
~$ sudo nano /var/www/html/info.php
El contenido será la siguiente línea:
<?php phpinfo();
Accedemos a este script desde un navegador añadiendo la ruta /info.php a la dirección IP o nombre DNS del servidor.
Por ejemplo, la máquina Fedora 40 en la que realizamos este tutorial es accesible en el subdominio fedora.local.lan, por lo que accederíamos con http://fedora.local.lan/info.php como URL.
Si instalamos la versión nativa de PHP de la distribución esto es lo que nos encontramos:
Si optamos por el repositorio alternativo para trabajar con versiones anteriores como la 7.4, igualmente se mostrará una página similar:
Y de forma similar se comportará con otras versiones, como la 8.1:
Todas estas páginas demuestran el funcionamiento conjunto del servicio web y el servicio PHP.
Cómo configurar la pila LAMP en Fedora 40/39/38
Aunque como acabamos de ver los elementos de la pila LAMP se encuentran en funcionamiento, pueden requerir de ciertos ajustes que veremos rápidamente a continuación.
PHP
Editamos el archivo de configuración php.ini, en el caso de PHP procedente del repositorio de Fedora:
~$ sudo nano /etc/php.ini
En el caso del repositorio Remi hay que añadir un subdirectorio /remi/ a la ruta del archivo:
~$ sudo nano /etc/opt/remi/php81/php.ini
Buscamos la directiva date.timezone:
... ;date.timezone = ...
Está desactivada, así que la activaremos eliminando el carácter ; al inicio de línea y le daremos un valor apropiado:
... date.timezone = Europe/Madrid ...
Si no conoces el valor de la zona horaria que te interesa, puedes consultarlos en la documentación oficial de PHP.
Si el servidor Fedora 40 en el que estamos configurando la pila LAMP está destinado a producción no serían necesarios más cambios. Sin embargo, si está destinado a desarrollo sería interesante obtener la máxima información posible sobre los errores que se reproduzcan para ayudar a su depuración. Para ello localizaremos las siguientes directivas:
... error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ... display_errors = Off ... display_startup_errors = Off ...
Los valores más adecuados serían los siguientes:
... error_reporting = E_ALL ... display_errors = On ... display_startup_errors = On ...
Una vez guardados los cambios será necesario recargar la configuración del servicio PHP para aplicarlos:
~$ sudo systemctl reload php-fpm
O para PHP procedente del repositorio Remi:
~$ sudo systemctl reload php83-php-fpm
MariaDB
El servicio MariaDB dispone inicialmente de un único usuario, el administrador root, que sólo puede ser accedido como usuario root de Fedora 40, o utilizando el comando sudo:
~$ sudo mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.11.6-MariaDB MariaDB Server ... MariaDB [(none)]>
Podemos cerrar la sesión:
> exit;
Por otro lado, el servicio trabaja por defecto con el juego de caracteres latin1, cuando lo idóneo es que trabaje con utf8 o utf8mb4. Para ello en las versiones procedentes del repositorio de Fedora editaremos el archivo mariadb-server.cnf:
~$ sudo nano /etc/my.cnf.d/mariadb-server.cnf
Mientras que en las versiones procedentes de los repositorios oficiales editaremos este otro archivo:
~$ sudo nano /etc/my.cnf.d/server.cnf
Incluiremos las directivas character-set-server y collation-server en la sección mysqld:
... [mysqld] ... character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart mariadb
Conclusión
Ahora que sabes cómo instalar y configurar la pila LAMP en Fedora 40, 39 y 38 ya puedes desplegar potentes aplicaciones web desde tu servidor o VPS Fedora, usando las últimas versiones de Apache, MariaDB y MySQL.
Si te ha surgido alguna duda o pregunta, tienes sugerencias de mejora o actualización del artículo, quieres notificar algún error, etc. puedes dejar un comentario.
¡Apoya comoinstalar.me!
¿Ya tienes Apache, MariaDB y PHP conectados y listos para trabajar gracias a esta guía de instalación y configuración de la pila LAMP en Fedora 40? Si es así y te apetece agradecérnoslo contribuyendo con el mantenimiento de este sitio y la creación de futuros artículos y tutoriales.
Puedes ayudarnos dejando una propina de 1 $ en PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!
Actualizado a Fedora 40.
Actualizado a Fedora 39.
Buenas noches, muy buen tutorial, pude instalar todo siguiendo el tutorial. Una consulta, ¿cómo hago para ver el directorio donde se alojaría la web? ¿O cómo me conecto por FTP para subir los archivos?
Hola, Martín. El directorio donde puedes alojar por defecto los archivos de un sitio web es /var/www/html/. Para subir archivos desde red si tienes instalado el servicio SSH puedes usar el comando scp, herramientas gráficas como WinSCP (para Windows), etc. Si quieres usar FTP obviamente tendrías que instalar y configurar el servicio FTP en el servidor Fedora. En cualquier caso, tendrás que dar permisos suficientes al usuario que vaya a trabajar sobre el directorio de la web.
Actualizado a Fedora 36.
Muchas gracias, amigo, por este sublime tutorial. Está muy buena la información y yo no tuve ningún problema en mi Fedora 35.
¡Estupendo, Angel!
Me fue de bastante ayuda para aprender a configurar mi entorno ahora que estoy aprendiendo Laravel. ¡¡¡Muchas gracias, amigos!!! 🙂👍
¡Estupendo, Frederick!