Logo de DrupalEl hecho de que la instalación de los CMS sea un proceso cada vez más sencillo nos suele llevar a la tendencia de pensar que, una vez instalado, ya está todo hecho. Si con WordPress es algo muy frecuente -tanto es así que se suele olvidar hasta la seguridad del sitio– en Drupal también sucede. Debemos evitar pasar de la instalación a la configuración sin haber dado una serie de pasos previos. Aquí indico cuál debería ser el proceso natural para no tener problemas:

Pasos iniciales

  • Durante la instalación hemos tenido que activar los permisos de escritura en el fichero configuración settings.php que se encuentra en sites/default/. De esa manera el instalador ha podido introducir las variables que necesita para realizar la instalación del sitio. Recuerda que ahora deberías quitar esos permisos de escritura, o su sitio se quedará desprotegido. Lo puedes hacer bien desde un cliente ftp, bien directamente sobre el hosting, empleando el gestor de ficheros.Configurar los permisos de escritura de settings.php
  • Si te has bajado la última versión del sitio de Drupal, lo más probable es que esté en inglés. Y también es probable que eso no te guste. Aún no me ha dado tiempo de hacer una entrada sobre eso, pero en el Blog de María Cañizares lo explican de manera muy facilita y sencilla.
  • Lo siguiente que deberías hacer es echar un vistazo al informe de estatus, para ver si existe algún mensaje de error o alguna advertencia que debieras revisar. Como es evidente, a continuación deberías solucionarlo. Para ello debes ir a admin->reports->status report. Asegúrate de que el los ficheros update.php y settings.php están protegidos.

Informe de estado de Drupal

  • En ese informe podrás comprobar la versión de Drupal que te has instalado. Asegúrate siempre de que es la última.
  • Por último, deberías mirar el fichero Log admin->reports->recent log messages. En él, como en todos los ficheros log, se almacena el registro de todo lo que sucede en tu Drupal. El tipo de mensaje, la fecha y hora, el mensaje y el usuario activo. Es fundamental tener control sobre este fichero, que aporta gran cantidad de información y, en muchos casos, hasta la solución a los problemas.

Ficheros importantes

  • Conviene que configures el fichero .htaccess de tu servidor correctamente. Para ello puedes bajarte cualquier módulo (Htaccess bastará) o editar el fichero manualmente. Si no tienes configurada la dirección canónica puedes hacerlo en ese fichero. Si, además, cuentas con servidor seguro, deberías configurar la redirección a https.
  • Asegúrate de que la configuración de los ficheros del sistema es la correcta. En esencia deberías configurar correctamente las carpetas para los ficheros públicos, privados y temporales en el servidor (aplicándoles los privilegios correspondientes) y especificar esas rutas en Drupal: Administration->Configuration->Media→File System.
  • Crea un favicono y ubícalo en el lugar correspondiente para que el servidor lo pueda localizar y usar. En el caso de emplear más adelante un tema, deberías saber que muchos ya lo traen por defecto. Tan solo tendrás que optar por mantener el que trae el tema, o por sustituir este por el tuyo.
  • Que no se te olviden dos ficheros vitales en cualquier servidor: robots.txt y sitemap.xml. Ambos se pueden generar automáticamente por medio de cualquier módulo (aquí tienes uno para robots y aquí otro para sitemap). Eso sí: asegúrate de que los configuras correctamente. Un error muy común es el de instalar el módulo para sitemap, con el fin de que actualice automáticamente el fichero sitemap.xml del servidor, pero configurarlo en modo “exclusión” por defecto, por lo que obligará a activarlo en cada una de las entradas que añadamos al sitio.

Haz un poco de limpieza

  • Es muy recomendable eliminar una serie de ficheros que vienen dentro de la instalación de Drupal que no valen para nada. En realidad aportan datos a extraños al sitio web que deberíamos evitar. Se trata de todos estos: CHANGELOG.txt, install.php, INSTALL.txt, INSTALL.mysql.txt, INSTALL.pgsql.txt, INSTALL.sqlite.txt, LICENSE.txt, MAINTAINERS.txt, README.txt, sites/all/modules/README.txt, sites/all/themes/README.txt, UPGRADE.txt
El proceso de eliminación de estos ficheros se puede llevar a cabo directamente en el servidor (como en la imagen) o por medio de una sesión de FTP.

El proceso de eliminación de estos ficheros se puede llevar a cabo directamente en el servidor (como en la imagen) o por medio de una sesión de FTP.

  • Drupal tiene una opción que permite visualizar en pantalla los errores que se producen conforme se está trabajando con el CMS. Se trata de una opción muy útil para el desarrollador, pero muy pesada para el usuario. La puedes desactivar en: Administration-> Configuration->Development->Logging and errors.
  • Alguno temas (apariencia) tienen opciones de desarrollo pensada para ajustarse mejor a las necesidades de cada sitio. Deberías desactivarlas también. Para ello solo tienes que acceder a la configuración de apariencia y desactivar las opciones correspondientes: Administration->Appearance->Settings.
  • Elimina módulos y temas que no utilices. Suele ser un error muy común dejar en el servidor aquellos módulos o temas que hemos bajado, nos hemos instalado y después de echarles un vistazo no usamos porque no nos gustan. Esto puede generar un problema de seguridad importante, volver inestable el sistema y, a corto plazo, hacer que las páginas que carguen más lento. Aquellos módulos y temas que no vayamos a emplear hay que quitarlos. No basta con desactivarlos. Además de eso hay que eliminar -físicamente- los ficheros del servidor.
  • Elimina todos los usuarios y roles que no vayas a emplear. También pueden generar problemas de seguridad, a parte de convertir el proceso de asignación de privilegios por roles en una auténtica locura.

Rendimiento

  • Aunque lo he comentado en el punto anterior, lo repito de nuevo aquí: elimina módulos y temas que no utilices. Ralentizan el sistema. Además, procura no instalar demasiados módulos. Sólo los imprescindibles para hacer lo necesario. Cuantos más módulos, más lento va el sistema. Si no tienes muy claro esto, sólo tienes que echar un vistazo al mapa que muestra las relaciones entre las tablas de Drupal para entender que más es menos.
  • Gestionar correctamente la caché del sitio puede hacer que este se vuelva hasta un 50% más rápido. Contra las cachés desde Administration->Configuration->Development->Clear Cache o, en su defecto, usa algún módulo para eso.
  • En relación a esto último hay módulos que permiten trabajar muy bien con CSS y con JavaScripts, comprimiéndolos o minimizándolos para disminuir el efecto negativo que tienen en cuanto a velocidad de carga se refiere.
  • Una buena opción, aunque algo compleja, es crear vistas basadas en tiempo. Pero esto requiere de una explicación muy larga para esta entrada. Haré una más adelante tratando este tema.
  • Puedes configurar el cron de Drupal para que no realice la verificación de actualizaciones de manera automática. De esa forma puedes realizar este proceso en aquellos momentos en el que sepas que el servidor tiene menos carga, y no penalizarás a tus usuarios. Aquí explican cómo.
  • Si el sitio tiene mucho contenido, a lo mejor conviene instalar un Content Delivery Network (CDN). Esto permite configurar varios subdominios para almacenar los ficheros del servidor en ellos. Si el servidor está saturado, el módulo de CDN buscará los datos en otro subdominio para liberarlo de trabajo. Aunque es más caro, funciona mejor con dominios que con subdomios. Evidente, no?
  • Procura tener bien limpia la base de datos y optimizada al máximo. Para ello deberás emplear herramientas que no son propiamente de Drupal, sino más relacionadas con el ámbito del benchmarking de MySQL.

Backup

  • Realiza copias de seguridad, tanto del sitio como de la base de datos, de forma automática. El módulo que más me gusta es Backup and Migrate. Pero ten en cuenta una cosa: con instalarlo no es suficiente. Si no lo configuras apropiadamente no servirá de nada.
  • La mayoría de hostings permiten hacer una copia de seguridad del sitio entero (ficheros, base de datos, ficheros de configuración, configuración del dominio y hasta mensajes de correo). Úsalo.

Seguridad

  • Instala un módulo que se encargue de hacer un informe de los problemas de seguridad del sitio. El que más me gusta es: Security Review. Eso sí, con tenerlo sólo tampoco vale de nada. Hay que ejecutarlo periódicamente y hacer caso a las indicaciones.
  • Recuerda que hay una serie de ficheros y directorios que deben estar protegidos. Ya lo hemos comentado anteriormente. Por si acaso, es bueno leer este documento.
  • Configura el sitio para que sólo el administrador pueda agregar usuarios. Se hace en : Administration->Configuration->People->Account settings.
  • Configura correctamente los privilegios que permites a cada rol. Piensa bien qué debe hacer cada rol y, en función a eso, le debes permitir o no el acceso a determinados módulos del sitio.

Una vez hecho todo esto podrás empezar a trabajar con la seguridad de saber que tu instalación es suficientemente robusta. No obstante recuerda siempre una cosa: es mejor que pruebes las cosas (móduos, temas, cambios…) en un servidor local antes de implementarlos en el sitio web final. Es un proceso un poco más lento, pero de esta manera te evitarás disgustos.

Lo que habría que hacer a continuación es preparar Drupal para SEO, organizar y gestionar la información, gestionar el contenido y los enlaces y tener en cuenta la accesibilidad, navegabilidad y usabilidad. Todo eso para otra entrada.