{"id":263,"date":"2015-05-12T09:23:58","date_gmt":"2015-05-12T08:23:58","guid":{"rendered":"http:\/\/tecnologiasweb.jsenso.es\/?p=263"},"modified":"2020-12-16T11:39:13","modified_gmt":"2020-12-16T10:39:13","slug":"ya-he-instalado-drupal-y-ahora-que","status":"publish","type":"post","link":"https:\/\/blogs.ugr.es\/tecweb\/ya-he-instalado-drupal-y-ahora-que\/","title":{"rendered":"Ya he instalado Drupal \u00bfY ahora, qu\u00e9?"},"content":{"rendered":"<p><a href=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/druplicon.small_.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-269\" src=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/druplicon.small_.png\" alt=\"Logo de Drupal\" width=\"175\" height=\"200\" \/><\/a>El hecho de que la instalaci\u00f3n de los CMS sea un proceso cada vez m\u00e1s sencillo nos suele llevar a la tendencia de pensar que, una vez instalado, ya est\u00e1 todo hecho. Si con WordPress es algo muy frecuente -tanto es as\u00ed que se suele olvidar hasta la <a href=\"http:\/\/tecnologiasweb.jsenso.es\/seguridad-en-wordpress\/\" target=\"_blank\" rel=\"noopener\">seguridad del sitio<\/a>&#8211; en Drupal tambi\u00e9n sucede. Debemos evitar pasar de la instalaci\u00f3n a la configuraci\u00f3n sin haber dado una serie de pasos previos. Aqu\u00ed indico cu\u00e1l deber\u00eda ser el proceso natural para no tener problemas:<\/p>\n<h2>Pasos iniciales<\/h2>\n<ul>\n<li>&#8211; Durante la instalaci\u00f3n hemos tenido que activar los permisos de escritura en el fichero configuraci\u00f3n <i>settings.php<\/i> que se encuentra en s<i>ites\/default\/<\/i>. De esa manera el instalador ha podido introducir las variables que necesita para realizar la instalaci\u00f3n del sitio. Recuerda que ahora deber\u00edas quitar esos permisos de escritura, o su sitio se quedar\u00e1 desprotegido. Lo puedes hacer bien desde un cliente ftp, bien directamente sobre el hosting, empleando el gestor de ficheros.<a href=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-122748.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-264\" src=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-122748.png\" alt=\"Configurar los permisos de escritura de settings.php\" width=\"443\" height=\"300\" \/><\/a><\/li>\n<\/ul>\n<ul>\n<li>&#8211; Si te has bajado la \u00faltima versi\u00f3n del <a href=\"https:\/\/www.drupal.org\/project\/drupal\" target=\"_blank\" rel=\"noopener\">sitio de Drupal<\/a>, lo m\u00e1s probable es que est\u00e9 en ingl\u00e9s. Y tambi\u00e9n es probable que eso no te guste. A\u00fan no me ha dado tiempo de hacer una entrada sobre eso, pero en el <a href=\"http:\/\/www.marysalento.com\/configurar-el-idioma-en-drupal-7\/\" target=\"_blank\" rel=\"noopener\">Blog de Mar\u00eda Ca\u00f1izares<\/a> lo explican de manera muy facilita y sencilla.<\/li>\n<li>&#8211; Lo siguiente que deber\u00edas hacer es echar un vistazo al informe de estatus, para ver si existe alg\u00fan mensaje de error o alguna advertencia que debieras revisar. Como es evidente, a continuaci\u00f3n deber\u00edas solucionarlo. Para ello debes ir a <i>admin-&gt;reports-&gt;status report<\/i>. Aseg\u00farate de que el los ficheros <i>update.php<\/i> y <i>settings.php<\/i> est\u00e1n protegidos.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-153633.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-265\" src=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-153633.png\" alt=\"Informe de estado de Drupal\" width=\"502\" height=\"192\" \/><\/a><\/p>\n<ul>\n<li>&#8211; En ese informe podr\u00e1s comprobar la versi\u00f3n de Drupal que te has instalado. Aseg\u00farate siempre de que es la \u00faltima.<\/li>\n<li>&#8211; Por \u00faltimo, deber\u00edas mirar el fichero Log <i>admin-&gt;reports-&gt;recent log messages<\/i>. En \u00e9l, 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\u00f3n y, en muchos casos, hasta la soluci\u00f3n a los problemas.<\/li>\n<\/ul>\n<h2>Ficheros importantes<\/h2>\n<ul>\n<li>&#8211; Conviene que configures el fichero <a href=\"http:\/\/httpd.apache.org\/docs\/current\/howto\/htaccess.html\" target=\"_blank\" rel=\"noopener\">.htaccess<\/a> de tu servidor correctamente. Para ello puedes bajarte cualquier m\u00f3dulo (<a href=\"https:\/\/www.drupal.org\/project\/htaccess\" target=\"_blank\" rel=\"noopener\">Htaccess<\/a> bastar\u00e1) o editar el fichero manualmente. Si no tienes configurada la direcci\u00f3n can\u00f3nica puedes hacerlo en ese fichero. Si, adem\u00e1s, cuentas con servidor seguro, deber\u00edas configurar la redirecci\u00f3n a https.<\/li>\n<li>&#8211; Aseg\u00farate de que la <a href=\"https:\/\/www.drupal.org\/node\/15368\" target=\"_blank\" rel=\"noopener\">configuraci\u00f3n de los ficheros del sistema<\/a> es la correcta. En esencia deber\u00edas configurar correctamente las carpetas para los ficheros p\u00fablicos, privados y temporales en el servidor (aplic\u00e1ndoles los privilegios correspondientes) y especificar esas rutas en Drupal: <i>Administration-&gt;Configuration-&gt;Media\u2192File System<\/i>.<\/li>\n<li>&#8211; Crea un <a href=\"https:\/\/www.drupal.org\/node\/362265\" target=\"_blank\" rel=\"noopener\">favicono<\/a> y ub\u00edcalo en el lugar correspondiente para que el servidor lo pueda localizar y usar. En el caso de emplear m\u00e1s adelante un tema, deber\u00edas saber que muchos ya lo traen por defecto. Tan solo tendr\u00e1s que optar por mantener el que trae el tema, o por sustituir este por el tuyo.<\/li>\n<li>&#8211; Que no se te olviden dos ficheros vitales en cualquier servidor: robots.txt y sitemap.xml. Ambos se pueden generar autom\u00e1ticamente por medio de cualquier m\u00f3dulo (aqu\u00ed tienes uno para <a href=\"https:\/\/www.drupal.org\/project\/robotstxt\" target=\"_blank\" rel=\"noopener\">robots<\/a> y aqu\u00ed otro para <a href=\"https:\/\/www.drupal.org\/project\/xmlsitemap\" target=\"_blank\" rel=\"noopener\">sitemap<\/a>). Eso s\u00ed: aseg\u00farate de que los configuras correctamente. Un error muy com\u00fan es el de instalar el m\u00f3dulo para sitemap, con el fin de que actualice autom\u00e1ticamente el fichero sitemap.xml del servidor, pero configurarlo en modo \u201cexclusi\u00f3n\u201d por defecto, por lo que obligar\u00e1 a activarlo en cada una de las entradas que a\u00f1adamos al sitio.<\/li>\n<\/ul>\n<h2>Haz un poco de limpieza<\/h2>\n<ul>\n<li>&#8211; Es muy recomendable eliminar una serie de ficheros que vienen dentro de la instalaci\u00f3n de Drupal que no valen para nada. En realidad aportan datos a extra\u00f1os al sitio web que deber\u00edamos 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<\/li>\n<\/ul>\n<figure id=\"attachment_266\" aria-describedby=\"caption-attachment-266\" style=\"width: 454px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-160054.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-266\" src=\"https:\/\/blogs.ugr.es\/tecweb\/wp-content\/uploads\/sites\/55\/2018\/10\/Captura-de-pantalla-de-2015-05-11-160054.png\" alt=\"El proceso de eliminaci\u00f3n de estos ficheros se puede llevar a cabo directamente en el servidor (como en la imagen) o por medio de una sesi\u00f3n de FTP.\" width=\"454\" height=\"368\" \/><\/a><figcaption id=\"caption-attachment-266\" class=\"wp-caption-text\">El proceso de eliminaci\u00f3n de estos ficheros se puede llevar a cabo directamente en el servidor (como en la imagen) o por medio de una sesi\u00f3n de FTP.<\/figcaption><\/figure>\n<ul>\n<li>&#8211; Drupal tiene una opci\u00f3n que permite visualizar en pantalla los errores que se producen conforme se est\u00e1 trabajando con el CMS. Se trata de una opci\u00f3n muy \u00fatil para el desarrollador, pero muy pesada para el usuario. La puedes desactivar en: <i>Administration-&gt; Configuration-&gt;Development-&gt;Logging and errors<\/i>.<\/li>\n<li>&#8211; Alguno temas (apariencia) tienen opciones de desarrollo pensada para ajustarse mejor a las necesidades de cada sitio. Deber\u00edas desactivarlas tambi\u00e9n. Para ello solo tienes que acceder a la configuraci\u00f3n de apariencia y desactivar las opciones correspondientes: <i>Administration-&gt;Appearance-&gt;Settings<\/i>.<\/li>\n<li>&#8211; Elimina m\u00f3dulos y temas que no utilices. Suele ser un error muy com\u00fan dejar en el servidor aquellos m\u00f3dulos o temas que hemos bajado, nos hemos instalado y despu\u00e9s 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\u00e1ginas que carguen m\u00e1s lento. Aquellos m\u00f3dulos y temas que no vayamos a emplear hay que quitarlos. No basta con desactivarlos. Adem\u00e1s de eso hay que eliminar -f\u00edsicamente- los ficheros del servidor.<\/li>\n<li>&#8211; Elimina todos los usuarios y roles que no vayas a emplear. Tambi\u00e9n pueden generar problemas de seguridad, a parte de convertir el proceso de asignaci\u00f3n de privilegios por roles en una aut\u00e9ntica locura.<\/li>\n<\/ul>\n<h2>Rendimiento<\/h2>\n<ul>\n<li>&#8211; Aunque lo he comentado en el punto anterior, lo repito de nuevo aqu\u00ed: elimina m\u00f3dulos y temas que no utilices. Ralentizan el sistema. Adem\u00e1s, procura no instalar demasiados m\u00f3dulos. S\u00f3lo los imprescindibles para hacer lo necesario. Cuantos m\u00e1s m\u00f3dulos, m\u00e1s lento va el sistema. Si no tienes muy claro esto, s\u00f3lo tienes que echar un vistazo al <a href=\"https:\/\/www.drupal.org\/files\/er_db_schema_drupal_7.png\" target=\"_blank\" rel=\"noopener\">mapa que muestra las relaciones entre las tablas de Drupal<\/a> para entender que m\u00e1s es menos.<\/li>\n<li>&#8211; Gestionar correctamente <a href=\"https:\/\/www.drupal.org\/node\/326504\" target=\"_blank\" rel=\"noopener\">la cach\u00e9 del sitio<\/a> puede hacer que este se vuelva hasta un 50% m\u00e1s r\u00e1pido. Contra las cach\u00e9s desde Administration-&gt;Configuration-&gt;Development-&gt;Clear Cache o, en su defecto, usa alg\u00fan m\u00f3dulo para eso.<\/li>\n<li>&#8211; En relaci\u00f3n a esto \u00faltimo hay <a href=\"https:\/\/www.drupal.org\/project\/advagg\" target=\"_blank\" rel=\"noopener\">m\u00f3dulos<\/a> que permiten trabajar muy bien con CSS y con JavaScripts, comprimi\u00e9ndolos o minimiz\u00e1ndolos para disminuir el efecto negativo que tienen en cuanto a velocidad de carga se refiere.<\/li>\n<li>&#8211; Una buena opci\u00f3n, aunque algo compleja, es crear vistas basadas en tiempo. Pero esto requiere de una explicaci\u00f3n muy larga para esta entrada. Har\u00e9 una m\u00e1s adelante tratando este tema.<\/li>\n<li>&#8211; Puedes configurar el cron de Drupal para que no realice la verificaci\u00f3n de actualizaciones de manera autom\u00e1tica. De esa forma puedes realizar este proceso en aquellos momentos en el que sepas que el servidor tiene menos carga, y no penalizar\u00e1s a tus usuarios. <a href=\"https:\/\/www.drupal.org\/cron\" target=\"_blank\" rel=\"noopener\">Aqu\u00ed explican c\u00f3mo<\/a>.<\/li>\n<li>&#8211; Si el sitio tiene mucho contenido, a lo mejor conviene instalar un <a href=\"https:\/\/www.drupal.org\/project\/cdn\" target=\"_blank\" rel=\"noopener\">Content Delivery Network (CDN)<\/a>. Esto permite configurar varios subdominios para almacenar los ficheros del servidor en ellos. Si el servidor est\u00e1 saturado, el m\u00f3dulo de CDN buscar\u00e1 los datos en otro subdominio para liberarlo de trabajo. Aunque es m\u00e1s caro, funciona mejor con dominios que con subdomios. Evidente, no?<\/li>\n<li>&#8211; Procura tener bien limpia la base de datos y optimizada al m\u00e1ximo. Para ello deber\u00e1s emplear herramientas que no son propiamente de Drupal, sino m\u00e1s relacionadas con el \u00e1mbito del <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.0\/en\/mysql-benchmarks.html\" target=\"_blank\" rel=\"noopener\">benchmarking de MySQL<\/a>.<\/li>\n<\/ul>\n<h2>Backup<\/h2>\n<ul>\n<li>&#8211; Realiza copias de seguridad, tanto del sitio como de la base de datos, de forma autom\u00e1tica. El m\u00f3dulo que m\u00e1s me gusta es <a href=\"https:\/\/www.drupal.org\/project\/backup_migrate\" target=\"_blank\" rel=\"noopener\">Backup and Migrate<\/a>. Pero ten en cuenta una cosa: con instalarlo no es suficiente. Si no lo configuras apropiadamente no servir\u00e1 de nada.<\/li>\n<li>&#8211; La mayor\u00eda de hostings permiten hacer una copia de seguridad del sitio entero (ficheros, base de datos, ficheros de configuraci\u00f3n, configuraci\u00f3n del dominio y hasta mensajes de correo). \u00dasalo.<\/li>\n<\/ul>\n<h2>Seguridad<\/h2>\n<ul>\n<li>&#8211; Instala un m\u00f3dulo que se encargue de hacer un informe de los problemas de seguridad del sitio. El que m\u00e1s me gusta es: <a href=\"https:\/\/www.drupal.org\/project\/security_review\" target=\"_blank\" rel=\"noopener\">Security Review<\/a>. Eso s\u00ed, con tenerlo s\u00f3lo tampoco vale de nada. Hay que ejecutarlo peri\u00f3dicamente y hacer caso a las indicaciones.<\/li>\n<li>&#8211; Recuerda que hay una serie de ficheros y directorios que deben estar protegidos. Ya lo hemos comentado anteriormente. Por si acaso, es bueno leer <a href=\"https:\/\/www.drupal.org\/node\/244924\" target=\"_blank\" rel=\"noopener\">este documento<\/a>.<\/li>\n<li>&#8211; Configura el sitio para que s\u00f3lo el administrador pueda agregar usuarios. Se hace en : <i>Administration-&gt;Configuration-&gt;People-&gt;Account settings<\/i>.<\/li>\n<li>&#8211; Configura correctamente los privilegios que permites a cada rol. Piensa bien qu\u00e9 debe hacer cada rol y, en funci\u00f3n a eso, le debes permitir o no el acceso a determinados m\u00f3dulos del sitio.<\/li>\n<\/ul>\n<p>Una vez hecho todo esto podr\u00e1s empezar a trabajar con la seguridad de saber que tu instalaci\u00f3n es suficientemente robusta. No obstante recuerda siempre una cosa: es mejor que pruebes las cosas (m\u00f3duos, temas, cambios&#8230;) en un <a href=\"http:\/\/tecnologiasweb.jsenso.es\/servidores-wamp\/\" target=\"_blank\" rel=\"noopener\">servidor local<\/a> antes de implementarlos en el sitio web final. Es un proceso un poco m\u00e1s lento, pero de esta manera te evitar\u00e1s disgustos.<\/p>\n<p>Lo que habr\u00eda que hacer a continuaci\u00f3n es preparar Drupal para SEO, organizar y gestionar la informaci\u00f3n, gestionar el contenido y los enlaces y tener en cuenta la accesibilidad, navegabilidad y usabilidad. Todo eso para otra entrada.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El hecho de que la instalaci\u00f3n de los CMS sea un proceso cada vez m\u00e1s sencillo nos suele llevar a la tendencia de pensar que, una vez instalado, ya est\u00e1 todo hecho. Si con WordPress es algo muy frecuente -tanto es as\u00ed que se suele olvidar hasta la seguridad del sitio&#8211; en Drupal tambi\u00e9n sucede. [&hellip;]<\/p>\n","protected":false},"author":65,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[45],"tags":[40,28,25,55,42],"class_list":{"0":"post-263","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-content-management-systems","7":"tag-administrador-del-sitio","8":"tag-cms","9":"tag-drupal","10":"tag-open-source","11":"tag-servidores-web","12":"entry"},"_links":{"self":[{"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":1,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":1088,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/posts\/263\/revisions\/1088"}],"wp:attachment":[{"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ugr.es\/tecweb\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}