Drupal for newbies: Cinco problemas de configuración que podrías encontrarte

Rojomorgan errores de configuración Drupal
Drupal for newbies: Cinco problemas de configuración que podrías encontrarte

A nuestro alrededor se van produciendo nuevos movimientos en torno a Drupal y no pasa una semana en la que nos llegue alguna nueva información acerca de una nueva empresa que ahora está empezando a pasarse de Wordpress a Drupal o bien algún organismo público que pasa a migrar sus plataformas a nuestro CMS favorito ¿Tendrán relación los dos mensajes anteriores?  en cualquier caso, nos llegan consultas de amigos y amigas, contactos que nos preguntan cosas o nos solicitan pistas para resolver alguna movida. Es normal, nosotros también lanzamos consultas a nuestros amigos de octavo de Drupal cuando andamos atascados en algún apartado específico. Para nuestros contactos que nos preguntan, hemos pensado reunir los casques más comunes o al menos los que nos han pasado con más frecuencia a la hora de instalar y configurar un nuevo Drupal, específicamente aquellos errores que nos salían hace tiempo mientras nos íbamos haciendo mayores. 

Si estás probando de nuevas con Drupal y algo parece no ir demasiado bien te recomendamos que leas este artículo, tomes algunas notas y luego lo dejes en los marcadores de tu navegador. Podría resultarte útil. Quién sabe. 

 

Primera movida: Integración de Apache y JavaScript

En algunos proyectos hemos encontrado problemas de rendimiento de algunas zonas del portal cuando las secciones tienen integrado código Javascript.
La configuración del sistema mod_security (módulo de apache para hacer de primer firewall del servidor) bloquea las ejecuciones del script jquery.cookie.js al encontrarse dentro de sus expresiones no permitidas. Este módulo de Apache sirve, entre otras cosas para monitorizar tráfico http en tiempo real y además controla ataques vía web mediante un sistema de reglas montadas con expresiones regulares. Bien, pues a nosotras nos cascaba algo en algunas versiones de Drupal 7 a la hora de instalar y desplegar en nuestros entornos. Carruseles de imágenes y zonas desplegables no iban, o no aparecían o se quedaban trinchadas. Nos pusimos a investigar y a depurar el código JavaScript por un lado y luego a revisar los logs de Apache y encontramos movidas relacionadas con el módulo de seguridad. 

 

Solución:

El bloqueo se produce por la identificación de peticiones con cadenas de texto que incluyen la expresión “.cookie” lo considera un ataque externo y así lo interpreta. Esto provoca que el contenido dinámico (como posibles elementos de menús, animaciones, elementos que se despliegan, etc) no funcionen.
La solución pasa por desactivar mod_security (arriesgado), editar la regla para que se permita la ejecución de cadenas de texto .cookie, y como solución rápida o workaround (una ñapa, vamos), también funciona cambiar el nombre jquery.cookie.js por jquery_cookie.js

 

Segunda movida: Recuperando la base de datos

En algunos proyectos, a la hora de reutilizar un volcado (dump) de la base de datos, nos aparecieron problemas en la instalación de una copia de la base de datos. Nos ocurría cuando nos traíamos un site de un sitio a otro e intentábamos levantarlo en otro entorno diferente al suyo habitual, otra máquina. Básicamente, no tiraba de la base de datos y el Drupal aparecía totalmente pelado. Revisábamos la base de datos por consola y todo parecía estar en orden en cuanto a tablas y contenido ¿entonces? el problema lo teníamos nosotros en las configuraciones de nuestro MySQL, encontrando que tiraba un mensaje tal que así: Packets larger than max_allowed_packet are not allowed así que tras localizar este mensaje, un poco de investigación y de StackOverFlow nos dió la solución: ampliarle el límite permitido.
         

Solución: 

Para la recuperación del dump de la base de datos es fundamental que los siguientes parámetros de MySQL estén configurados (al menos) con los siguientes valores:

set global net_buffer_length=1000000;
set global max_allowed_packet=10000000000;

Pero atención porque al cambiar una variable global, el nuevo valor se guarda para nuevas conexiones hechas después del cambio, así que es muy recomendable reiniciar el server. 

 

Tercera movida: Enlaces rotos a imágenes

En ocasiones durante las pruebas de despliegue de Drupal en servidores, puede ocurrir que aparezcan imágenes rotas en la vista del portal web. Esto quiere decir que no se muestran, que no están visibles y/o que directamente aparece un icono de “enlace roto” o “imagen no disponible”. El problema viene a raíz de hacer referencia a la plataforma drupal y su contenido con una URL con barra incluida ('/') en su dirección URL.

Drupal interpreta la situación de las imágenes insertadas mediante ckeditor (el editor de texto para usuarios editores y administradores incluido en la creación de contenidos) y añadidas como bloque (por ejemplo carruseles de imágenes de portadas, etc) como una dirección absoluta que parte de la primera slash o barra ('/') que se encuentra, lo que origina una ligera confusión ya que en las rutas a archivos se refiere a la carpeta raíz (en este caso la dirección base de la instalación de la carpeta del proyecto Drupal en el servidor) y en la URL en cuestión solo hace referencia a una sección dentro del servidor de despliegue.

         

Solución:

Este problema tiene dos caminos posibles para su solución.

1-Opción ligera: Se soluciona con la instalación del módulo Pathologic. Este módulo es una solución desarrollada a medida para gestionar la aparición de imágenes rotas en un sitio web basado en Drupal por motivos de direccionamiento URL.

Aquí puede consultarse la información sobre el proyecto y descargar el módulo: https://drupal.org/project/pathologic

Para configurar el módulo pathologic hay que acceder a CONFIGURACIÓN > FORMATOS DE TEXTO .
A continuación seleccionar en Full HTML el botón configurar ; hay que asegurarse que la opción "Correct URL's with pathologic" está seleccionada; seleccionar "Full URL (http://example.com/foo/bar)" y guardar estos cambios.

Repetir este paso para la sección Filtered HTML.

Es posible que en algunas instalaciones, Pathologic también sea insuficiente para evitar los enlaces rotos provocados por este problema. Así que pasamos a la solución 2.

2-Opción ad-hoc: Bastará con retirar la '/' de las referencias de todas las imágenes insertadas mediante ckeditor + bloque de la web para que se interpreten sus referencias como relativas y no como absolutas.

 

Cuarta movida: problemas con los permisos

Si eres uno de esos sysadmins algo avaros con los permisos, es posible que una vez desplegada la plataforma, haya que configurar los permisos relativos a los directorios de configuración local del drupal si los archivos fueron empaquetados. Te darás cuenta por varias señales: no se cargarán imágenes, no podrás subir contenidos y empezarás a sentir el aliento de tus compañeros soplando al unísono en tu cuello mientras te rodean. 

Solucion:

En primer lugar configuraremos los permisos del directorio sites/default o los archivos contenidos en él (fundamentalmente settings.php) como 755 (esto es, permisos de lectura para todos, ejecución para todos, y escritura sólo para usuario); estos permisos suelen estar configurados de este modo, pero si recibimos un error relativo a estos, hay que solucionarlo del siguiente modo: (situados en la carpeta raíz del proyecto drupal):

teclear: chmod -R 755 sites/default

De la misma manera habrá que configurar los permisos del directorio sites/default/files como 777 (esto es, permisos de lectura, ejecución y escritura para todos), para evitar los errores recibidos en la sección de informes de drupal que puedan apreciar en las imágenes en caso de mostrar enlaces rotos. Revisa esto si vas a salir a producción y si tu configuración de server lo permite (puede que de problemas con cierto tipos de servicios), afínala mejor, ya que 777 es la opcion más "abierta" y por tanto, más insegura. 

Teclear: chmod -R 777 sites/default/files

El asunto es un poco sensible, pero en realidad depende de la configuración de seguridad del server que estés usando y del propio Apache, que puede limitarte el trabajo con el directorio /files si solo estás usando 755. Aqui puedes ver los consejos en cuanto a permisos en el directorio /files desde Drupal.org

Quinta movida: los enlaces de secciones y menú no funcionan

Este caso lo hemos tenido principalmente al empezar a jugar con Drupal 8 y se corresponde básicamente porque al parecer, colisiona con versiones antiguas de Drush y específicamente, por alguna razón tiende a cepillarse el fichero .htaccess lo que al levantar un Drupal tiene como efecto práctico que no se vea la home o a pesar de tener instalado Rewrite, no sea capaz de montar las URLs de Drupal y dé errores 404 a cada click en el menú de administración. También es seguro que lanzará mil errores por consola (PHP fatal error) al colisionar con la versión de Drupal.

Solución:

Solo Drush 8 puede trabajar directamente con Drupal 8. En ese caso, descargar una versión actualizada de Drush https://packagist.org/packages/drush/drush y comenzar de nuevo o bien clonar el .htaccess de algún repositorio disponible y montarlo de nuevo, teniendo en cuenta el conflicto con la versión de Drush que tengas. Aunque lo verdaderamente útil es manejarte con Composer y montar distintas versiones de Drush en directorios separados para distintas versiones de Drupal. Para eso recomendamos este artículo didáctico y útil "Switching Drush Versions" escrito por Karen Stevenson en el blog de Lullabot.

 

9 Noviembre 2016 - 10:38pm
Total de votos: 109
Imagen de rojomorgan
rojomorgan

Comentarios

Ricardo (no verificado)

Me ha llegado este artículo y tiene muy buena onda, me será útil para proyectos con Drupal

Añadir nuevo comentario

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.
CAPTCHA
Esta pregunta es para probar si eres o no un visitante humano.