blog webempresa

wp-config.php en WordPress, Guía completa

por | Abr 19, 2023 | Tutoriales WordPress Avanzados

wp-config.php en WordPress, Guía completa

Cuando realizamos una instalación de WordPress, independientemente del método que utilicemos, siempre se va a generar un archivo, el cual contiene configuraciones vitales para el correcto funcionamiento del sitio web, el archivo al que nos referimos es wp-config.php en WordPress.

A continuación revisaremos a profundidad la estructura del archivo, comprender su estructura y como podemos aplicar ajustes útiles según sea el caso.

 ¿Que es wp-config.php en WordPress?


wp-config-01

El archivo wp-config.php contiene información crítica sobre la conexión a la base de datos de WordPress, las credenciales de acceso y otras configuraciones importantes de un sitio web.

Como bien sabemos, el archivo es generado durante la instalación de WordPress y podemos encontrarlo en la raíz del directorio de WordPress. Existe la posibilidad que sea requerido editarlo en ciertas situaciones, como al cambiar las credenciales de acceso a la base de datos, cambiar el prefijo de la tabla de la base de datos, habilitar la depuración o cambiar la clave de seguridad secreta.

También incluye algunas otras configuraciones relevantes, como la configuración de memoria PHP, la definición de la URL de WordPress, la activación de la compatibilidad con SSL y la configuración de los permisos del archivo.

Estas configuraciones y más vamos a repasarlas a lo largo del artículo.

 Archivo wp-config de base en WordPress


El aspecto base del archivo wp-config.php de WordPress al ser creado es el siguiente:

<?php
// Configuración de acceso a la base de datos
define( 'DB_NAME', 'nombre_de_la_base_de_datos' );
define( 'DB_USER', 'nombre_de_usuario_de_la_base_de_datos' );
define( 'DB_PASSWORD', 'contraseña_de_la_base_de_datos' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

// Configuración de las llaves y el salt de seguridad
define( 'AUTH_KEY',         'pon_aquí_tu_clave_única' );
define( 'SECURE_AUTH_KEY',  'pon_aquí_tu_clave_única' );
define( 'LOGGED_IN_KEY',    'pon_aquí_tu_clave_única' );
define( 'NONCE_KEY',        'pon_aquí_tu_clave_única' );
define( 'AUTH_SALT',        'pon_aquí_tu_clave_única' );
define( 'SECURE_AUTH_SALT', 'pon_aquí_tu_clave_única' );
define( 'LOGGED_IN_SALT',   'pon_aquí_tu_clave_única' );
define( 'NONCE_SALT',       'pon_aquí_tu_clave_única' );

// Prefijo de la tabla de la base de datos
$table_prefix = 'wp_';

// Configuración de la URL del sitio web
define( 'WP_HOME', 'http://ejemplo.com' );
define( 'WP_SITEURL', 'http://ejemplo.com/wp' );

// Habilitar la depuración de errores de WordPress
define( 'WP_DEBUG', false );

// Otras configuraciones
define( 'FS_METHOD', 'direct' );
define( 'WP_AUTO_UPDATE_CORE', false );

// Llamada a los archivos de WordPress
require_once(ABSPATH . 'wp-settings.php');

Debemos tener en cuenta que, aunque este archivo contiene algunas configuraciones básicas, las mismas pueden variar según con el método utilizado para instalar WordPress.

 Describir el archivo wp-config.php


Considerando que ya conocemos la estructura base del archivo wp-config.php vamos a dividirlo por bloques de código comentado y explicar para qué funciona cada fragmento de código.

En el siguiente bloque, se establecen las constantes que definen el nombre de la base de datos, el nombre de usuario, la contraseña y la dirección del host de la base de datos. También se establecen las constantes de DB_CHARSET y DB_COLLATE, que definen el conjunto de caracteres y la colación de la base de datos.

// Configuración de acceso a la base de datos
define( 'DB_NAME', 'nombre_de_la_base_de_datos' );
define( 'DB_USER', 'nombre_de_usuario_de_la_base_de_datos' );
define( 'DB_PASSWORD', 'contraseña_de_la_base_de_datos' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

En el siguiente bloque se establece las constantes de las claves y el salt de seguridad. Estas claves y salts son únicas para cada instalación de WordPress y se utilizan para proteger la información confidencial almacenada en la base de datos de WordPress.

// Configuración de las llaves y el salt de seguridad
define( 'AUTH_KEY',         'pon_aquí_tu_clave_única' );
define( 'SECURE_AUTH_KEY',  'pon_aquí_tu_clave_única' );
define( 'LOGGED_IN_KEY',    'pon_aquí_tu_clave_única' );
define( 'NONCE_KEY',        'pon_aquí_tu_clave_única' );
define( 'AUTH_SALT',        'pon_aquí_tu_clave_única' );
define( 'SECURE_AUTH_SALT', 'pon_aquí_tu_clave_única' );
define( 'LOGGED_IN_SALT',   'pon_aquí_tu_clave_única' );
define( 'NONCE_SALT',       'pon_aquí_tu_clave_única' );

En el siguiente bloque, se establece el prefijo de la tabla de la base de datos. Por defecto, el prefijo de la tabla es “wp_”, pero se puede cambiar a cualquier otro valor para aumentar la seguridad.

// Prefijo de la tabla de la base de datos
$table_prefix = 'wp_';

En el siguiente bloque se determinan las constantes de la URL del sitio web. WP_HOME define la URL principal del sitio web y WP_SITEURL define la URL del directorio de instalación de WordPress.

// Configuración de la URL del sitio web
define( 'WP_HOME', 'http://ejemplo.com' );
define( 'WP_SITEURL', 'http://ejemplo.com/wp' );

En el siguiente bloque es posible desactivar o activar el modo debug en WordPress. Si WP_DEBUG está establecido en ¨true¨, se mostrarán mensajes de error detallados en la pantalla. Se recomienda establecer WP_DEBUG en ¨false¨ en un sitio web en producción para mejorar la seguridad y evitar la exposición de información confidencial.

// Habilitar la depuración de errores de WordPress
define( 'WP_DEBUG', false );

En el siguiente bloque se definen algunas configuraciones adicionales, como el método de acceso al sistema de archivos (FS_METHOD) y si se deben actualizar automáticamente las actualizaciones principales de WordPress (WP_AUTO_UPDATE_CORE).

FS_METHOD establece el método directo de acceso al sistema de archivos para evitar problemas de permisos en algunos servidores y WP_AUTO_UPDATE_CORE se establece en false para evitar que WordPress se actualice automáticamente a nuevas versiones principales.

// Otras configuraciones
define( 'FS_METHOD', 'direct' );
define( 'WP_AUTO_UPDATE_CORE', false );

 Ediciones concretas en wp-config.php en WordPress


Existen una gran variedad de códigos que pueden definirse en el archivo wp-config.php, todos ellos cumplen con un propósito concreto y deben ser implementados solo cuando el caso lo amerite.

Vamos a mostrar varios casos, los cuales pueden ser los más comunes, de igual manera si deseas conocer a más detalle todo lo que puede abarcar el archivo wp-config.php en WordPress no hay mejor referencia que la documentación oficial.

wp-config-02-2

(Visita el sitio de referencia haciendo clic en la imagen ↑)

 ¿Como Mover rutas de archivos en wp-config.php en WordPress?


wp-config-02

Considerando la estructura general de archivos y carpetas en WordPress, si deseamos mover el directorio de contenido personalizado de WordPress a una ubicación diferente en el servidor o bien se desea tener múltiples sitios WordPress que compartan el mismo directorio de contenido personalizado, podemos utilizar la siguiente línea de código.

Al establecer esta constante podemos asegurar de que WordPress siempre use la ruta correcta al directorio de contenido personalizado, independientemente de la ubicación del sitio en el servidor.

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

También existe una variante en la cual en lugar de utilizar la ruta desde la perspectiva del directorio del servidor podemos aplicarlo por medio de una URL absoluta.

define( 'WP_CONTENT_URL', 'http://ejemplo.com/site/wp-content' );

Por otra parte, podemos utilizar otra variacion de las líneas de código antes vistas si lo que queremos es mover el directorio de plugins de WordPress a una ubicación diferente en el servidor o cuando se desea tener múltiples sitios WordPress que compartan el mismo directorio de plugins.

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/wp-content/directorio-nuevo/plugins' );
define( 'WP_PLUGIN_URL', 'http://ejemplo.com/wp-content/directorio-nuevo/plugins' );

El directorio de “uploads” o la ruta upload path en WordPress es donde se almacenan los archivos multimedia que se cargan en el sitio web, los cuales pueden ser imágenes, videos y audio. Mediante a la siguiente línea de código podemos definir cuál será la nueva ubicacion del directorio donde se cargaran todos estos medios.

define( 'UPLOADS', 'wp-content/directorio-nuevo/uploads' );

Definir esta línea de código puede ser de utilidad cuando deseamos cambiar la ubicación del directorio de subida de WordPress a una ubicación diferente en el servidor o cuando se desea tener múltiples sitios que compartan el mismo directorio que soporta la biblioteca multimedia de WordPress.

 ¿Como aumentar las capacidades del modo depuración en wp-config.php en WordPress?


Si bien en la estructura base del archivo wp-config.php por medio del código ya existente podemos habilitar o deshabilitar el modo depuración, podemos agregar características a este modo, las cuales dependiendo del caso pueden ser de gran utilidad.

Las siguientes líneas de código establecen la configuración de depuración de WordPress para mostrar mensajes de error y advertencia en el archivo de registro en lugar de mostrarlos en la pantalla y para deshabilitar la visualización de errores en el servidor. Su uso nos puede ayudar a solucionar problemas en el código del sitio web sin hacer los errores visibles ni revelar información confidencial a los visitantes.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Por otra parte, la siguiente línea de código es en especial útil durante el proceso de desarrollo del sitio web, ya que nos permite visualizar el código fuente en su totalidad de todos los scripts que componen el núcleo de WordPress, permitiéndonos realizar un análisis y depuración más precisa del código de dicho archivo.

define( 'SCRIPT_DEBUG', true );

Sin embargo, bajo un ambiente de producción, es recomendable establecer dicho código en “false” para que WordPress cargue la versión minimizada de los archivos de scripts, lo que va a contribuir a reducir el tiempo de carga de la página y mejorar la experiencia del usuario.

Debemos considerad que esta línea de código solo afecta a los archivos de scripts que componen WordPress, lo que significa que los temas y plugins instalados en el sitio web deben ser depurados y revisados por separado.

 Activar modo multisitio en WordPress


La funcionalidad de multisitio permite a los administradores de un sitio web crear y gestionar varios sitios web desde una única instalación de WordPress. Esta característica es realmente práctica para aquellos que desean administrar varios sitios web desde una única interfaz, lo que simplifica la gestión y actualización de los sitios.

Mediante la siguiente línea de código podemos habilitar la funcionalidad de multisitio en WordPress.

define( 'WP_ALLOW_MULTISITE', true );

 Gestionar opciones de contenido


wp-config-03

Cuando nos encontramos editando un contenido en concreto en WordPress, el sistema de forma automática guarda una revisión del contenido en segundo plano para evitar la pérdida de datos en caso de que el navegador se cierre inesperadamente o haya algún problema con la conexión de Internet. El intervalo de tiempo en segundos en el que se guarda dicha revisión se establece mediante la constante AUTOSAVE_INTERVAL.

La siguiente línea de código nos permite establecer un intervalo de guardado automático personalizado, el cual nos puede ayudar a modificar el tiempo en el que se guardan estas revisiones y así evitar la pérdida de datos en caso de problemas técnicos o errores humanos al guardar manualmente.

define( 'AUTOSAVE_INTERVAL', 160 );

Cuando nos encontramos editando una publicación o una página en WordPress, el sistema guarda automáticamente una revisión del contenido original para que podamos volver a versiones anteriores de ser necesario. Esta funcionalidad puede ser útil dependiendo del caso, pero también puede consumir espacio en la base de datos y aumentar la carga del servidor.

Por medio de la siguiente línea de código podemos desactivar por completo las revisiones que hace WordPress por defecto, tanto las automáticas como las versiones anteriores que se generan al actualizar el contenido.

define( 'WP_POST_REVISIONS', false );

Si en lugar de desactivar por completo las revisiones automáticas que realiza WordPress, ya que puede parecer un ajuste muy drástico podemos en su lugar definir una cantidad limitada de revisiones que van a ser aplicadas, por ejemplo:

define( 'WP_POST_REVISIONS', 10 );

Cuando eliminamos un elemento en WordPress, dicho elemento se mueve a la papelera de reciclaje, donde puede recuperado en caso de que se haya eliminado por error. Por defecto, WordPress mantiene los elementos en la papelera de reciclaje durante 30 días antes de ser eliminados por completo

Si queremos establecer el número de días que se deben mantener los elementos eliminados en la papelera de reciclaje de WordPress antes de que se eliminen permanentemente, podemos implementar la siguiente línea de código.

define( 'EMPTY_TRASH_DAYS', 10 );

 Gestionar tamaños de memoria


En WordPress, la cantidad de memoria asignada a PHP por defecto está establecida a 40 megabytes (MB). Lo que puede resultar insuficiente para sitios web con un alto tráfico o con un gran número de plugins y temas instalados.

Si deseamos aumentar el límite de memoria disponible para PHP en WordPress, podemos implementar la siguiente línea de código.

Su uso puede mejorar el rendimiento del sitio web en situaciones en las que la cantidad de memoria es insuficiente para ejecutar procesos en WordPress.

define( 'WP_MEMORY_LIMIT', '128M' );

Por otro lado, en WordPress, el límite máximo de memoria disponible para PHP se establece por defecto en 256 megabytes (MB).

Para establecer el límite máximo de memoria disponible para PHP en WordPress podemos incluir la siguiente línea de código.

define( 'WP_MAX_MEMORY_LIMIT', '256M' );

 Gestionar actualizaciones automáticas


wp-config-04

WordPress está configurado para estar en constante búsqueda de actualizaciones, las cuales por lo general se aplican de forma automática por temas de seguridad y correcciones de errores. Sin embargo, en algunos casos, nosotros como administradores del sitio podemos preferir desactivar esta función para tener un mayor control sobre el proceso de actualización y evitar posibles conflictos o errores en el sitio web.

Para desactivar las actualizaciones automáticas podemos implementar la siguiente linea de codigo:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

También podríamos desactivar todas las actualizaciones automáticas del núcleo de WordPress, incluyendo las actualizaciones menores y mayores.

# Desactivar actualizaciones del núcleo de WordPress:
define( 'WP_AUTO_UPDATE_CORE', false );

Si queremos es todo lo contrario y habilitar todas las actualizaciones automáticas del núcleo de WordPress, incluyendo las actualizaciones menores y mayores sin necesidad de intervención manual, podemos implementar el siguiente codigo:

# Activar actualizaciones menores y mayores del núcleo de WordPress:
define( 'WP_AUTO_UPDATE_CORE', true );

 Aplicar opciones de seguridad


wp-config-05

En WordPress cualquier usuario con permisos de administrador puede editar archivos de código, como el archivo functions.php o el archivo wp-config.php, directamente desde el panel de administración a través de la sección de “Editor de Temas” o “Editor de Plugins”. Sin embargo, esto puede ser considerado un riesgo de seguridad si un usuario malintencionado obtiene acceso al panel de administración.

wp-config-06
Para deshabilitar la edición de archivos de WordPress a través del editor de código en el panel de administración podemos implementar la siguiente línea de código:

define( 'DISALLOW_FILE_EDIT', true );

Por otra parte, si tenemos un certificado de seguridad y necesitamos forzar la conexión segura SSL en el panel de administración de WordPress, podemos implementar la siguiente línea de código:

define( 'FORCE_SSL_ADMIN', true );

Desde nuestro sitio web en WordPress se realizan múltiples solicitudes por medio de HTTP, es posible por medio de una línea de código el bloquear todas las solicitudes HTTP externas que intenten hacer los complementos, temas o cualquier código personalizado que viva en nuestro sitio.

define( ‘WP_HTTP_BLOCK_EXTERNAL’, true );

Su contraparte sería el permitir solicitudes HTTP externas solo a los hosts especificados en una lista separada por comas (,) Lo cual nos permite restringir las solicitudes HTTP a ciertos hosts que sean de confianza y evitar la realización de solicitudes no deseadas.

define( 'WP_ACCESSIBLE_HOSTS', 'ejemplo.com,*.otroejemplo.com' );

 Conclusión


El archivo wp-config.php es sin duda un aspecto vital en la instalación de WordPress, ya que se utiliza para múltiples funciones, entre ellas una de las más importantes, la cual es establecer la comunicación con la base de datos, sin este puente no existiría un punto de partida para el inicio de la creación de nuestro sitio web.

Hemos podido apreciar su importancia, comprender su estructura base y como podemos modificarlo de una forma muy simple y aun así solo con implementar unas líneas de código es posible ejecutar acciones que pueden ser determinantes a como se va desarrollando el comportamiento de nuestro sitio en general.

Debe ser modificado solo de ser necesario o si ya tenemos en cuenta lo que deseamos incluir y cuál sería la consecuencia a cara del sitio, pero no sin antes haber realizado una copia de seguridad de WordPress por cualquier eventualidad.

Tambien te puede interesar:

¿Te ha resultado útil este artículo?

Promo abril