Cómo instalar Drupal en CentOS 8

En esta entrada veremos cómo instalar Drupal en CentOS 8 / CentOS Stream 8 paso a paso, de modo que puedas trabajar con este estupendo CMS desde tu servidor o VPS CentOS.

Antes de instalar Drupal en CentOS 8

Si quieres seguir los pasos de esta guía de instalación de Drupal en CentOS 8 / CentOS Stream 8 es importante satisfacer las siguientes condiciones:

  • Un sistema CentOS 8 / CentOS Stream 8 actualizado.
  • Una pila tipo LAMP (servicio web con PHP versión 7.3 o superior y bases de datos).
  • Un usuario con privilegios de sudo, o el mismo root.
  • Acceso a Internet.

En caso de no tener listo aún el entorno necesario, puede ser útil echar un vistazo a la guía de instalación de la pila LAMP en CentOS 8 o a la guía de instalación de PostgreSQL en CentOS 8.

También necesitaremos algunas herramientas del sistema que obtendremos desde los repositorios de CentOS 8, para lo que actualizaremos la información de los mismos:

~$ sudo yum update

E instalaremos los paquetes necesarios:

~$ sudo yum install -y policycoreutils-python-utils tar wget

Por último, es importante trabajar sobre conexiones seguras HTTPS, pero por motivos didácticos trabajaremos con HTTP en este artículo.

Cómo descargar Drupal para CentOS 8

Vamos a descargar Drupal para CentOS 8 desde la sección de descargas dentro del sitio web oficial del CMS, donde encontraremos la última versión estable:

como descargar drupal para centos 8

El paquete está disponible en formato .zip y formato .tar.gz, siendo este el último que elegiremos para descargar, en este caso copiando el enlace para usarlo desde consola con el comando wget:

~$ wget --content-disposition https://www.drupal.org/download-latest/tar.gz

Cómo instalar Drupal en CentOS 8

Para poder instalar Drupal en CentOS 8 será necesario realizar antes una serie de tareas orientadas a preparar el sistema, de modo que posteriormente el instalador no encuentre problemas.

Archivos de Drupal

Descomprimimos el paquete de Drupal que acabamos de descargar directamente en la carpeta del sistema de archivos de CentOS 8 que consideremos adecuada:

~$ sudo tar xf drupal-9.X.X.tar.gz -C /var/www/

Como la nueva carpeta que se crea contiene el número de versión de Drupal en el nombre, cambiamos su nombre sin números de versión (debes especificar el nombre correcto del directorio en el siguiente comando):

~$ sudo mv /var/www/drupal-9.X.X/ /var/www/drupal

De esta forma facilitamos la instalación y el posterior mantenimiento.

Drupal necesita poder escribir en su propia carpeta, por lo que concedemos la propiedad de la misma y de su contenido al usuario con el que corre el servicio web en CentOS 8:

~$ sudo chown -R apache: /var/www/drupal/

SELinux

Si tienes activado SELinux en CentOS 8, que es lo habitual, no basta con ajustar los permisos convencionales de lectura/escritura, sino que habrá que definir un contexto especial para el servicio web:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/drupal(/.*)?"

Y lo aplicamos:

~$ sudo restorecon -R /var/www/drupal/

Además, Drupal necesita descargar ciertos elementos desde Internet, por lo que habrá que conceder ese permiso al servicio web:

~$ sudo setsebool -P httpd_can_network_connect on

Servicio web

Hay muchas formas de integrar Drupal en el servicio web de CentOS 8, aunque en este tutorial hemos elegido configurarlo como parte del sitio por defecto, para lo que creamos una configuración de Apache personalizada:

~$ sudo nano /etc/httpd/conf.d/drupal9.conf

El contenido será algo como esto:

Alias /drupal /var/www/drupal

<Directory /var/www/drupal>
        AllowOverride all
</Directory>

Esta configuración se encarga de crear un alias para hacer navegable la aplicación, y de permitir el uso de archivos .htaccess que ofrecen características como el uso de URLs limpias.

Guardamos los cambios y recargamos la configuración del servicio web:

~$ sudo systemctl reload httpd

PHP

Drupal requiere la presencia en CentOS 8 de algunas extensiones para su correcto funcionamiento. Dichas extensiones las conseguiremos desde los repositorios del sistema, por lo que las instalamos con yum:

~$ sudo yum install -y php-apcu php-gd php-json php-mbstring php-opcache php-uploadprogress php-xml

En el caso de la versión 8.0 son menos extensiones las necesarias:

~$ sudo yum install -y php-apcu php-gd php-json php-mbstring php-opcache php-xml

Además se necesita también la extensión para conectar al motor de bases de datos sobre el que vaya a trabajar Drupal, siendo para MariaDB/MySQL:

~$ sudo yum install -y php-mysqlnd

Y para PostgreSQL:

~$ sudo yum install -y php-pgsql

Base de datos

Drupal se apoya sobre el servicio de bases de datos que tengamos en CentOS 8, admitiendo varias posibilidades, de las que veremos las más populares a continuación.

MariaDB/MySQL

Conectamos al servicio con el cliente de consola mysql y algún usuario administrador:

~$ mysql -u root -p

Creamos la base de datos para Drupal:

> create database drupal9 charset utf8mb4 collate utf8mb4_unicode_ci;

Para MariaDB o MySQL 5 creamos el usuario que manejará la base de forma simple:

> create user drupal9@localhost identified by 'XXXXXXXX';

Pero para MySQL 8 además es importante indicar el plugin de conexión correcto:

> create user drupal9@localhost identified with mysql_native_password by 'XXXXXXXX';

Concedemos los permisos necesarios al usuario sobre la base:

> grant all privileges on drupal9.* to drupal9@localhost;

Y cerramos la conexión:

> exit

PostgreSQL

Creamos el rol con contraseña para Drupal:

~$ sudo -iu postgres createuser -P drupal9

Y creamos la base asociada a este rol:

~$ sudo -iu postgres createdb drupal9 -O drupal9

Instalador web

Llega el momento de acceder al instalador web de Drupal en CentOS 8 desde un navegador, para lo que accederemos como si fuéramos a visitar el sitio.

Por ejemplo, la máquina CentOS 8 sobre la que realizamos este tutorial es accesible en el subdominio centos8s.local.lan, y hemos configurado un alias /drupal, por lo que será http://centos8s.local.lan/drupal la URL con la que accederemos:

como instalar drupal en centos 8

Seleccionamos el idioma que nos interese y continuamos, de modo que se descargará el paquete de idioma para el instalador y el resto de la instalación transcurrirá en ese idioma.

A continuación debemos elegir el perfil de la instalación:

instalar drupal en centos 8

Normalmente el perfil que se suele elegir es el estándar, aunque si sabes lo que quieres, puedes elegir cualquiera de los otros.

Teóricamente el siguiente paso sería comprobar los requisitos del sistema para mostrar aquellos que no se cumplen a fin de subsanarlos, pero si has seguido los pasos anteriores se cumplirán todos los requisitos y el instalador saltará directamente a la conexión con el servicio de bases de datos:

instalacion de drupal en centos 8

Elegiremos el motor de bases de datos (si hay más de uno disponible) e introduciremos los datos de conexión tal como los creamos en pasos anteriores.

Tras esto, comenzará el proceso de instalación del sitio, módulos, traducciones, etc:

instalador de drupal para centos 8

El siguiente paso es introducir información sobre el sitio y el usuario administrador:

instalando drupal en centos 8

La instalación termina y se abre la página principal de Drupal con la sesión iniciada:

drupal en centos 8

Y ya tenemos todo listo para empezar con el laborioso trabajo de configurar el sitio y crear la comunidad de contenidos y usuarios.

Tareas de post-instalación

En caso de que estés realizando una instalación de Drupal de acceso público es importante proteger el acceso restringiendo el dominio al que se puede acceder. Para ello editamos el archivo de configuración de Drupal:

~$ sudo nano /var/www/drupal/sites/default/settings.php

Buscaremos la sección dedicada a la variable trusted_host_patterns:

...
/**
 * Trusted host configuration.
 *
...

En los comentarios de esta sección encontraremos ejemplos de cómo configurar la variable para un dominio o incluso varios:

...
 * $settings['trusted_host_patterns'] = [
 *   '^www\.example\.com$',
 * ];
...

A continuación del bloque de comentarios, en el espacio en blanco tras el mismo y antes de la siguiente sección, añadiremos la variable para nuestro dominio permitido:

...
 */
$settings['trusted_host_patterns'] = [
        '^centos8s\.local\.lan$',
];

/**
...

Una vez guardados los cambios la configuración quedará aplicada de inmediato.

Conclusión

Ahora que sabes cómo instalar Drupal en CentOS 8 ya no tienes excusa para no aprovechar tu servidor o VPS CentOS y alojar tu comunidad web, repleta de contenidos e interacciones entre usuarios.

Si tienes alguna duda o pregunta, quieres proponer mejoras del artículo, crees que habría que actualizarlo o quieres notificar algún error, deja un comentario que revisaré lo antes posible.

¡Apoya comoinstalar.me!

¿Ya estás trabajando sobre tu sitio web gracias a esta guía de instalación de Drupal en CentOS 8 /CentOS Stream 8? Si es así y te apetece contribuir con el mantenimiento de este sitio y la creación de nuevos tutoriales sobre CentOS 8 y Drupal, puedes hacerlo dejando 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (3 votos)

1 comentario en «Cómo instalar Drupal en CentOS 8»

Deja un comentario