Tiempo de lectura aprox: 11 minutos, 57 segundos
En el artículo anterior, la primera parte, ya comenté varias nociones importantes sobre este archivo wp-config.php.
Ahora viene la segunda parte, con más consideraciones adicionales que quizá no resultan tan evidentes.
El archivo wp-config.php en WordPress
Permíteme que repita lo dicho en el artículo anterior, como nota básica.
En WordPress, el archivo que contiene la configuración principal (aquella que le permite ponerse en marcha), es el archivo wp-config.php.
A pesar de ser un archivo con la extensión «.php», contiene poco código en lenguaje PHP1 que deba procesar el servidor. En su lugar, tiene parámetros y variables que son los que definen el correcto funcionamiento de la instalación de WordPress.
En el archivo wp-config.php puedes configurar la contraseña de conexión a la base de datos (MySQL o MariaDB) o la cantidad de memoria RAM2 utilizable por cada proceso PHP ejecutado por WordPress en el servidor web, entre otras cosas.
En los días que corren, el tema de las «cookie» y su utilización, se ha hecho polémico.
Tanto es así, que en muchos casos se recomienda que las páginas estáticas de un sitio web, se alberguen en subdominios «libres de cookies», para una mejor optimización.
Esto se hace, siempre que sea posible, cuando se trabaja con servicios «CDN3.
Cuando se usa la tecnología de «carga paralela», es interesante definir cuál es el dominio principal desde el que se cargan las cookies del sitio web.
Esto podemos hacerlo con la siguiente línea de código en el archivo wp-config.php:
define( 'COOKIE_DOMAIN', 'www.misitio.xxx' );
Recuerda que esto solo es necesario hacerlo cuando se ha configurado carga paralela o un dominio mediante «domain sharding»4 de subdominios.
Activar el modo multisitio en WordPress (WordPress Multisite)
La configuración de WordPress Multisitio es una modalidad de funcionamiento que permite separar varias sub-instalaciones casi independientes de WordPress utilizando una única instalación de WordPress con una sola base de datos.
Para activar la modalidad de «WordPress Multisite» se debe hacer en el momento de la instalación y la forma manual de hacerlo, es una indicación en el archivo wp-config.php, con esta línea:
define( 'WP_ALLOW_MULTISITE', true );
Después de hacer esto, tendrás que reajustar algunas cosas desde el panel de administración de WordPress con el fin de configurar la nueva instalación de WordPress Multisitio.
El archivo wp-config.php en WordPress
Configurar y personalizar el modo DEBUG en WordPress
Siempre que encuentres problemas con tu instalación de WordPress, puedes recurrir modo DEBUG de WordPress para revisar los errores que muestra.
Junto con la herramienta «Query Monitor»5 (https://es.wordpress.org/plugins/query-monitor/) que permite analizar el estado de la base de datos «SQL»6, son las armas del desarrollador (entre otras).
Para activar o desactivar el modo DEBUG en WordPress, se realiza la indicación en el archivo wp-config.php, con estas líneas:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG', false );
Si quieres hacer DEBUG (algunos usan el palabro «DEBUGAR») de los scripts JavaScript7 y de las hojas de estilo CSS8, debes añadir esta línea en el archivo wp-config.php con el modo DEBUG activado:
define( 'SCRIPT_DEBUG', true );
Si quieres guardar los errores que se muestran en el modo DEBUG en un archivo de registro, llamado «LOG.TXT», puedes añadir la siguiente línea al archivo wp-config.php con el modo DEBUG activado:
define( 'WP_DEBUG_LOG', true );
Y si quieres ver en pantalla todos los errores mostrados por el modo DEBUG, puedes usar este parámetro en el archivo wp-config.php con el modo DEBUG activado:
define( 'WP_DEBUG_DISPLAY', true );
En resumen, en un entorno real de errores en WordPress, si tienes un problema y quieres que queden registrados todos los errores, simplemente debes poner lo siguiente en el archivo wp-config.php:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Fijate bien, con las líneas anteriores, los errores no se mostrarán, pero quedarán registrados igualmente en un archivo llamado «LOG.TXT».
El archivo wp-config.php en WordPress
Concatenar scripts JavaScript en WordPress en el backend
Una de las facilidades útiles de WordPress, es que puede concatenar en uno solo todos los archivos JavaScript utilizados en el escritorio de administración.
De esta forma, puedes llegar a conseguir un panel de administración mucho más rápido para los administradores y editores.
Puedes activar y desactivar la concatenación de JavaScript en el escritorio de administración, con la siguiente línea en el archivo wp-config.php de WordPress:
define( 'CONCATENATE_SCRIPTS', true );
Esto no afectará en absoluto, el front-end de WordPress, en otras palabras, no se combinarán los JavaScript en el front-end del sitio web.
Si escudriñas el HTML resultante, puedes distinguir los archivos «JS» y «CSS» concatenados con esta función cuando acaban en «.min.js» y «.min.css».
Comprimir archivos CSS en WordPress
Otra de las facilidades que podemos usar en el archivo wp-config.php, es la de activar una constante para comprimir el CSS del sitio web.
Por desgracia, la fiabilidad de este método, deja que desear.
Para activar la compresión de archivos CSS, debes incluir la siguiente línea en el archivo wp-config.php:
define( 'COMPRESS_CSS', true );
En mi experiencia, es mucho más fiable y recomendable, activar la minificacion de hojas de estilo CSS y la compresión con los sistemas GZIP o Brotli en el servidor web.
Comprimir scripts JavaScript
También es posible indicar a WordPress que debe comprimir los archivos de texto que contienen los scripts JavaScript.
Al igual que el caso de las hojas de estilo CSS, la fiabilidad de este método, deja que desear.
Pero como es posible, te cuento cómo, debes incluir la siguiente línea en el archivo wp-config.php:
define( 'COMPRESS_SCRIPTS', true );
Y también, al igual que en caso de los archivos CSS, es mucho más fiable y recomendable, activar la minificacion de hojas de estilo CSS y la compresión con los sistemas GZIP o Brotli en el servidor web.
Forzar compresión GZIP desde WordPress
Existe la posibilidad de activar la compresión de tipo GZIP en WordPress, pero siempre que dicha compresión esté activada en el servidor.
WordPress es capaz de muchas cosas, pero no de mandar sobre el servidor. 😉
Para activar la compresión, debes incluir la siguiente línea en el archivo wp-config.php:
define( 'ENFORCE_GZIP', true );
Hace relativamente poco tiempo, apareció (no por arte de mágia 😊) un formato de compresión web más potente que GZIP llamado Brotli. Aunque GZIP sigue siendo el formato de compresión web más utilizado, por lo que es el que debemos utilizar y activar por el momento.
El archivo wp-config.php en WordPress
Configurar la memoria RAM utilizable por WordPress
La memoria RAM9 utilizable por WordPress es limitada y, de forma nativa, WordPress solo es capaz de utilizar 40 MB de memoria RAM por cada proceso de PHP ejecutado.
Esta limitación supone actualmente un problema importante, dado que plugins potentes como «WooCommerce» o «LearnDash» necesitan usar más de esa cantidad de RAM.
La limitación de la cantidad de RAM usada, puede establecerse en diferentes sitios, pero la que se hace aquí, afecta sólo a WordPress.
Para establecer la cantidad de memoria a usar, debes incluir la siguiente línea en el archivo wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' ); // o '512M' o....
Recuerda que este límite nunca podrá ser superior a lo establecido en la configuración del PHP o, dicho de otra manera, si es superior, no se hará caso alguno 😊.
Otra posibilidad, es limitar la cantidad de RAM usada por los procesos del backend, para eso debes incluir la siguiente línea en el archivo wp-config.php:
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
El archivo wp-config.php en WordPress
Permitir el uso de CACHE
La mayoría de plugins de cache para WordPress utilizan el archivo wp-config.php conjuntamente con el archivo advanced-cache.php para gestionar la cache del sitio web de forma eficiente.
Los plugins de cache para WordPress más conocidos, como por ejemplo «WP Rocket» o «W3 Total Cache», hace uso del archivo advanced-cache.php.
Por esta razón, para que funcionen debe existir la siguiente línea en el archivo wp-config.php:
define( 'WP_CACHE', true );
Al instalar y activar un plugin de cache que requiere esta configuración para funcionar, esta línea de código se inserta automáticamente en el archivo wp-config.php.
Configurar permisos de archivos y carpetas con CHMOD
Con mucha probabilidad, el servidor donde está alojado tu sitio web, está ejecutando «Linux y, por tanto, los permisos se administran con CHMOD.
La correcta administración de permisos, es una excelente opción para tener una buena seguridad en tu sitio web (por no decir que es fundamental para la seguridad).
En el archivo wp-config.php puedes especificar los permisos que WordPress asignará a los archivos y carpetas de su instalación.
Los permisos recomendados son 755 para las carpetas y 644 para los archivos. Puedes sobre-escribirlos con estas líneas en el archivo wp-config.php:
define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) ); define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );
Esto es posible porque (si está bien configurado) el usuario bajo el cuál se ejecuta WordPress (o el grupo del que forma parte), tiene todos los derechos en el directorio raíz en el servidor.
Estos permisos también puedes configurarlos si accedes al servidor con un cliente FTP10 como «Filezilla» o con cualquier otra herramienta que te permita acceder a los archivos y carpetas.
Sin embargo, no será de forma tan dinámica y automática como con el archivo wp-config.php.
El archivo wp-config.php en WordPress
Desactivar y activar el WP-CRON
El WP-CRON11 puede presentarse como un problema, ya que a veces causa detrimento en el rendimiento del servidor web.
Una salida a los problemas ocasionados por el WP-CRON, es pasar a usar el CRON de Linux y aliviar así la carga de PHP.
Recuerda que en WordPress es muy necesario el WP-CRON para que se ejecuten algunas tareas importantes con AJAX12, como el auto-guardado o la ejecución de tareas programadas de algunos plugins, ya que WP-CRON puede programar tareas de cualquier plugin.
Para desactivar el WP-CRON, puedes hacerlo con esta línea en el archivo wp-config.php:
define( 'DISABLE_WP_CRON', true );
Si eres osado, después de desactivar el WP-CRON, puedes dar de alta en el CRON de Linux una tarea que se ejecute cada 5 minutos y que ejecute la siguiente ruta en la instalación de WordPress:
wget -q -O /dev/null -t 1 "https://misitio.xxx/wp-cron.php?doing_wp_cron" >/dev/null 2>&1
En el caso de algunas instalaciones de WordPress muy complejas, aliviar las tareas programadas con el CRON de Linux como alternativa a WP-CRON puede ayudar bastante.
Pero recuerda que el WP-CRON NO ejecuta las tareas internas de WordPress.
Vaciar las papeleras cada cierto tiempo
Una buena práctica para mantener la salud de tu sitio web con WordPress, es la vaciar más o menos periódicamente las papeleras ya que, van dejando residuos en la base de datos.
La papelera es útil en caso de que por error o accidente, borres algún elemento pero, si que nunca necesitarás recuperar elementos borrados, puedes desactivar la papelera con esta línea en el archivo wp-config.php:
define( 'EMPTY_TRASH_DAYS', 0 );
Como puedes ver, esta instrucción hace que no se guarden elementos en la papelera, ya que le dice al WordPress que borre la papelera pasados 0 días. 😉
Si lo que queremos es vaciar la papelera después de almacenar elementos por X días, debes especificarlo con una línea como esta con la cantidad de días que consideres apropiado con esta línea en el archivo wp-config.php:
define( 'EMPTY_TRASH_DAYS', 30 ); // vaciar pasados 30 días
Debido a que muchos elementos de WordPress se almacenan en la base de datos y no en el disco del servidor, se crea una cantidad de referencias cruzadas tal, que un elemento eliminado por completo no puede ser recuperado NUNCA (salvo que recuperes una copia de seguridad de todo tu sitio web).
Reparar y optimizar la base de datos MySQL
Uno de los muchos «secretos» de WordPress, es que lleva integrado un sistema para reparar y optimizar su propia base de datos, pero que este sistema está oculto y casi nunca se utiliza.
Por otro lado, este sistema es bastante efectivo y suele funcionar cuando la base de datos de WordPress está corrupta.
Para activar este sistema que sirve para reparar y optimizar la base de datos, debes añadir esta línea en el archivo wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Pero esto no es todo, a continuación debes acceder al sistema con el navegador, entrando al dominio de nuestra web, en esta ruta:
https://misitio.xxx/wp-admin/maint/repair.php
A lo que la respuesta en el navegador será:
[src 201.jpg]
En la mayoría de los casos, este método es capaz de identificar y arreglar los problemas generados en la base de datos, aunque hay que recordar que hay algunos casos en los que el estado es tan corrupto, que no hay forma.
El archivo wp-config.php en WordPress
Desactivar el editor de código de Temas y plugins
Otra medida de seguridad (nunca son demasiadas) que se puede aplicar, es desactivar la ćapacidad de edición de código de Temas y plugins.
La teoría es que, si alguien consigue entrar al backend de tu WordPress y no puede acceder al editor de código de Temas y plugins, tampoco podrá insertar código que pueda ejecutarse.
Para desactivar la capacidad de edición, debes poner la siguiente línea en el archivo wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
Si quieres volver a activar el editor de código, puedes simplemente eliminar esta línea o establecer la constante como «false».
Esto no afecta al editor de contenido de WordPress, únicamente al editor de código del personalizador de Temas.
Desactivar la instalación y actualización de Temas y plugins
Esto también se utiliza como medida de seguridad para WordPress, ya que desactivaremos la posibilidad de modificar Temas y plugins en WordPress (ni instalar, ni actualizar, ni desinstalar).
Para esta medida de seguridad, debes poner la siguiente línea en el archivo wp-config.php:
define( 'DISALLOW_FILE_MODS', true );
El lado negativo, es que si en algún momento quieres actualizar un Tema o un Plugin, antes deberás desactivar esta opción en el archivo wp-config.php.
Forzar HTTPS en el WP-ADMIN
En los tiempos que corren, después de «la amenaza» de Google de penalizar los sitios que no usen un certificado SSL13, por lo que probablemente ya cuentas con una conexión HTTPS14.
Si es así, esta medida carece de sentido, ya que todas las comunicaciones con el servidor se realizarán con un protocolo seguro.
Si no es así, ten en cuenta que esta medida NO ES una forma de implementar el SSL en tu servidor, y que sólo hace una comprobación, forzando a quien intente acceder al escritorio de administración, a usar una conexión segura (HTTPS).
Esto lo consigues, insertando la siguiente línea en el archivo wp-config.php:
define( 'FORCE_SSL_ADMIN', true );
Aunque este trozo de código no tiene mucho sentido, es «usable» y, por tanto, mi deber es contarte que existe. 😉
El archivo wp-config.php en WordPress
Desactivar actualizaciones automáticas
Seguro que sabes que, además de los Plugin o los Temas, WordPress también necesita actualizaciones en su «corazón» (lo que se conoce como «core»).
Esas actualizaciones, en muchos casos, se hacen de forma automática (si así lo decides), al menos desde hace algún tiempo.
Oscuras razones pueden llevarte a querer que esas actualizaciones no se produzcan (es tu decisión). Y si así lo decides, puedes conseguir eso, con la siguiente línea en el archivo wp-config.php:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
Si lo que quieres es activar la auto actualización, puedes hacerlo con la siguiente línea en el archivo wp-config.php:
define( 'AUTOMATIC_UPDATER_DISABLED', false );
Una razón para controlar las actualizaciones puede ser comprobar que la actualización a instalar no genera errores en tu sitio, aunque normalmente solo se actualizan versiones menores con actualizaciones automáticas.
Lo más común es que las actualizaciones automáticas de este tipo solo apliquen al núcleo de WordPress y que se hagan de forma automática en background, siempre dentro de las versiones menores.
Configurar actualizaciones automáticas del core de WordPress
Ahondando más, no sólo puedes activar y des-activar las actualizaciones automáticas del núcleo de WordPress, sino que también puedes configurar un poco su comportamiento.
Si por alguna razón quieres desactivar por completo las actualizaciones del core de WordPress de forma automática (que no se produzcan actualizaciones), lo puedes especificar con la siguiente línea en el archivo wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', true );
En caso contrario, si lo que quieres es activar todas las actualizaciones automáticas, debes introducir la siguiente línea en el archivo wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', false );
Pero entrando ya en el terreno del ajuste fino, si sólo quieres que se auto-actualice WordPress en versiones menores, puedes especificarlo con la siguiente línea en el archivo wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Recuerda que la actualización de componentes y del propio WordPress, es una de las tareas más importantes que se debe realizar dentro del mantenimiento de cualquier sitio web creado y gestionado con WordPress.
Sobrescribir imágenes después de editarlas en WordPress
El editor de imágenes que WordPress tiene integrado, es una herramienta poco conocida y bastante útil, que puedes usar desde la galería multimedia o al subir contenido a la galería de medios.
No es un editor muy potente, pero si lo suficiente para permitirte realizar algunas modificaciones en imágenes.
Hay que tener en cuenta que cuando manipulamos imágenes con este editor, las imágenes son guardadas siempre como una imagen nueva con un nombre nuevo.
Esto puede dar lugar a consumir más espacio de almacenamiento de forma innecesaria con todo lo que eso implica.
Si estás limitado en la cantidad de recursos disponibles (por espacio, por inodos, …) puedes hacer que las imágenes se sobre-escriban cuando usas este editor.
Para eso, incluye la siguiente línea en el archivo wp-config.php:
define( 'IMAGE_EDIT_OVERWRITE', true );
El uso de esta opción, no afecta al comportamiento de los plugins optimizadores de imágenes utilizados.
Configuración de acceso a FTP para conexiones de WordPress
Es posible que te haya ocurrido, que al intentar instalar un plugin o un Tema, te solicita (el WordPress) los datos de acceso FTP.
Esto se debe a un problema en la configuración del servidor (posiblemente, no es culpa tuya 😊) y, en algunos casos, podemos solucionar este problema especificando los datos en el archivo wp-config.php:
define('FS_METHOD', 'ftpext'); define('FTP_BASE', '/var/www/vhosts/loquesea/ejemplo/'); define('FTP_USER', 'username'); define('FTP_PASS', 'password'); define('FTP_HOST', 'host'); define('FTP_SSL', false);
No es usual que sea necesario declarar todo esto, con especificar los datos que utilizarías en la conexión con tu cliente FTP, es suficiente: servidor, nombre, contraseña y puerto (si no es el predeterminado).
Bloquear el acceso desde otros dominios
En algunos casos, mediante el uso de un ALIAS u otras técnicas más o menos legales, el contenido de tu sitio web puede ser cargado desde otro dominio diferente al tuyo.
Para evitar esta fuga de información, se puede instruir al archivo wp-config.php e, incluso, determinar si existe alguna exclusión.
Concretamente, debes introducir esta línea en tu archivo wp-config.php para bloquear el acceso a dominios que no son el principal:
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
Pero si por algún caso quieres añadir algún dominio en exclusión para permitirle acceder a tu sitio web, debes además, especificar esta línea en tu archivo wp-config.php:
define( 'WP_ACCESSIBLE_HOSTS', '*.ejemplodominio.com, ejemplodosdominio.es' );
Si no tienes cuidado con lo que bloqueas, puedes encontrarte con problemas en el momento de configurar servicios como un CDN.
Conclusión
Es posible que me deje en el tintero, alguna otra declaración posible, por exhaustivo que parezca este listado.
Lo cierto es que sólo están algunas declaraciones que creo que pueden ser interesante conocer sin ‘morir en el intento’.
Si hablas inglés, puede que te interese echar un vistazo a la documentación oficial sobre el archivo wp-config.php, que puedes encontrar en el CODEX oficial de WordPress: (https://codex.wordpress.org/Editing_wp-config.php) Mientras tanto, recuerda, #QuédateEnCasa, #UsaMascarilla, #LavateLasManos, juega, experimenta y, sobre todo, ¡divertirte!
¡Gracias por leernos!
¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!
Personal Home Page (nombre original del lenguaje de programación de servidores) ↩
Random Access Memory – Memoria de Acceso Aleatorio ↩
Content Delivery Network – Red de Distribución de Contenido – Es un conjunto de servidores ubicados en diferentes puntos de una red que contienen copias locales de contenidos (vídeos, imágenes, música, documentos, webs, etc.) que están almacenados en otros servidores generalmente alejados geográficamente, de forma que sea posible servir dichos contenidos de manera más eficiente. ↩
Domain sharding es una de las técnicas que permiten la optimización de un WordPress mediante el uso de una sola conexión TCP. Esto permite que, en lugar de procesar cada uno de los archivos de forma independiente, se carguen varios de forma simultánea permitiendo una carga paralela de todos los elementos (HTML, JS, CSS…) de la web. ↩
Plugin de ayuda al desarrollo, muy recomendable. ↩
Structured Query Language – Lenguaje de Búsqueda Estructurado ↩
Lenguaje de programación para los navegadores. ↩
Cascading Style Sheet – Hoja de Estilos en Cascada ↩
Random Access Memory – Memoria de Acceso Aleatorio ↩
File Transfer Protocol – Protocolo de Transmisión de Archivos ↩
WP-Cron es la herramienta usada por WordPress mara manejar la agenda de tareas. ↩
Acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas. ↩
Secure Sockets Layer – Protocolo diseñado por la empresa Netscape para proveer comunicaciones encriptadas en internet. ↩
HyperText Transfer Protocol Secure – Es una combinación del protocolo HTTP y protocolos criptográficos. ↩