El archivo wp-config.php en WordPress (1 de 2)

Reading time aprox: 10 minutes, 44 seconds

El archivo wp-config.php en WordPress.

Hay muchos archivos importantes para el funcionamiento correcto de cualquier aplicación informática (esté en web, o no).

Pero si hay un archivo crucial para su funcionamiento, es el archivo que contiene la configuración.

Muchas aplicaciones guardan su configuración en archivos de «texto plano»1, de forma que sea fácil acceder a su modificación.

El archivo wp-config.php en WordPress

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 PHP2 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 RAM3 utilizable por cada proceso PHP ejecutado por WordPress en el servidor web, entre otras cosas.

Configurar wp-config.php

Puedes encontrar el archivo wp-config.php de WordPress en la raíz del sitio, es decir, en el mismo sitio donde encontraremos las carpetas WP-CONTENT y WP-INCLUDES:

El Archivo wp-config.php en WordPress - Localización
El Archivo wp-config.php en WordPress – Localización

Ten en cuenta, que si acabas de descomprimir el archivo «.zip»4 de WordPress descargado desde es.wordpress.org, este archivo de configuración no aparece; en su lugar, aparece un archivo con el nombre de wp-config-sample.php, que es una versión de ejemplo.

El archivo de ejemplo, es una plantilla vacía para que puedas crear manualmente, tu propio archivo de configuración (el archivo wp-config.php).

En muchos casos, no hace falta editar el archivo wp-config.php, ya que el procedimiento de instalación lo hará por ti.

Puedes editar el archivo wp-config.php de WordPress con cualquier editor de texto, ya que es un archivo PHP normal.

Al igual que casi todo lo que queramos realizar en el entorno de WordPress, hay muchas formas de hacerlo, la edición de el archivo wp-config.php no es una excepción.

Plugins y servicios para editar el archivo wp-config.php

Una forma común, fácil y práctica de editar el archivo wp-config.php, es el uso del editor del cliente FTP5.

Es también muy común, descargar el archivo wp-config.php a un recurso local (disco, «pincho» USB) y luego editar el archivo con un editor externo de texto plano, como «Notepad», «Notepad++», «Geany», «Ultraedit», etcétera.

Existen, por otro lado, plugins de WordPress que te permitirán modificar ciertos parámetros del archivo wp-config.php de WordPress directamente desde el escritorio de administración (conocido como «backend») de WordPress.

La mayoría de plugins de este tipo tienen el gran inconveniente de que las opciones o parámetros que se pueden configurar están bastante limitados.

Además (obviamente) solo pueden ser usados después de instalado el WordPress 😉

WP Config File Editor

Un plugin gratuito que puedes encontrar en el repositorio de plugins de WordPress (https://es.wordpress.org/plugins/wp-config-file-editor/).

Tiene muchas opciones de configuración organizadas en pestañas:

El Archivo wp-config.php en WordPress - WPConfig File Editor
El Archivo wp-config.php en WordPress – WPConfig File Editor

Sorprende que, además del archivo wp-config.php, también permite configurar cosas como las «cookies» utilizadas por WordPress, de forma que funcionen en el dominio principal, o el funcionamiento del WP-CRON6 de WordPress.

GenerateWP

«GenerateWP» es un servicio externo, sin vinculación alguna con WordPress, que permite generar distintos archivos de configuración y funcionamiento de WordPress. Uno de ellos es el archivo wp-config.php.

El Archivo wp-config.php en WordPress - GenerateWP
El Archivo wp-config.php en WordPress – GenerateWP

Puede resultar un servicio limitado y que puede ser muy mejorable, pero puede servir como orientación a la hora de configurar correctamente un archivo wp-config.php.

Sin embargo, los usuarios avanzados preferirán hacerlo manualmente editando el archivo wp-config.php con un editor de texto.

Este servicio está en inglés, aunque si decides usarlo, lo puedes encontrar en: https://generatewp.com/wp-config/

WP-CONFIG.PRO

Este servicio externo, también sin vinculación alguna con WordPress, es parecido al anterior, aunque con una diferencia en los detalles de las secciones.

El Archivo wp-config.php en WordPress - WP-CONFIG PRO
El Archivo wp-config.php en WordPress – WP-CONFIG PRO

Es un servicio bastante completo y a mí me gusta más que el servicio de GenerateWP. Las pruebas que hemos realizado en SoloWordPress, nos dicen que el archivo wp-config.php generado es bastante completo y nos ofrece la posibilidad de configurar bastantes parámetros.

Este servicio está en inglés, aunque si decides usarlo, lo puedes encontrar en: https://wp-config.pro/.

El archivo wp-config.php predeterminado de WordPress

El archivo wp-config.php recién instalado, tiene ciertos parámetros, pero podemos añadir más parámetros y opciones de configuración. Además, algunos plugins al instalarlos añaden ciertas cosas al archivo wp-config.php.

El archivo wp-config.php predeterminado de WordPress es este:

<?php
/** 
 * Configuración básica de WordPress.
 *
 * Este archivo contiene las siguientes configuraciones: ajustes de MySQL, prefijo de tablas,
 * claves secretas, idioma de WordPress y ABSPATH. Para obtener más información,
 * visita la página del Codex{@link https://codex.wordpress.org/Editing_wp-config.php Editing
 * wp-config.php} . Los ajustes de MySQL te los proporcionará tu proveedor de alojamiento web.
 *
 * This file is used by the wp-config.php creation script during the
 * installation. You don't have to use the web site, you can just copy this file
 * to "wp-config.php" and fill in the values.
 *
 * @package WordPress
 */

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //
/** El nombre de tu base de datos de WordPress */
define('DB_NAME', 'nombredetubasededatos');

/** Tu nombre de usuario de MySQL */
define('DB_USER', 'nombredeusuario');

/** Tu contraseña de MySQL */
define('DB_PASSWORD', 'contraseña');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */
define('DB_HOST', 'localhost');

/** Codificación de caracteres para la base de datos. */
define('DB_CHARSET', 'utf8');

/** Cotejamiento de la base de datos. No lo modifiques si tienes dudas. */
define('DB_COLLATE', '');

/**#@+
 * Claves únicas de autentificación.
 *
 * Define cada clave secreta con una frase aleatoria distinta.
 * Puedes generarlas usando el {@link https://api.wordpress.org/secret-key/1.1/salt/ servicio de claves secretas de WordPress}
 * Puedes cambiar las claves en cualquier momento para invalidar todas las cookies existentes. Esto forzará a todos los usuarios a volver a hacer login.
 *
 * @since 2.6.0
 */
define('AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('NONCE_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('AUTH_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('SECURE_AUTH_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('LOGGED_IN_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('NONCE_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.

/**#@-*/

/**
 * Prefijo de la base de datos de WordPress.
 *
 * Cambia el prefijo si deseas instalar multiples blogs en una sola base de datos.
 * Emplea solo números, letras y guión bajo.
 */
$table_prefix  = 'wp_';


/**
 * Para desarrolladores: modo debug de WordPress.
 *
 * Cambia esto a true para activar la muestra de avisos durante el desarrollo.
 * Se recomienda encarecidamente a los desarrolladores de temas y plugins que usen WP_DEBUG
 * en sus entornos de desarrollo.
 */
define('WP_DEBUG', false);

/* ¡Eso es todo, deja de editar! Feliz blogging */

/** WordPress absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

Ahora, hay que explicar estos parámetros de configuración uno por uno y las opciones que tienen, además de qué tipo de efecto tienen en WordPress.

Configuración de MySQL en WordPress

En el archivo wp-config.php se guardan los 5 parámetros principales que permiten a WordPress conectarse y trabajar con la base de datos (sea MySQL o MariaDB).

Estos parámetros son:

define('DB_NAME', 'nombredetubasededatos');
define('DB_USER', 'nombredeusuario');
define('DB_PASSWORD', 'contraseña');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

La única norma inquebrantable para el 1º, 2º y 4º de los parámetros, es que no pueden contener espacios, sustituye los espacios por guiones (-) o (_) p.e. «mi-nombre» o «mi_nombre».

DB_NAME: Nos permite establecer el nombre de la base de datos.
DB_USER: Nos permite establecer el usuario de conexión a la base de datos.
DB_PASSWORD: Nos permite establecer la contraseña de conexión a la base de datos.
DB_HOST: Nos permite establecer el host o servidor MySQL donde está la DB.
DB_CHARSET: La codificación de caracteres. (Te recomiendo usar «UTF8»).

«DB_COLLATE» requiere una explicación adicional, no por que sea muy difícil de entender, sino porque tiene una categoría distinta.

La propiedad «COLLATE» en una base de datos de tipo «SQL»7, determina el orden de los caracteres. Por ejemplo, si las letras mayúsculas van antes o después que las minúsculas, o las letras con tilde van antes o después.

En algunos idiomas, esto es diferente pero, si estás trabajando en español y tu «DB_CHARSET» es «UTF8», puedes dejar este campo en blanco.

Para los que no queréis complicaciones, todos estos parámetros quedan configurados y guardados automáticamente, en el primer paso del asistente de instalación de WordPress.

Normalmente, solo tocamos estos parámetros de configuración manualmente cuando hacemos una migración de WordPress desde un servidor a otro o algo similar.

Los «SALT» o claves de autentificación

Estas claves (tranquilo, no debes aprenderte nada) son conjuntos aleatorios de caracteres que se utilizan para proteger las sesiones y las cookies en WordPress.

Puedes aprender un poco más sobre los «SALT» en este artículo: Qué son y para qué sirven los SALT.

Si quieres generar las SALT o claves de autentificación secretas puedes utilizar el siguiente generador oficial: https://api.wordpress.org/secret-key/1.1/salt/ (si lo recargas, vas a ver que las claves generadas son diferentes).

Otras claves de seguridad

Estas claves no son obligatorias, pero sí que ayudan bastante con la seguridad de WordPress.

Además de la seguridad que ofrecen los «SALT», WordPress tiene en cuenta otras claves que podemos especificar con las siguientes líneas de código:

define('AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('NONCE_KEY', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('AUTH_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('SECURE_AUTH_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('LOGGED_IN_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.
define('NONCE_SALT', 'pon aquí tu frase aleatoria'); // Cambia esto por tu frase aleatoria.

Estas claves se auto-generan cuando instalamos WordPress y solo tendremos que tocarlas de nuevo introduciendo claves aleatorias en caso de una brecha de seguridad importante.

Configurar el prefijo de la base de datos de WordPress

De forma predeterminada, el prefijo es “wp_” y lo ideal es poner cualquier otro prefijo.

$table_prefix  = 'wp_';

Este prefijo a los nombres de las tablas de la base de datos, es un factor de seguridad adicional. Para mejorar la seguridad de tu sitio web WordPress, es necesario configurar un prefijo de tabla diferente.

En muy pocas ocasiones se puede cambiar el prefijo de la base de datos desde aquí, ya que si lo haces directamente en un WordPress que ya está instalado, fallará todo.

Para cambiar el prefijo de la base de datos en WordPress ya instalados y funcionando, existen varios plugin de seguridad o usa alguno de los citados más arriba.

Activar el modo DEBUG en WordPress

Ya que eres un desarrollador, encontrarás muchas ocasiones en las que requieres que el servidor te envíe mensajes, para depurar errores.

Esto lo consigues fácilmente, cambiando una de las líneas del archivo wp-config.php:

define('WP_DEBUG', false);

Lo que debes hacer es cambiar el valor booleano, de forma que esté «encendido»:

define('WP_DEBUG', true);

Parámetros avanzados del archivo wp-config.php

Hasta ahora hemos hablado sobre parámetros predeterminados del archivo wp-config.php, estos son los que aparecen en cualquier instalación de WordPress.

Existen, sin embargo, otros parámetros que podemos añadir al archivo wp-config.php.

Estos son de distintos tipos, tanto para mejorar el rendimiento como para mejorar la seguridad de WordPress.

Forzar la URL y la HOME del sitio web

Normalmente, los valores de la URL8 y la HOME9, están almacenados en la base de datos, concretamente en la tabla «options».

Sin embargo es posible establecerlos aquí, con mayor prioridad (si se establecen aquí, se ignorará lo establecido en la base de datos).

define( 'WP_HOME', 'https://misitio.xxx' );
define( 'WP_SITEURL', 'https://misitio.xxx' );

o, en el caso de que el WordPress esté en una sub carpeta:

define( 'WP_HOME', 'https://misitio.xxx/blog' );
define( 'WP_SITEURL', 'https://misitio.xxx/blog' );

Si especificamos la URL y la HOME en el archivo wp-config.php, también se bloqueará la configuración de estas opciones en los «Ajustes» -> «Generales» del panel de administración de WordPress.

Normalmente solo se utiliza esta configuración cuando cambiamos el dominio de un sitio web. En condiciones normales no se suele cambiar ni establecer este parámetro.

También se utilizan estas opciones para cambiar de HTTP a HTTPS, ya que las URL especificadas deben llevar el protocolo exacto que vamos a utilizar (HTTP o HTTPS).

Cambiar la localización de WP-CONTENT en WordPress

Esto es una medida de seguridad que muchos plugin recomiendan, así que veamos cómo hacerlo sin necesitar un plugin lleno de otras posibilidades.

En la carpeta WP-CONTENT es donde WordPress guarda la mayoría de los elementos, los plugin, los Temas, las imágenes (las entradas y páginas se guardan en la base de datos).

Con esta línea de código puedes especificar dónde se va a guardar el contenido de WP-CONTENT, o incluso cambiar el nombre de la carpeta.

Es posible especificar la ruta desde el punto de vista del directorio local:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );

Usar la constante dirname(__FILE__) es muy recomendable, porque varía según el servidor p.e. «/www/html/» o «/usr/var/htdocs/html/»

O de la URL del sitio web:

define( 'WP_CONTENT_URL', 'https://misitio.xxx/blog/wp-content' );

Lo recomendable es hacerlo según el punto de vista del directorio local.

Es importante, si quieres ahorrarte dolores de cabeza, cambiar el valor de esta constante SIEMPRE antes de introducir contenido en WordPress. Hay muchos plugins que guardan contenido e información en carpetas dentro de WP-CONTENT

.

Cambiar la localización de la carpeta PLUGINS

Al igual que en el caso del WP-CONTENT, puedes personalizar la localización y el nombre de la carpeta PLUGINS que por defecto se encuentra dentro de WP-CONTENT.

Se puede especificar la ruta de la carpeta plugins con esta línea en el archivo wp-config.php:

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

Al igual que en el caso anterior, también es posible hacerlo con esta línea especificando la URL:

define( 'WP_PLUGIN_URL', 'https://misitio.xxx/blog/wp-content/plugins' );

Esta también puede considerarse como una medida de seguridad, aunque la seguridad por ocultación no sea lo más efectivo.

Cambiar la localización de la carpeta de THEMES

La carpeta que aloja los diferentes Temas, no es una excepción y, al igual que las anteriores, puedes personalizar la localización y el nombre de la carpeta THEMES que por defecto se encuentra dentro de WP-CONTENT.

Para cambiar la localización debes introducir la siguiente línea de código en el archivo wp-config.php:

$theme_root = WP_CONTENT_DIR . '/themes';

Cambiar la localización de la carpeta UPLOADS

Al igual que los anteriores casos, puedes personalizar la localización y el nombre de la carpeta UPLOADS que por defecto se encuentra dentro de la carpeta WP-CONTENT.

En esta carpeta es donde se guarda la galería de medios (imágenes, vídeos, archivos en PDF10 ).

Para cambiar la localización debes introducir la siguiente línea de código en el archivo wp-config.php:

define( 'UPLOADS', 'wp-content/media' );

La línea final

La última línea del archivo wp-config.php, suele ser:

require_once(ABSPATH . 'wp-settings.php');

Al contrario que con muchos guiones («scripts») de PHP, no es necesario indicar el final de archivo como usualmente: «?>».

Modificar el tiempo de auto-guardado del editor de WordPress

Una interesante característica de WordPress, es que el editor (sea el editor clásico o Gutenberg) tienen la facilidad de auto-guardado que se activa por defecto cada 60 segundos.

Esto viene bien si tienes una conexión inestable, ya que si por alguna razón pierdes la conexión con WordPress mientras estás creando una entrada en tu bitácora, como mucho perderás lo que has introducido en los últimos 59 segundos. 😉

Puedes personalizar el periodo de tiempo para realizar auto-guardados en el editor de WordPress con esta línea de código en el archivo wp-config.php:

define( 'AUTOSAVE_INTERVAL', 300);

El intervalo está determinado en segundos, por lo que puedes especificar, por ejemplo, 6 o, 120 para dos minutos o, 600 para diez minutos.

Dos consideraciones importantes:
1ª: Esta funcionalidad de WordPress utiliza código AJAX para realizar la tarea, por lo que se hace uso intensivo del API Heartbeat de WordPress que tantos problemas causa en algunos casos.
2ª: Hay que tener en cuenta que los auto-guardados realmente son revisiones y que estas revisiones se guardan en la base de datos ocupando espacio y haciéndola más grande y lenta.

Desactivar o limitar las revisiones del editor de WordPress

Ya que hablamos de las revisiones, también puedes desactivar o limitar las revisiones que se crean en el editor de WordPress.

Para desactivar por completo el guardado de revisiones creadas por el editor de WordPress, usa la siguiente línea de código en el archivo wp-config.php:

define( 'WP_POST_REVISIONS', false );

Ahora bien, ese valor booleano, podemos cambiarlo a un valor numérico y valdrá para especificar el número máximo de revisiones que se crearán:

define( 'WP_POST_REVISIONS', 3 );

Recuerda que, al desactivar o limitar la creación de revisiones conseguirás evitar problemas por tener bases de datos muy grandes llenas de basura, ya que las revisiones se guardan en la base de datos.

Conclusión

Como puedes ver, el archivo wp-config.php tiene muchas funcionalidades y, aunque no uses todas ellas, es bueno conocerlas.

Esta es la primera parte, permanece atento y te ofreceré la segunda parte … ¡Aún hay más!

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!


  1. Texto Plano es un archivo informático formado exclusivamente por texto (sólo caracteres), sin ningún formato; es decir, no requieren ser interpretados para leerse (aunque pueden ser procesados). 

  2. Personal Home Page (nombre original del lenguaje de programación de servidores)  

  3. Random Access Memory – Memoria de Acceso Aleatorio 

  4. Extensión del nombre de un archivo comprimido con la tecnología PKzip. 

  5. File Transfer Protocol – Protocolo de Transmisión de Archivos 

  6. WP-Cron es la herramienta usada por WordPress mara manejar la agenda de tareas. 

  7. Structured Query Language – Lenguaje de Búsqueda Estructurado 

  8. Uniform Resource Locator – Localizador de Recursos Uniforme es un identificador de recursos uniforme (URI) cuyos recursos referidos pueden cambiar, esto es, la dirección puede apuntar a recursos variables en el tiempo. Están formados por una secuencia de caracteres de acuerdo con un formato modélico y estándar que designa recursos en una red como, por ejemplo, Internet. 

  9. Página de inicio 

  10. Portable Document Format- Formato de Documento Portable 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

3 × uno =

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.    Más información
Privacidad