WordPress, como muchos otros gestores de contenidos dinámicos, necesita almacenar determinadas configuraciones en un archivo de texto plano, normalmente interpretable por el servidor web (Apache o el que se utilice) y pasarle directivas por medio de #define para que el CMS pueda funcionar de forma correcta.
Estas informaciones se almacenan en un archivo que conviene saber gestionar, por eso te hablo de WP-Config.php, qué es y para qué sirve y así entiendas su importancia en el caso de WordPress.
También es importante no revelar información delicada que pueda comprometer una instalación de WordPress, por lo que es necesario establecer todas las medidas perimetrales activas y pasivas encaminadas a garantizar la seguridad de la web.
En consecuencia, proteger el archivo wp-config.php de WordPress es una forma de reforzar la seguridad del CMS, pues el archivo wp-config.php contiene información algo sensible sobre tu instalación de WordPress, como las claves de seguridad de WordPress y la bases de datos de WordPress, así como los detalles de la conexión a la misma.
Proteger este archivo es una tarea, que aunque puede parecer compleja desde el lado teórico, en la práctica es algo sencillo de realizar, permitiendo asegurar información menor, pero importante, que evite asedios a una instalación de WordPress para comprometerla.
Cuando finalices la lectura de este artículo deberías saber:
- Qué es y para qué se utiliza el archivo wp-config.php en tu web.
- Dónde se localiza el archivo wp-config.php en una instalación de WordPress.
- Cómo se edita el archivo wp-config.php para añadir o cambiar contenido.
- De qué partes consta el archivo wp-config.php para organizar mejor la información.
- Cómo proteger el archivo de configuraciones.
Ahora, ¡vayamos a la aventura de indagarlo a fondo! 🤗
Tabla de contenidos
Qué es el archivo wp-config.php
Como te decía en la introducción, wp-config.php es un archivo de configuración de WordPress que contiene información importante acerca de la conexión a la base de datos y otras opciones de configuración.
Se trata de un fichero esencial para el funcionamiento de un sitio de WordPress y se encuentra en la raíz de la instalación de WordPress. Si tienes varias instalaciones de WordPress en un mismo Hosting, en cada carpeta principal de una instalación habrá un archivo wp-config.php con los define y datos de conexión de la base de datos correspondientes a esa instalación.
Este archivo almacena una serie de datos estáticos:
- Nombre de la base de datos.
- Nombre de usuario de la base de datos.
- Contraseña del usuario de la base de datos.
- Servidor de la base de datos.
- Prefijo de las tablas de la base de datos.
- Configuración de la memoria caché.
- Configuración de las depuraciones.
- Autenticación única (salts).
- Cambio de la ubicación de la carpeta wp-content (opcional).
- Activación y desactivación de funciones específicas.
Ten en cuenta que se trata de un archivo sensible y debe ser protegido adecuadamente, ya que contiene información confidencial sobre la base de datos de un sitio de WordPress, pero eso lo veremos un poco más adelante. 😉
Para qué sirve el archivo wp-config.php
Como archivo de configuraciones para WordPress que es, sirve para especificar parámetros que en formato #define pueden recibir parámetros del servidor web para ajustar el funcionamiento con base en la versión de PHP, rutas u otros, además de información de conexión entre la web y la base de datos.
Los datos de configuración asociados a este archivo son:
- Datos de conexión a la base de datos: El archivo almacena los datos de conexión a la base de datos, como el nombre de la base de datos, el nombre de usuario y la contraseña para acceder a ella, y el servidor (host) en el que se encuentra alojada la web.
- Configuraciones de seguridad: En wp-config.php también incluye configuraciones de seguridad, como las de autenticación única (salts), que mejoran la seguridad de la información almacenada en la base de datos.
- Configuración de desarrollo: Los desarrolladores pueden habilitar o deshabilitar diferentes funciones de depuración y activar o desactivar modos de depuración para ayudar a identificar y solucionar problemas en un sitio de WordPress en este archivo.
- Configuración de rendimiento: Se pueden añadir configuraciones de rendimiento, como la memoria caché, para mejorar el rendimiento de un sitio de WordPress.
Se trata de un archivo fundamental para el funcionamiento de una web creada con WordPress, ya que controla la configuración de la conexión a la base de datos y otros aspectos que dotan de funcionalidades permanentes o puntuales (modo depuración) a la web.
Dónde está el archivo wp-config.php
Cuando instalas WordPress puedes hacerlo de varias formas con respecto a las rutas del alojamiento:
- En la carpeta principal del Hosting: /public_html
- En una carpeta que cuelgue de la carpeta principal: /public_html/wordpress
- Dentro de una carpeta, como subdominio, dependiente de otra carpeta de un dominio principal: /public_html/wordpress/otro-wordpress
Lo normal es que o bien la instalación la tengas en la carpeta principal public_html o en una carpeta secundaria, posiblemente asociada a un dominio adicional, donde tengas una web completa de WordPress.
En el proceso de instalación de WordPress, al extraer los archivos del fichero ZIP descargado, uno de los archivos existentes es wp-config.php que contiene parte de la información que luego utiliza para la nueva instalación y la otra parte la completa cuando en el proceso de instalación, introduces los datos de la base de datos, contraseña, etc., añadiendo los mismos mediante definiciones, es decir, usando #defines que pasan los parámetros siguientes:
- define( ‘DB_NAME‘, ‘XXXXXXXXXXXXXX‘ );
- define( ‘DB_USER‘, ‘XXXXXXXXXXXXXX‘ );
- define( ‘DB_PASSWORD‘, ‘XXXXXXXXXXXXXX‘ );
- define( ‘DB_HOST‘, ‘localhost’ );
- define( ‘DB_CHARSET‘, ‘utf8’ );
Entonces, sobre la base de lo explicado, es fácil deducir en que rutas o carpetas se puede encontrar el archivo de configuraciones de WordPress:
- En la carpeta principal del Hosting: /public_html/wp-config.php
- En una carpeta que cuelgue de la carpeta principal: /public_html/wordpress/wp-config.php
- Dentro de una carpeta, como subdominio, dependiente de otra carpeta de un dominio principal: /public_html/wordpress/otro-wordpress/wp-config.php
Como ves, localizar el archivo es super fácil y no entraña misterios. 😊
Cómo editar el archivo wp-config.php
Hay 2 maneras lógicas de editar el archivo wp-config.php para hacer cambios o añadidos de código o definiciones, siendo la más común el uso del Administrador de Archivos del Panel de Alojamiento Web, porque permite la edición del archivo respetando su codificación y permisos del fichero.
Puntualmente, algunos usuarios pueden preferir hacer uso del un cliente de FTP para conectarse al servidor, a la carpeta de la instalación de WordPress y localizar el citado archivo, descargarlo al ordenador y editarlo en local (el ordenador) y luego volver a subirlo al Hosting, algo bastante más laborioso, pues no es posible editar directamente en remoto por FTP.
No obstante, ambos métodos son válidos si se realizan de la forma correcta, si bien que no revisten complicación alguna. Es importante hacer una copia de seguridad del archivo en cuestión antes de editarlo y manipularlo, por si acaso.
Cómo editar este archivo por FTP:
- Accede a tu servidor web a través de FTP usando FileZilla o la aplicación de tu preferencia.
- Encuentra el archivo wp-config.php en la raíz de tu instalación de WordPress.
- Descarga una copia de seguridad del archivo en tu ordenador.
- Descarga otra vez el archivo sobre el que vas a trabajar editándolo.
- Abre el archivo en tu ordenador, con un editor de texto plano y edita las líneas necesarias.
- Guarda los cambios en el fichero y súbelo por FTP a tu servidor web, sobreescribiendo el archivo anterior.
Con estos pasos deberías haber modificado el archivo de configuraciones de WordPress mediante un cliente de FTP sin mayores contratiempos.
Cómo editar el archivo de configuraciones desde tu Panel de Hosting:
- Accede al panel de control de tu hosting.
- Abre el Administrador de Archivos de tu alojamiento.
- Ve a la carpeta raíz de tu instalación de WordPress donde se encuentra el archivo wp-config.php a editar.
- Descarga una copia de seguridad del archivo en tu ordenador.
- Ahora abre el archivo con el editor de código del Filemanager y haz los cambios que requieras en el archivo.
- Guarda los cambios sobreescribiendo el archivo.
Este método es el más recomendable, porque es rápido y más eficiente con respecto al anterior método.
Si por ejemplo quieres cambiar el prefijo de las tablas en tu base de datos, busca la línea que dice:
$table_prefix = 'wp_';
Cambia el valor wp_ por el nuevo prefijo que deseas y guarda los cambios.
$table_prefix = 'wp23_';
Es importante destacar que debes tener cuidado al editar este archivo, ya que una pequeña modificación incorrecta puede hacer que tu sitio web deje de funcionar. Es por ello que hacer una copia de seguridad antes de realizar cualquier cambio evitar que luego tengas que invertir más tiempo en solucionarlo.
Secciones del archivo wp-config.php
Cuando editas el archivo wp-config.php es posible que te dé la sensación de que todo está añadido de manera aleatoria o según se le ha ido ocurriendo al desarrollador, pero nada más lejos de la realidad. Este archivo sigue un orden y todo cuenta, hasta los espacios.
Si añades muchas áreas de espacios en el archivo estarás haciendo trabajar más al servidor web para rastrear el archivo e interpretar los parámetros o #defines y eso es tiempo de ejecución y desperdicio de recursos, aunque sean pocos.
El archivo está dividido en varias zonas donde se declaran definiciones de constantes que luego serán necesarias para por ejemplo determinar que ruta o URL es la permanente para el sitio, qué datos son los correctos para conectar WordPress con su base de datos, cuál es el prefijo de la base de datos o si por ejemplo tienes activado el modo de depuración o debug de WordPress, entre otros.
Te explico de qué secciones está compuesto el archivo:
- Definiciones de constantes: Esta sección incluye constantes que definen la ruta de acceso a la raíz del sitio y a los archivos, así como la dirección URL y otros detalles importantes.
Ejemplo:
define( 'WP_SITEURL', 'https://dominio.com/wp' );
define( 'WP_HOME', 'https://dominio.com' );
Ejemplo:
define( 'DB_NAME', 'wordpress_XwXpWHuB' );
define( 'DB_USER', 'wordpress_XwXpWHuB' );
define( 'DB_PASSWORD', 'mMRSi8Vz9FvLbS4Q' );
define( 'DB_HOST', 'localhost' );
Ejemplo:
define('AUTH_KEY', '[x!*xJ&Kf@-}:<Y!@VFqcyC4XSIa]LWD].|xv|G_Xg! >F+;i:H(Z[|pTM-_o{6T');
define('SECURE_AUTH_KEY', '@g84NFqDUU[l[6%g-kpPp<P]pzc#o3uA<J4|9_-S0+d71[/*ep)xxlI:V$T#nhd<');
define('LOGGED_IN_KEY', 'w#hvLT6o):^_7PZ<XxV>}JLotx,sC[<U 79@_B}/&7YiLwT[+mny #GHJ7`Dd]t|');
define('NONCE_KEY', 'EcKMP*arbKmadeH,3-txK:m46PL`Er[ q U0Rm>G5x=Y0v@)p_$ c5uW=D8ntM->');
define('AUTH_SALT', '<!-MKu.3q%]xJA_R&b}s$*,|Vy<}MYu]@wc3TWFYwxl(&Y9{},Do7!Xj!>.`+S@!');
define('SECURE_AUTH_SALT', 'nhSABm0Z6%tww^Z]zQT6iG0qEc@H_ADcwkXfN@%F4Uk8J&JxUO,E:>*.Ht54T;)&');
define('LOGGED_IN_SALT', 'eDE,Qq%;Iq4S{u<dxg88kh2&4Ih/th+s*0pfEZEZV2KD:j%1%]FVN(mUMFa2/vn{');
define('NONCE_SALT', '#*LW,l+Yx5;3Bl8U|%_:pevrhH&4Zx%52kjW<{&sHxh-A|+I,Biu1[}0$?@u:j!p');
Estas son algunas de las secciones más importantes del archivo wp-config.php. Hay muchas otras opciones y configuraciones disponibles que se pueden añadir según las necesidades de tu sitio web.
(1). Puedes utilizar este generador de Salts en línea para crear los tuyos si no los tienes añadidos en el archivo de configuraciones de WordPress. Cada vez que accedes a este enlace verás que se genera un lote de claves único y diferente, que lo copias y pegas en sustitución del tuyo.
Cómo proteger el archivo wp-config.php desde .htaccess
Es la solución más rápida, fácil de aplicar y efectiva. Para llevarla a cabo puedes seguir estos pasos:
- Accede vía FTP o desde el Administrador de Archivos de tu panel de Hosting a tu sitio web y descarga (FTP) o edita el archivo oculto .htaccess (Si lo haces por FTP, si puedes usa mejor SFTP para cifrar la comunicación entre el ordenador y el servidor).
- Con un editor de texto como el Bloc de notas, abre el archivo .htaccess, o desde el Editor de Código del Administrador de Archivos de tu Panel de Hosting edítalo.
- Pega el siguiente código en tu archivo .htaccess para denegar el acceso al archivo wp-config.php, (añádelo al final del archivo):
# proteger wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Una vez que hayas realizado los cambios (por FTP) al archivo .htaccess puedes volver a subirlo de nuevo a la raíz de tu sitio web para sobrescribir el antiguo. Si utilizaste el Editor de Código del Administrador de Archivos de tu panel de hosting, simplemente haz clic en Guardar.
Aumentar la seguridad de este archivo es posible y aquí te comento algunas formas de hacerlo:
- Mover el archivo wp-config.php de tu web a una ubicación fuera del directorio principal, de manera que sea más difícil para los atacantes acceder a él.
- Proteger el archivo con una contraseña de acceso mediante el uso del archivo .htaccess.
- Cambiar el nombre del archivo wp-config.php para hacer que sea más difícil de encontrar. Ten en cuenta que esto requerirá una modificación en el código de tu sitio web para que se pueda encontrar y utilizar el nuevo archivo de configuración. (Solo recomendable a expertos).
En cualquier caso, es importante asegurarte de que siga funcionando tu sitio web después de realizar cualquier cambio en el archivo de configuraciones de WordPress y hacer un backup del mismo siempre antes de realizar cualquier cambio.
Elimina la información sensible de wp-config.php
Crear un nuevo archivo de configuraciones de WordPress y alojarlo fuera de la carpeta de uso es una medida recomendada que no reviste mucha complicación y asegura más los datos sensibles.
Ya sea vía FTP o desde el Administrador de Archivos del panel de hosting puedes crear un nuevo archivo llamado config.php.
Este archivo lo ideal es crearlo en un directorio accesible, por ejemplo, si tu blog o contenido web se encuentra en /home/tu_usuario/public_html/, puedes crear el archivo config.php en /home/tu_usuario/ para que el archivo no pueda ser accesible por tus visitantes.
Lo normal es que sea en un directorio anterior a public_html o www (directorio simbólico de /public_html).
Abre el archivo wp-config.php existente y copia las líneas que contienen los detalles de la conexión de base de datos, el prefijo de la base de datos y también las claves de seguridad de WordPress desde el archivo wp-config.php al nuevo archivo config.php.
No olvides añadir <?php al comienzo del nuevo archivo config.php y ?> al final del archivo.
<?php define('DB_NAME', 'tu_base_de_datos'); // nombre de la base de datos.
define('DB_USER', 'tu_usuario_de_base_de_datos'); // nombre del usuario de la base de datos.
define('DB_PASSWORD', 'contraseña_base_datosDB_pass'); // contraseña de la base de datos.
define('DB_HOST', 'localhost'); // Host MySQL
// The WordPress Security Keys - Las claves de seguridad de WordPress
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.
// The WordPress database table prefix - Prefijos de las tablas de la base de datos
$table_prefix = 'wp_'; // solo números, letras y guión bajo al final. ?>
Modifica el archivo wp-config.php
Después de eliminar todos los datos sensibles del archivo wp-config.php, ahora solo tienes que añadir la siguiente línea recta después de <?php en el archivo include(‘/home/tu_usuario/config.php’);. Por lo que las dos primeras líneas de tu archivo wp-config.php deben tener este aspecto:
<?php include('/home/tu_usuario/config.php');
Con este cambio, en lugar de tener toda la información sensible almacenada en el archivo wp-config.php, el citado archivo estará leyendo esta información desde un lugar diferente, donde la información a proteger se encuentra alojada en el archivo config.php.
Ten en cuenta que la ruta /home/tu_usuario/ varía de un servidor web a otro, por lo que si no estás segur@ de cuál es la ruta absoluta de tu sitio web, y eres cliente de Hosting WordPress de Webempresa, accede al Foro para Clientes y realiza tu consulta ¡estaremos encantados de ayudarte y trataremos de responder a todas las preguntas de WordPress que puedas tener!.
Conclusiones
Como has podido leer a lo largo de este artículo, el archivo wp-config.php es uno de los archivos más importantes en una instalación de WordPress, ya que contiene la información de configuración básica del sitio.
Este archivo es responsable de la gestión de la conexión a la base de datos, la definición de las claves secretas de seguridad, la habilitación o deshabilitación del modo de depuración de errores, entre otras cosas.
Algunos de los datos gestionados por el archivo wp-config.php son:
- Nombre de usuario y contraseña de la base de datos.
- Nombre de la base de datos.
- Dirección del servidor de la base de datos (host).
- Claves secretas de seguridad (Salts).
- Prefijo de las tablas de la base de datos.
- Modo de depuración o debug.
- Configuración de la zona horaria (no en todos los servidores).
Se trata, pues, de una pieza crucial de la arquitectura de WordPress, que contiene información esencial para el correcto funcionamiento de tu web. Es importante proteger este archivo para garantizar la seguridad de tu WordPress.
¿Te ha resultado útil este artículo?
Miembro del equipo de soporte técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Soporte técnico en CiberProtector. Teacher en Webempresa University