wp-config.php: Todo lo que querías saber y mucho más

Índice de contenidos

El archivo wp-config.php  es uno de los más importantes de cualquier instalación de WordPress, de hecho es el archivo de configuración de WordPress, con información sensible e importante que hará que tu sitio funcione correctamente o incluso que no funcione en absoluto.

Es por ello que es de vital importancia conocerlo en profundidad, y eso es lo que quiero que aprendamos hoy ¿te animas?

El archivo wp-config.php por defecto

En cualquier instalación de WordPress existe un archivo de configuración por defecto, denominado wp-config-sample.php, que contiene las secciones fundamentales de todo archivo wp-config.php , estas:

Algo fundamental de este archivo es que las constantes (define) y las instrucciones PHP vienen en un orden determinado que no puede/debe cambiarse así que si añades algo no interfieras en el orden del archivo por defecto.

El lugar adecuado para añadir más constantes y funciones sería justo antes de la línea siguiente:

Y, por supuesto, tampoco añadas ni modifiques nada por debajo de esa línea, que para eso está el aviso.

A continuación iremos repasando cada sección del archivo.

Cómo se edita el archivo wp-config.php

El archivo wp-config.php se puede editar de dos modos fundamentalmente:

  1. Automáticamente: Ejecutando la instalación de WordPress, en cuyo caso el mismo proceso nos irá pidiendo la información necesaria para completarlo y lo creará.
  2. Manualmente: Editando el archivo wp-config-sample.php  (o haciendo una copia) con tu editor de código favorito o desde el editor de código de cPanel, y sustituyendo los datos por defecto por los de conexión con nuestra base de datos y prefijo (lo vital). Una vez hayamos introducido los datos lo guardaremos como wp-config.php . Recuerda guardar los cambios.

Información de la base de datos

La información más importante a añadir al archivo de configuración es la de la base de datos, pues en caso contrario WordPress no sabrá dónde almacenar la información de tu sitio en sus tablas, que como vimos en este artículo donde expliqué cuáles son y para qué sirve cada una, guarda toda tu actividad.

Este modelo es el que utiliza el instalador de WordPress para completar tu archivo definitivo wp-config.php , utilizando para ello la información de la base de datos que te solicita en el proceso de instalación, como en esta captura:

Una vez completados los campos, en el archivo de configuración se añadirán a sus correspondientes líneas, estas:

Y más abajo del archivo es donde se introduce el prefijo:

Una vez completes el anterior paso de la instalación, si la información que incluiste es correcta podrás instalar WordPress. Por el contrario, si te equivocaste en algún dato no se podrá conectar y tendrás que volver a introducirlos correctamente.

Los datos a completar, por resumir, son los siguientes:

Instalación automática

  • DB_NAME: El nombre de la base de datos
  • DB_USER: El nombre de usuario con permisos para esa base de datos
  • DB_PASSWORD: La contraseña de acceso del usuario con permisos para esa base de datos.
  • DB_HOST: El host de tu base de datos (esta información te la debe facilitar tu proveedor de hosting, aunque en el 99% de las ocasiones será localhost). Si no lo sabes pregunta a tu proveedor. Por curiosidad, aquí tienes una lista de DB_HOST diferentes que puedes encontrar en algunos proveedores de hosting.
  • $table_prefix: El prefijo que llevarán las tablas de la base de datos para distinguirlas de otras tablas de otras instalaciones (si las hubiera) pues puedes usar una misma base de datos para varias instalaciones.

Truco extra: Si no consigues el dato de tu DB_HOST prueba a sustituir la línea por defecto por esta otra:

Creación manual

Adicionalmente, si creas manualmente el archivo wp-config.php hay otros parámetros de la base de datos que, en ocasiones, puedes tener que modificar.

  • DB_CHARSET: Es el mapa de caracteres por defecto de tu base de datos. Normalmente será utf8  pero si tienes dudas consulta a tu proveedor de hosting. La instalación automática no te lo pide porque viene definido por defecto en tu base de datos. Si tuvieses problemas con la visualización de caracteres en tu idioma habla con tu proveedor para elegir el más adecuado y cámbialo manualmente.
  • DB_COLLATE: Se refiere al orden del mapa de caracteres, y normalmente no se añade ningún parámetro ya que lo asigna automáticamente MySQL así que mejor no lo toques, el proceso de instalación automático no te lo pide.

Nota importante: NUNCA uses el prefijo por defecto wp_  pues estarás facilitando la vida a posibles intrusos, ya que es “por defecto”. En instalaciones que ya tengan el prefijo por defecto puedes cambiarlo manualmente o con plugins.

La información de conexión con la base de datos, si ya estuviese creada, está en tu panel de alojamiento, y en caso de duda deberás consultar con tu proveedor de hosting.

En caso contrario debes seguir estos pasos para crearla:

Crea la base de datos en tu cPanel

Ve a tu cPanel y accede a MySQL Bases de Datos

 

A continuación ponle nombre a tu base de datos y pulsa el botón para crearla.

Crea el usuario y su contraseña de la base de datos

Crear una base de datos en sí misma no es nada, es como un contenedor vacío al que nadie tiene acceso, así que hay que crear un usuario que pueda acceder a esa base de datos, como en cualquier sistema, que será el que indicaremos a WordPress.

Piensa en ella como en una hoja excel protegida pero sin saber el usuario y contraseña para poderla leer y modificar, lo que te digo, un cajón vacío, invisible e inútil.

Así que, sin salir de esa pantalla de MySQL Bases de datos de cPanel donde hemos creado la base de datos, crearemos un nuevo usuario, y su contraseña:

¿Hemos terminado? No. Si en el proceso de instalación de WordPress metes esa base de datos recién creada, y el usuario y contraseña recién creados tampoco podrás conectar ¿por qué?, porque pones información de una base de datos, y de un usuario con su contraseña, pero te falta un paso vital…

Asocia el usuario a la base de datos y dale privilegios

Efectivamente. Has creado la base de datos, y has creado el usuario y su contraseña, pero no le “has dicho” a MySQL que “ese” usuario tiene acceso a “esa” base de datos, simplemente existen, sin función ni relación entre ellos.

Este último paso también lo harás en la misma pantalla, como ves en la siguiente captura, simplemente eligiendo el usuario y la base de datos de su correspondiente desplegable:

En cuanto pulses el botón “Añadir” te llevará a la siguiente pantalla, donde debes marcar TODOS LOS PRIVILEGIOS y a continuación pulsar el botón “Hacer cambios

Si no lo haces será como antes, tendrías un usuario que no podría hacer nada con esa base de datos, necesitas asignarle privilegios, y ante la duda dáselos todos  (el detalle de cada privilegio es para nota y matrícula, otro día lo veremos)

¡Y ya! Ahora sí que tenemos una base de datos y un usuario con contraseña con privilegios (permisos) para leer y escribir en la base de datos.

Al introducir esta información en nuestro archivo wp-config.php  a través del instalador de WordPress, o editando manualmente el archivo, estaremos dando permiso a WordPress para entrar en esa base de datos, con las credenciales del usuario que hemos creado, y así añadir la información en cada tabla: ajustes, entradas, comentarios, etc, etc, etc.

Nota importante: Ten en cuenta que el archivo wp-config.php es un fichero de texto, donde se podrán leer estas informaciones sensibles de la base de datos, así que es vital que lo protejas de miradas no deseadas como explicamos hace tiempo.

Las claves secretas

En el archivo wp-config.php  encontrarás unas líneas algo crípticas denominadas “claves únicas de autentificación” que no son ni más ni menos que un control de seguridad mediante claves secretas.

Y debes usarlas.

Para ello ve a la URL que se indica en el archivo: https://api.wordpress.org/secret-key/1.1/salt/

Y sustituye todas las líneas que vienen por las que te ofrezca este servicio de creación aleatoria de claves secretas, por ejemplo:

De hecho, un truco para cerrar todas las sesiones de los usuarios conectados es cambiar estas claves, pues una vez guardados los cambios WordPress echará (literalmente) de su sesión actual a todos los usuarios, el tuyo incluido, forzando a iniciar sesión (con sus credenciales habituales) de nuevo.

Modo DEBUG

La línea incluida en el archivo wp-config.php  por defecto para activar el modo de depuración viene inactiva por defecto, así que si queremos que WordPress nos informe de cada error mientras creamos nuestro sitio deberíamos cambiarla de false  a true , así:

Además, como ya vimos en el artículo en el que explicamos todas sus posibilidades, también podemos añadir una línea para que se guarde un registro de todos los errores en un archivo llamado debug.log en la carpeta wp-content:

Y, si activamos el registro anterior, puede que no tenga sentido también mostrar los errores en pantalla, cosa que podrás evitar añadiendo esta otra línea:

EXTRA: Ajustes avanzados del archivo wp-config.php

Lo que hemos visto hasta ahora es la información más importante, y necesaria, del archivo de configuración y WordPress pueda funcionar correctamente, pero hay muchos más ajustes que podemos realizar en el archivo wp-config.php .

Cambiar la ubicación de wp-content

También puedes añadir esta constante para cambiar la ruta donde se guarden tus plugins, temas y archivos, por supuesto poniendo tu ruta en lugar de la del ejemplo y asegurándote de que la nueva carpeta existe:

Con ruta relativa:

Con ruta absoluta:

Cambiar la ubicación de la carpeta de plugins

Si solo quieres cambiar la ubicación de la carpeta de instalación de los plugins sería algo así:

Con ruta relativa:

Con ruta absoluta:

Cambiar la ubicación de la carpeta de archivos subidos

En este caso añade algo como lo siguiente:

Migrar de dominio

Un truco poco conocido del archivo wp-config.php  es que puede ayudarte a la hora de migrar de dominio, para lo que deberás añadir la siguiente constante antes de iniciar la migración:

Echa un vistazo a este artículo para conocer el proceso completo paso a paso.

Aumentar el límite de memoria

Un truco de los más solicitados y utilizados es modificar el límite de memoria de PHP añadiendo esta línea a wp-config.php :

Puedes especificar el límite de memoria al que necesites: 64M, 128M, 256M. Si no funciona tendrás que hablar con tu proveedor para que te cambie el límite desde el servidor.

Aumentar el límite de memoria en la administración

Como las gestiones de administración pueden requerir mucha memoria del servidor puedes tratar de establecer el límite de tu servidor a un valor mayor así:

Desactivar XML-RPC

El protocolo XML-RPC, utilizado por plugins como JetPack para conectar con los servicios de WordPress.com, puede ser una brecha de seguridad. Si tienes claro que no lo necesitas desactívalo añadiendo el siguiente filtro tras la línea  require_once(ABSPATH . 'wp-settings.php'); :

Reparar la base de datos

Si quieres reparar manualmente la base de datos puedes hacerlo añadiendo esta línea a tu archivo wp-config.php:

A continuación visita esta URL y ejecuta la optimización: https://misitio.es/wp-admin/maint/repair.php

Cuando termines borra la anterior línea de tu archivo de configuración o cámbiala a false .

Definir las rutas de tu sitio

Son varias las situaciones en las que puede ser interesante definir manualmente las rutas de tu sitio en vez de recuperarlas de la base de datos. Por ejemplo, ante un cambio erróneo en la página de ajustes generales de WordPress.

Puedes definir estas rutas en el archivo wp-config.php  así:

Definir la ruta a tu tema

Si quieres especificar, sin lugar a dudas, cual es la ruta a tu tema activo simplemente añade una línea así:

Especificar el tema por defecto

¿Quieres que tu tema por defecto sea otro en caso de que falle el tema activo? Añade algo como el siguiente ejemplo:

Definir la ruta de la hoja de estilos

Igualmente, puedes definir la ruta a la hoja de estilos principal de tu sitio así:

Evitar que WordPress te instale un tema o plugin por defecto

Si no quieres que WordPress te instale algún tema Twentyalgo o los plugins por defecto (Hello Dolly, por ejemplo) si no los encuentra añade esta línea:

Eliminar o controlar las revisiones de entrada

Si quieres que no se guarde ninguna revisión de entradas añade lo siguiente:

Y si quieres que solo guarde un número determinado personaliza el código así:

Forzar los permisos de archivo y carpetas

Para cambiar los permisos de archivos y carpetas a sus valores por defecto – y seguros – añade esto:

Solucionar el error “Cannot modify header information”

Un truco muy socorrido ante estos errores es comprobar si en tu archivo wp-config.php hay algún espacio extra o línea de más antes de la apertura de PHP:  <?php

Si así fuera borra la línea o espacio y guarda los cambios.

Activar WordPress Multisitio

El primer paso para activar las funcionalidades multisitio de WordPress es añadir la siguiente línea a tu archivo wp-config.php:

Luego ve a la administración de WordPress y sigue estos pasos.

Desactivar la papelera

Si quieres borrar directamente entradas, páginas y comentarios, sin que se puedan recuperar de la papelera, añade lo siguiente:

Cambiar el periodo de vaciado de la papelera

Si quieres que la papelera de entradas, páginas y comentarios se vacíe en un periodo distinto al por defecto (30 días) modifica ese límite así:

Papelera también en los adjuntos

Por defecto WordPress no ofrece papelera de reciclaje para los archivos multimedia como si tiene para entradas, páginas o comentarios, pero puedes activarla añadiendo esta línea:

Solucionar problemas al subir archivos o crear carpetas

En ocasiones WordPress no puede crear las carpetas automáticas por mes y año de tus archivos subidos o da errores HTTP al intentar subir archivos. Una posible solución es añadir esta línea:

Usar JetPack sin conexión a WordPress.com

Si quieres usar JetPack en modo desarrollador añade lo siguiente a tu wp-config.php :

Desactivar todas las actualizaciones automáticas en segundo plano

Sencillo, añade esto y WordPress no volverá a actualizarse solo:

Actualizaciones automáticas también a versiones mayores

Si, por el contrario, quieres que WordPress se actualice solo también a versiones mayores (de 4.7 a 4.8 por ejemplo) añade lo siguiente:

Eliminar las versiones guardadas de imágenes editadas

Por si no lo sabías, cuando editas una imagen WordPress guarda las distintas versiones por si quieres restaurarlas. Si no quieres que pase esto añade la siguiente línea:

Forzar SSL en el acceso y la administración

Si tienes un certificado SSL puedes forzar que el acceso y la navegación por la administración siempre sea bajo HTTPS así:

Solucionar el bucle de redirecciones de acceso en multisitio

A veces pasa, si no puedes acceder y entras en bucle en un WordPress Multisitio añade estas líneas:

Cargar solo lo fundamental de WordPress

Hay un modo minimalista de cargar WordPress con funcionalidades básicas que se activa añadiendo esta línea:

Evitar que WordPress te pida credenciales FTP para instalar o actualizar

En algunos servidores WordPress no puede acceder automáticamente para actualizar o instalar. Si te pasa puedes usar este código, personalizándolo con tus credenciales:

Cambia el intervalo del guardado automático

Como ya sabrás, el editor de WordPress guarda tus escritos cada poco tiempo. Si quieres cambiarlo pon el siguiente parámetro en los segundos que quieras, en el ejemplo 300 segundos=5 minutos:

Mismos usuarios en varios sitios distintos

Como puedes usar una misma base de datos para varios sitios, si quieres usar la misma tabla de usuarios para ambos puedes especificar en el archivo wp-config.php  de cada sitio qué tablas de usuarios usar de cualquiera de ellos así:

Activar la caché de objetos de WordPress

Antes de liarte a instalar plugins de caché puedes usar la caché de objetos de caché activándola en tu archivo de configuración así:

Comprimir los contenidos

Otra funcionalidad que puedes activar en WordPress y así ahorrarte un plugin de optimización web es la posibilidad de comprimir todo tu contenido en archivos estáticos añadiendo estas líneas a tu fichero wp-config.php :

Estas líneas comprimen el CSS y los archivos JavaScript, concatenan todos los JavaScript y fuerzan la carga de la compresión gzip, ahí es nada, sin plugins y casi sin manos.

Solucionar las entradas programadas que no se publican

Si programas entradas y no se publican cuando debieran puedes usar un cron alternativo añadiendo esta línea:

Desactivar o controlar el cron de WordPress

Por otra parte, si no vas a utilizarlo, puedes desactivar el cron de WordPress:

Y si lo prefieres puedes especificar el tiempo de espera en segundos entre cada ejecución como en este ejemplo:

Definir el dominio de cookies

También puedes especificar el dominio de las cookies de WordPress si, por ejemplo, sirves contenido estático en un subdominio y quieres definir las cookies de WordPress solo para el contenido no estático, y así evitar la carga de cookies en cada petición de contenido estático en tu subdominio.

Se haría así:

Bloquear peticiones desde URLs externas

Si quieres que se bloquee toda petición desde una URL diferente a la de tu base de datos añade la siguiente línea:

Ahora bien, si quieres permitir peticiones de URLs concretas deberías añadir una línea así:

Desactivar el editor interno de WordPress de plugins y temas

Una medida básica – e importante – que siempre recomiendo es hacer desaparecer el editor interno de WordPress de plugins y temas añadiendo esta línea:

Desactivar las actualizaciones e instalaciones de plugins y temas

Otro de mis trucos favoritos es evitar que nadie, ni siquiera los administradores, puedan actualizar o instalar temas o plugins desde la administración de WordPress, así:


Espero que aprendas mucho de este artículo y que te sirva de algo cuando lo necesites, solo con que te salve de alguna situación embarazosa me daré por satisfecho.

Si quieres ampliar aún más información sobre wp-config.php  te recomiendo estos enlaces:

Valora este artículo para mejorar la calidad del blog ...

PobreRegularEstá bienMuy buenoExcelente (9 votos, promedio: 5,00 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran. Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad
  • Que curioso este artículo sobre el archivo ‘wp-config.php’ a juzgar por el artículo que hice la semana pasada, jeje, será casualidad 🙂

    Dicho lo cual, gracias por el mismo, así me empapo bien. Porque mi solución para el FTP interno que impuso STRATO a mediados 2014, la descubrí por casualidad al trabajar de forma local (algo que llevaba sufriendo 2 años y no estaba presente en nuevas instalaciones).

    Qué seria de nosotros sin AyudaWP by Fernando Tellado.

    Saludos jefe 🙂

    • Ah, eso del FTP también me pasó hace años con CDMon y lo arreglé con las constantes.

      Gracias Joan 🙂

  • Jorge Rivera

    Hola Fernando, muchas gracias por semejante “Biblia” del ‘wp-config.php’ !

    Muchas cosas, y muchas que ya están en tu último libro, genial!

    Un detalle, en el caso del enlace ‘plugins’ para modificar el prefijo en BBDD, nos llevas a tu articulo del año 2012, en ese articulo los enlaces a los plugins citados quizás están ya des actualizados, creo, uno lleva a un plugin muy mal valorado y el otro a uno que ya no existe…, algo obvio por el tiempo que ha pasado y la movilidad del mundo WordPress; ¿puedes recomendar algún otro plugin?

    Saludos!!

  • dalarkon

    Mismos usuarios en varios sitios distintos

    eso aplica en multisitio solamente?

    • No que va, eso es para cualquier WordPress normal precisamente

ESTA WEB UTILIZA COOKIES PARA OFRECER LA MEJOR EXPERIENCIA POSIBLE. SI SIGUES NAVEGANDO DAS TU CONSENTIMIENTO PARA LA ACEPTACIÓN DE COOKIES Y NUESTRA POLÍTICA DE PRIVACIDAD más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar