Cómo instalar Drupal en FreeBSD 12

En este artículo vamos a ver cómo instalar Drupal en FreeBSD 12 paso a paso, de modo que puedas crear tu comunidad de usuarios y contenidos usando este popular CMS en tu servidor o VPS FreeBSD.

Antes de instalar Drupal en FreeBSD 12

Para poder completar esta guía de instalación de Drupal en FreeBSD 12 debes satisfacer los siguientes requisitos:

  • Una instalación actualizada de FreeBSD 12.
  • Un entorno o pila tipo FAMP (servidor web con PHP desde la versión 7.3 y servicio de bases de datos).
  • El paquete ca_root_nss.
  • Acceso a línea de comandos con un usuario con permisos de sudo, o el propio root.
  • Conexión a Internet.

Si aún no dispones del entorno necesario, puedes consultar nuestra guía de instalación FAMP en FreeBSD 12. Por brevedad, en esta guía instalaremos Drupal como parte de la página web por defecto de FreeBSD 12, pero lo ideal es utilizar un servidor virtual con dominio o subdominio propio sobre HTTPS.

Cómo descargar Drupal para FreeBSD 12

Vamos a descargar Drupal para FreeBSD 12, por lo que visitaremos el sitio web oficial del CMS, concretamente la sección descargas:

como descargar drupal para freebsd 12

Encontraremos el paquete de Drupal tanto en formato .zip como en formato .tar.gz. En este tutorial copiaremos el enlace de descarga del paquete .tar.gz para descargarlo desde consola mediante el comando fetch:

~$ fetch https://www.drupal.org/download-latest/tar.gz -o drupal.tar.gz

Cómo instalar Drupal en FreeBSD 12

Para instalar Drupal en FreeBSD 12 tendremos que seguir una serie de pasos y configuraciones previas, que describimos a continuación.

Archivos de Drupal

Descomprimimos el paquete de Drupal que acabamos de descargar en la ubicación que corresponda, según cómo lo queramos integrar en el servicio web:

~$ sudo tar xf drupal.tar.gz -C /usr/local/www/apache24/data/

El nuevo directorio que se crea contiene el número de versión en su nombre, por lo que es interesante renombrarlo o crear un enlace simbólico sin números de versión:

~$ sudo ln -s /usr/local/www/apache24/data/drupal-9.X.X/ /usr/local/www/apache24/data/drupal

En el comando anterior sustituye .X.X por la versión de Drupal que hayas descargado (puedes mirarlo examinando el directorio /usr/local/www/apache24/data/).

Por otro lado, Drupal necesita poder escribir en algunas rutas de su directorio de instalación. La manera más sencilla de resolver esto es cambiar el propietario de las rutas y archivos correspondientes al usuario con el que corre el servicio web, que en FreeBSD 12 es www para Apache:

~$ sudo chown -R www /usr/local/www/apache24/data/drupal/sites/default/

La base de datos

Drupal se apoya sobre el servicio de base de datos que tengamos instalado en FreeBSD 12, por lo que debemos preparar una nueva base y el usuario que la administrará. Vamos a ver cómo preparar los dos motores más populares en FreeBSD 12 y Drupal.

MariaDB/MySQL

Conectaremos con el servicio mediante el cliente mysql y el usuario con que administremos habitualmente:

~$ mysql -u root -p

El primer paso es crear la base de datos:

> create database drupal9 character set utf8mb4 collate utf8mb4_unicode_ci;

Dependiendo del motor de bases de datos que tengamos instalado en FreeBSD 12, crearemos el usuario de una forma u otra. Si se trata de MariaDB o MySQL 5, lo creamos de la forma habitual:

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

Pero si tenemos MySQL 8 al crear el usuario conviene especificar el plugin de autenticación correcto:

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

Se trate del caso que se trate, otorgaremos los permisos necesarios al nuevo usuario:

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

Y finalizaremos la sesión:

> exit

PostgreSQL

Creamos el rol con contraseña que usará Drupal:

~$ sudo -u postgres createuser -P drupal9

Y creamos y asociamos la correspondiente base de datos:

~$ sudo -u postgres createdb drupal9 -O drupal9

Apache

Drupal en FreeBSD 12 puede usar los módulos Expires y Rewrite de Apache para trabajar con caché y URLs limpias, respectivamente. Para ello es necesario activar estos módulos en la configuración del servidor web, editando el archivo correspondiente:

~$ sudo nano /usr/local/etc/apache24/httpd.conf

Buscaremos las directivas que se encargan de cargar estos módulos:

...
#LoadModule expires_module libexec/apache24/mod_expires.so
...
#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
...

Para activarlas, basta con borrar el carácter # al inicio de línea:

...
LoadModule expires_module libexec/apache24/mod_expires.so
...
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
...

Guardamos los cambios y cerramos el archivo.

Por otro lado hay que activar el uso de archivos .htaccess, que está desactivado por defecto. En lugar de hacer esta configuración en el archivo principal, crearemos una configuración adicional específica para Drupal:

~$ sudo nano /usr/local/etc/apache24/Includes/drupal9.conf

En este nuevo archivo insertaremos un bloque Directory para permitir el uso de archivos .htaccess en el directorio de Drupal:

<Directory /usr/local/www/apache24/data/drupal>
        AllowOverride all
</Directory>

Ya podemos guardar y cerrar el archivo.

Para aplicar todos estos ajustes, es necesario reiniciar el servicio:

~$ sudo service apache24 restart

PHP

Para su funcionamiento, Drupal requiere la presencia en FreeBSD 12 de ciertas extensiones de PHP, como pueden ser curl, dom, filter, gd, hash, json, mbstring, opcache, pdo_mysql, session, simpleXML, tokenizer, y XML. Nos aseguraremos de que estas extensiones estén instaladas:

~$ sudo pkg install -y php74-curl php74-dom php74-filter php74-gd php74-json php74-mbstring php74-opcache php74-pecl-apcu php74-pecl-uploadprogress php74-session php74-simplexml php74-tokenizer php74-xml

En este tutorial trabajamos sobre PHP 7.4, pero si usas otra versión sólo tienes que cambiar php74- por phpXX-. Por ejemplo, los paquetes para PHP 7.3 son los siguientes:

~$ sudo pkg install -y php73-curl php73-dom php73-filter php73-gd php73-hash php73-json php73-mbstring php73-opcache php73-pecl-apcu php73-pecl-uploadprogress php73-session php73-simplexml php73-tokenizer php73-xml

Y para la versión 8.0:

~$ sudo pkg -y install php80-curl php80-dom php80-filter php80-gd php80-mbstring php80-opcache php80-pecl-apcu php80-pecl-uploadprogress php80-session php80-simplexml php80-tokenizer php80-xml

Igualmente es importante instalar las extensiones que conectan con el servicio de bases de datos sobre el que trabajaremos, para MariaDB/MySQL:

~$ sudo pkg install -y phpXX-pdo_mysql

Y para PostgreSQL:

~$ sudo pkg install -y phpXX-pdo_pgsql

Para aplicar los cambios, recargaremos la configuración del servicio web:

~$ sudo service apache24 reload

Instalador web de Drupal

Para iniciar el instalador web de Drupal en FreeBSD 12, introduciremos en el navegador la URL que corresponda a la forma en que hemos integrado el CMS en el servicio web. En este tutorial bastaría con añadir la ruta /drupal a la dirección IP o dominio del servidor FreeBSD 12.

Por ejemplo, la máquina FreeBSD 12 sobre la que hemos preparado este tutorial es accesible en el subdominio freebsd12.local.lan y hemos definido el alias /drupal, así que usaremos http://freebsd12.local.lan/drupal como URL:

como instalar drupal en freebsd 12

La primera página del instalador nos permite seleccionar el idioma de la instalación de Drupal. Al continuar se accede automáticamente a Internet para descargar el paquete de idioma que corresponda.

En la siguiente página seleccionaremos el perfil de instalación:

instalar drupal en freebsd 12

Lo habitual es elegir el perfil estándar, ya que el perfil mínimo exige mucho trabajo de personalización, pero si sabes lo que estás haciendo puedes elegir el perfil que te interese.

En teoría la siguiente página sería la comprobación de requisitos del sistema pero, si has seguido los pasos anteriores, se cumplirán todos y el instalador saltará directamente a la siguiente sección, la conexión a la base de datos:

instalacion de drupal en freebsd 12

Si hay más de uno disponible seleccionamos el motor de bases de datos, e introducimos los datos de conexión tal y como los creamos anteriormente.

Se inicializará la base de datos y comenzará la instalación de los módulos y traducciones de Drupal:

instalador de drupal en freebsd 12

Tras unos instantes de espera, llega el momento de introducir los datos generales de configuración del nuevo sitio y crear el administrador:

instalacion de drupal en freebsd 12

Siguiendo con el proceso de instalación, tras terminar definitivamente con las traducciones de Drupal se iniciará automáticamente sesión con el administrador, mostrándose la página principal del nuevo sitio:

drupal en freebsd 12

Ya está todo listo para empezar a crear contenidos y configurar el nuevo sitio.

Tareas de post-instalación de Drupal en FreeBSD 12

Si es importante la seguridad en el entorno en el que trabajarás con Drupal, es importante especificar en la configuración el dominio permitido para acceder a la aplicación.

Para ello editaremos el archivo de configuración de Drupal:

~$ sudo nano /usr/local/www/apache24/data/drupal/sites/default/settings.php

Buscaremos la sección para la variable trusted_host_patterns, donde mediante ejemplos se explica cómo especificarla para un único dominio permitido:

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

O para varios:

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

Y añadimos esta variable para nuestro dominio en el espacio en blanco tras el bloque de comentarios y ejemplos de la sección:

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

Guardamos los cambios, cerramos el archivo y la configuración hará efecto inmediato.

Conclusión

Ahora que sabes cómo instalar Drupal en FreeBSD 12 puedes crear tu propia comunidad de contenidos y usuarios en pocos minutos sobre tu servidor o VPS. La preparación del sistema sólo toma unos instantes si sabes el orden en el que realizar las tareas previas.

Si te ha quedado alguna duda, ha surgido algún problema durante la instalación de Drupal, tienes alguna sugerencia, etc. puedes dejar un comentario. Para evitar SPAM los comentarios están MODERADOS, pero se revisan prácticamente a diario.

¡Apoya este sitio!

¿Ya tienes este CMS funcionando gracias a nuestra guía de instalación de Drupal en FreeBSD 12? Si es así y te apetece agradecérnoslo, cualquier mínima aportación ayuda mucho al mantenimiento de este sitio y creación de más tutoriales de FreeBSD 12 y Drupal, y 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)

9 comentarios en «Cómo instalar Drupal en FreeBSD 12»

  1. Hola, me sale el siguiente error:
    Error: Call to undefined function token_get_all() in Doctrine\Common\Annotations\TokenParser->__construct() (line 54 of /usr/local/www/apache24/data/drupal-9.2.1/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php).
    No sé si es porque he tocado algo que no debía. Si alguien me pudiese ayudar me sería de mucha ayuda.
    Muchas gracias.

    Responder
      • Hola. Tengo la version 7.4. Seguí el tutorial de FAMP. Sin embargo estoy usando la versión 13 del sistema. A lo mejor tiene que ver con eso.
        Muchas gracias por la ayuda.

        Responder
        • Hola, Carlos. Acabo de instalar Drupal sobre una nueva instalación con las versiones del sistema y del lenguaje que comentas y todo va como una seda. Creo que es un problema con la extensión tokenizer, así que trata de instalar de nuevo las extensiones para la versión adecuada y observa si se descargan e instalan correctamente. Reinicia el servicio web y a ver qué pasa.

          Responder
          • Hola. ¡Por fin me ha ido el tutorial!
            He vuelto a instalar FreeBSD en otra máquina virtual y me ha funcionado el tutorial. Pienso que a lo mejor la lié cuando ejecuté mysql_secure_installation porque al principio el error que me salía era que no se detectaba la BD y al empezar a tocar cosas ya me salió el error que comenté al principio.
            ¡Muchas gracias por el tutorial!
            Un saludo.

  2. Saludo. Tengo instaladas las últimas versiones de PHP y me sale:
    «Update to the latest release of Drupal 9 for improved PHP 8 support, or use PHP 7.4. See the system requirements page for more information.«

    Responder
    • Hola, William. No acabo de entender tu problema, ¿con qué versión concreta de PHP estás intentando la instalación de Drupal en FreeBSD 12? Acabo de probar con PHP 7.4.16 y 8.0.3 y Drupal 9.1.6 y no hay ningún tipo de problema.

      Responder

Deja un comentario