En esta entrada explicamos cómo instalar Drupal en Fedora 34, 33, 32 y 31 paso a paso, de modo que en pocos minutos habrás desplegado este popular CMS sobre tu servidor o VPS Fedora y estarás listo para empezar a trabajar sobre tu nueva comunidad de usuarios y contenidos.
Contenido
Antes de instalar Drupal en Fedora 34/33/32/31
Para poder completar esta guía de instalación de Drupal en Fedora 34, 33, 32 y 31 es importante cumplir los siguientes requisitos básicos:
- Un sistema Fedora 34, 33, 32 ó 31 actualizado.
- El entorno o pila tipo LAMP (servicio web con PHP y bases de datos MariaDB/MySQL).
- Acceso a terminal de consola con root o un usuario con permisos de sudo.
- Conexión a Internet.
Si aún te falta configurar el entorno necesario, puedes consultar antes nuestra guía de instalación de la pila LAMP en Fedora.
También necesitaremos alguna utilidad que obtendremos desde los repositorios del sistema, para lo que los actualizamos:
~$ sudo yum update
E instalamos los paquetes relacionados:
~$ sudo yum install -y tar wget
Puedes integrar Drupal en el servicio web de Fedora 34, 33, 32 y 31 como el sitio web por defecto del servidor, un servidor virtual aparte o, como haremos en este tutorial por simplicidad, como parte del sitio web por defecto. Es muy importante tener configurado el servidor web con acceso seguro HTTPS, pero por motivos didácticos en este tutorial trabajamos con HTTP.
Cómo descargar Drupal para Fedora 34/33/32/31
Vamos a descargar Drupal para Fedora 34, 33, 32 y 31 desde el sitio web oficial, ya que los paquetes disponibles en los repositorios del sistema no están del todo actualizados. En la sección de descargas encontraremos el paquete para descarga en formato .zip y en formato .tar.gz:
Aunque podemos descargar directamente desde el navegador, en este tutorial realizaremos la descarga copiando el enlace del paquete .tar.gz y usándolo con el comando wget en consola:
~$ wget --content-disposition https://www.drupal.org/download-latest/tar.gz
Cómo instalar Drupal en Fedora 34/33/32/31
El proceso de instalar Drupal en Fedora 34, 33, 32 y 31 abarca una serie de pasos previos antes de poder lanzar el instalador web. Vamos a detallar a continuación todos estos pasos para que el instalador no encuentre ningún obstáculo.
Archivos de Drupal
Descomprimimos el paquete de Drupal en la ubicación que hayamos decidido según la forma de integrar la aplicación en el servicio web (en este ejemplo, como parte del sitio web principal):
~$ sudo tar xf drupal-9.X.X.tar.gz -C /var/www/html/
Sustituye en el comando anterior .X.X por el número de versión que hayas descargado (usa autocompletar con el tabulador para no tener que examinar antes el número de versión).
Como el nombre del subdirectorio que se crea contiene el número de versión de Drupal, le daremos un nuevo nombre sin números de versión:
~$ sudo mv /var/www/html/drupal-9.X.X/ /var/www/html/drupal
Como Drupal necesita escribir en su propio directorio de instalación, concederemos la propiedad del directorio y su contenido al usuario con el que corre el servicio web (apache para Apache en Fedora 3x):
~$ sudo chown -R apache:apache /var/www/html/drupal/
Servicio de bases de datos
Como cualquier otro CMS, Drupal se apoya sobre el servicio de bases de datos que tenemos corriendo en Fedora 34, 33, 32 y 31, admitiéndose varios motores de los que en esta guía veremos los dos más populares.
MariaDB/MySQL
Crearemos lo que necesitamos conectando al servicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Empezamos creando la base de datos:
> create database drupal9 character set utf8mb4 collate utf8mb4_unicode_ci;
En MySQL 8 creamos el usuario indicando el plugin de autenticación compatible con PHP:
> create user drupal9@localhost identified with mysql_native_password by 'XXXXXXXX';
Pero en MySQL 5 o MariaDB no hay que indicarlo:
> create user drupal9@localhost identified by 'XXXXXXXX';
Concedemos los permisos necesarios al usuario sobre la base:
> grant all privileges on drupal9.* to drupal9@localhost;
Ya podemos cerrar la conexión:
> exit
PostgreSQL
Creamos un rol para Drupal con contraseña:
~$ sudo -iu postgres createuser -P drupal9
Y creamos y asociamos la base de datos:
~$ sudo -iu postgres createdb drupal9 -O drupal9
PHP
Drupal necesita la presencia en Fedora 34, 33, 32 y 31 de ciertas extensiones de PHP, que instalaremos para asegurarnos de su disponibilidad. En el caso de la versión nativa de PHP para el sistema instalaremos los paquetes de la siguiente forma:
~$ sudo yum install -y php-apcu php-gd php-json php-mbstring php-opcache php-simplexml
Pero si hemos instalado el repositorio alternativo, habrá que indicar la versión en el nombre de cada paquete; por ejemplo, para la versión 8.0:
~$ sudo yum install -y php80-php-apcu php80-php-gd php80-php-mbstring php80-php-opcache php80-php-simplexml
Concretamente para la versión 8.0 no existe la extensión json.
Para otras versiones alternativas bastará con cambiar el prefijo php80- por lo que corresponda en el comando anterior.
Además se necesita la extensión que corresponda al servicio de bases de datos sobre el que trabajemos, aplicándose lo ya dicho para las versiones alternativas de PHP.
En en el caso de MariaDB/MySQL:
~$ sudo yum install -y php-mysqlnd
Y en el de PostgreSQL:
~$ sudo yum install -y php-pgsql
Apache
Creamos una configuración personalizada de Drupal para Apache:
~$ sudo nano /etc/httpd/conf.d/drupal9.conf
Se trata de que Drupal pueda configurar Apache al vuelo mediante la lectura de archivos .htaccess, que por defecto son ignorados. Para ello crearemos un bloque Directory que alojará la directiva AllowOverride:
<Directory /var/www/html/drupal> AllowOverride all </Directory>
Guardamos y cerramos el archivo, y recargamos la configuración del servicio web para aplicar los cambios:
~$ sudo systemctl reload httpd
SELinux
Por defecto SELinux suele estar activado en Fedora 34, 33, 32 y 31, así que tendremos que realizar algunos ajustes.
No basta con cambiar los permisos ordinarios del directorio de Drupal para que el servicio web pueda escribir en él, sino que habrá que definir un contexto de lectura/escritura. Esta operación no podemos hacerla a través del enlace simbólico, sino sobre el directorio real:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/drupal(/.*)?"
Y aplicamos el contexto:
~$ sudo restorecon -R /var/www/html/drupal/
Como Drupal necesita conectar a Internet para descargar traducciones, módulos, etc. debemos permitirlo:
~$ sudo setsebool -P httpd_can_network_connect on
Instalador web
Ya tenemos todo lo que necesitamos, así que por fin podemos acceder al instalador web de Drupal. En este ejemplo, tal como hemos integrado la aplicación en el servicio web, añadiremos la ruta /drupal al dominio o dirección IP del servidor Fedora 34, 33, 32 ó 31.
En la página inicial del instalador se nos ofrecerá un desplegable sobre el que elegir el idioma de la instalación:
Seleccionado el idioma se descargará la traducción correspondiente y podremos continuar.
Elegiremos el perfil de instalación:
Lo habitual es elegir el perfil estándar aunque, si sabes lo que quieres, el perfil mínimo también puede ser una opción.
A continuación vendría la página de verificación de requisitos, pero si has seguido los pasos anteriores, al cumplirse todos los requisitos, el instalador saltará a la siguiente sección. En caso de faltar algún requisito se nos mostrará cuál es y podremos subsanarlo y recargar la página de verificación para comprobar si todo está correcto antes de continuar.
El siguiente paso será proporcionar los datos de conexión al servicio de bases de datos:
Hecho esto, comenzará la instalación de los componentes de Drupal:
Este proceso tomará unos instantes, transcurridos los cuales, facilitaremos los datos básicos de identificación del nuevo sitio y su administrador:
Finalmente se actualizará la configuración de traducciones de Drupal y terminará la instalación.
Automáticamente se inicia sesión con la cuenta del administrador que acabamos de crear y aparecerá la página principal:
¡Ya casi está tood listo para empezar a trabajar en tu nuevo sitio web! Aunque todavía queda algún paso extra.
Post-instalación
Para una instalación de Drupal accesible mediante dominio (como la del ejemplo de este tutorial que utiliza fedora.local.lan) es necesario asegurar en la configuración que sólo se podrá acceder a través de dicho dominio. Para ello editamos el archivo de configuración del CMS:
~$ sudo nano /var/www/html/drupal/sites/default/settings.php
Buscamos la sección «Trusted host configuration«:
... /** * Trusted host configuration. * * Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host * header spoofing. ...
Esta sección sólo ofrece documentación en forma de comentarios, donde se muestra un ejemplo de cómo configurar el dominio utilizado:
... * $settings['trusted_host_patterns'] = [ * '^www\.example\.com$', * ]; ...
Por lo tanto, al final del bloque de comentarios añadimos una configuración similar para nuestro dominio respetando el patrón usado (los símbolos ^, \ y $ para indicar comienzo, puntos y final):
... */ $settings['trusted_host_patterns'] = [ '^fedora\.local\.lan$', ]; ...
La configuración queda aplicada de inmediato una vez guardados los cambios.
Conclusión
Ahora que sabes cómo instalar Drupal en Fedora 34, 33, 32 y 31 puedes usar tu servidor o VPS para montar tu comunidad de usuarios y contenidos tanto para red local como desde Internet, y aprovechar todas las ventajas y recursos que ofrece este popular CMS.
Si tienes alguna duda o pregunta, has detectado algún error que quieras notificar o tienes sugerencias de mejoras, lo ideal es un comentario.
¡Apoya comoinstalar.me!
¿Ya tienes listo este CMS gracias a esta guía de instalación de Drupal en Fedora 34, 33, 32 y 31? Si es así y quieres expresarnos tu agradecimiento, cualquier pequeña donación ayuda muchísimo al mantenimiento de este sitio y la creación de futuros tutoriales de Fedora 3x y Drupal, y puedes hacerlo dejando 1 $ de propina en PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!
Actualizado a la versión 9.3.8.