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.
Contenido
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:
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:
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:
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:
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:
El siguiente paso es introducir información sobre el sitio y el usuario administrador:
La instalación termina y se abre la página principal de Drupal con la sesión iniciada:
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!
Actualizado a la versión 9.3.8.