Cómo instalar Drupal en CentOS 7

En esta entrada explicamos cómo instalar Drupal en CentOS 7 paso a paso, un potente CMS muy popular que te ayudará a ofrecer contenidos y crear comunidad desde tu servidor o VPS CentOS.

Antes de instalar Drupal en CentOS 7

Para poder completar esta guía de instalación de Drupal en CentOS 7 necesitarás satisfacer la siguiente lista de requerimientos mínimos:

  • Un sistema CentOS 7 actualizado.
  • Una pila o entorno tipo LAMP (servidor web con PHP 7.3 ó superior y bases de datos).
  • Acceso a terminal de comandos con un usuario con permisos de sudo, o el propio root.
  • Conexión a Internet.

Si aún no tienes el entorno mínimo, consulta nuestra guía de instalación de la pila LAMP en CentOS 7.

También necesitaremos algunas herramientas del sistema que podemos obtener desde los repositorios de CentOS 7, para lo cual actualizaremos su información:

~$ sudo yum update

E instalamos dichas herramientas:

~$ sudo yum install -y policycoreutils-python wget

Cómo descargar Drupal para CentOS 7

Vamos a descargar Drupal para CentOS 7, debido a que no existen paquetes en los repositorios de la distribución, y los que existen en el repositorio EPEL están obsoletos. Por tanto visitaremos el sitio oficial:

como descargar drupal para centos 7

En la sección de descargas encontraremos paquetes de la última versión de Drupal en formato .zip y en formato .tar.gz.

descargar drupal para centos 7

En este tutorial copiamos en el enlace del paquete .tar.gz para realizar la descarga desde línea de comandos con wget:

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

Cómo instalar Drupal en CentOS 7

Es el momento de instalar Drupal en CentOS 7, pero previamente debemos realizar una serie de pasos para que la instalación llegue a buen puerto.

Archivos de Drupal

Descomprimiremos el paquete de Drupal que acabamos de descargar en su ubicación definitiva:

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

Como se crea un subdirectorio con el número de versión en el nombre, le daremos un nuevo nombre sin números (comprueba en tu caso el nombre de la carpeta que se ha creado):

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

Drupal necesita permisos de escritura en algunas ubicaciones de su instalación, así que le daremos la propiedad de estas ubicaciones al servidor web:

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

SELinux

Aunque concedamos permisos de escritura al servidor web en ciertas ubicaciones, si SELinux está activado, como ocurre por defecto en CentOS 7, no se permitirá. Por ello hay que definir un contexto de lectura/escritura para el servidor web en estas ubicaciones:

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

Aplicamos el nuevo contexto con el comando restorecon:

~$ sudo restorecon -R /var/www/html/drupal/sites/default/

Si usas PostgreSQL como servicio de bases de datos, habrá que autorizar a la aplicación para que pueda conectar:

~$ sudo setsebool -P httpd_can_network_connect_db on

PHP

Drupal requiere la instalación en CentOS 7 de ciertas extensiones de PHP, como son gd, mbstring, opcache y xml:

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

También hay que instalar la extensión que corresponda al tipo de base de datos que vayamos a usar, como MariaDB/MySQL:

~$ sudo yum install -y php-mysqlnd

O PostgreSQL:

~$ sudo yum install -y php-pgsql

Aplicaremos los cambios recargando la configuración del servidor web o el servicio PHP, según corresponda:

~$ sudo systemctl reload httpd

Configuración de Apache

Drupal puede trabajar con el módulo Rewrite de Apache, que suele estar habilitado por defecto, pero la configuración de Apache no permite el uso de archivos .htaccess.

Crearemos una configuración específica para Drupal que permita el uso de estos archivos .htaccess en el directorio de la aplicación:

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

El contenido será un bloque Directory para el directorio de instalación de Drupal en el que una directiva AllowOverride permitirá los archivos .htaccess:

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

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

~$ sudo systemctl reload httpd

Base de datos

Drupal, como cualquier otro CMS, se apoya en el servicio de bases de datos que tengamos instalado en CentOS 7. En este tutorial veremos los dos motores más usados.

MariaDB/MySQL

Conectaremos con el servicio mediante el cliente de consola mysql y un usuario administrador:

~$ mysql -u root -p

Empezaremos creando la base de datos:

> create database drupal charset utf8mb4 collate utf8mb4_unicode_ci;

Para MariaDB o MySQL 5 crearemos el usuario como de costumbre:

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

Pero para MySQL 8 lo crearemos especificando el plugin de autenticación adecuado:

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

Concedemos los permisos al usuario de Drupal sobre su base de datos:

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

Y salimos del cliente:

> exit

PostgreSQL

Creamos un rol para Drupal con contraseña:

~$ sudo -iu postgres createuser -P drupal

Y creamos la base de datos:

~$ sudo -iu postgres createdb drupal -O drupal

Instalación web

Para poder instalar Drupal en CentOS 7 mediante el instalador web accederemos a la URL que hayamos configurado.

En este caso basta añadir la ruta /drupal a la dirección IP o dominio del servidor CentOS 7.

Por ejemplo, para este tutorial la máquina CentOS 7 empleada es accesible en el dominio centos7.local, así que la URL http://centos7.local.lan/drupal es la que utilizamos:

como instalar drupal en centos 7

Elegido el idioma que corresponda, se descargará e instalará el paquete de idioma correspondiente y continuará la instalación.

Habrá que elegir el tipo de instalación:

instalar drupal en centos 7

Lo habitual es elegir la instalación estándar.

A continuación en teoría debería aparecer la lista de requerimientos de Drupal en CentOS 7, señalándose aquellos que no se cumplen. Pero si has seguido uno a uno los pasos anteriores, el instalador se saltará esta sección y pasaremos a la configuración de la base de datos:

instalacion de drupal en centos 7

Introduciremos los datos de la base y el usuario que creamos anteriormente. Si el servicio de bases de datos está instalado en la misma máquina que el servidor web y en el puerto estándar, no es necesario modificar nada en «Opciones avanzadas«.

Se iniciará el proceso de instalación de los módulos, complementos, traducciones, etc. de Drupal:

instalador de drupal para centos 7

Terminado este proceso llega el momento de introducir la información general sobre el sitio y la creación del usuario administrador:

instalando drupal en centos 7

Al continuar, se completará la actualización de las traducciones, tras lo cual la instalación habrá terminado y accederemos directamente al nuevo sitio Drupal en CentOS 7 con sesión iniciada con la cuenta de administrador:

drupal en centos 7

Ya puedes empezar con la administración del sitio y la elaboración de contenidos.

Post-instalación de Drupal en CentOS 7

Si la instalación que estás realizando será públicamente accesible, debería realizarse un ajuste de seguridad que restrinja el dominio accedido. Para ello editamos el archivo de configuración:

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

Buscaremos la sección de configuración de la variable trusted_host_patterns, donde encontraremos ejemplos de cómo configurar el dominio accesible:

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

Al final de la sección podremos añadir la configuración para nuestro propio dominio o subdominio, siguiendo el esquema mostrado en los ejemplos:

...
$settings['trusted_host_patterns'] = [
   '^centos7\.local\.lan$',
];
...

Tras guardar los cambios la configuración queda aplicada inmediatamente.

Conclusión

Ya has visto que instalar Drupal en CentOS 7 es una tarea sencilla si se sigue la secuencia adecuada de preparativos previos. En unos minutos desplegarás tu nuevo sitio Drupal en CentOS 7, listo para albergar contenidos y comunidad.

En caso de dudas, preguntas, sugerencias, mejoras, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya estás listo para comenzar a trabajar en tu comunidad tras seguir esta pequeña guía de instalación? Si es así y quieres agradecérnoslo, cualquier mínima contribución ayuda al mantenimiento de este sitio y la preparación de nuevos tutoriales y guías, y puedes hacerlo dejando una propina de tan sólo 1 $ en PayPal:

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

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

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

Deja un comentario