Una de las tareas más complicadas de realizar para mucho, es la configuración de WordPress. Ya que es muy difícil saber que editar y que no tocar cuando somos principiantes, hemos hecho esta sencilla guía del archivo wp-config.php que es el documento base con el que debemos comenzar a trabajar ¿Listo para saber cómo configurar adecuadamente tu blog en WordPress? ¡Manos a la obra!
Tabla de Contenido
¿Cómo encuentro el archivo wp-config.php?
En la instalación típica de un WordPress, el archivo wp-config.php se puede encontrar sobre la raíz de la carpeta donde se monto el blog. Inicialmente, este archivo recibe el nombre de wp-config-sample.php, para poder utilizarlo hay que renombrarlo y dejarlo simplemente como wp-config.php
Una vez hecho el cambio de nombre, lo siguiente es abrirlo con nuestro editor de código favorito.
¿Por qué es necesario editar el archivo wp-config.php?
La respuesta es muy simple. El archivo wp-config.php es el lugar indicado para iniciar la configuración personalizada de nuestro blog. No importa si nuestra instalación de WordPress fue automática o realizada por un tercero, eventualmente todos necesitamos saber como utilizar este archivo si queremos mejorar la seguridad de nuestro blog.
La configuración de este archivo, es una de esas cosas de nuestro blog que no deberíamos dejar en manos de un plugin automático. No obstante, si no somos un usuario muy técnico, podemos echar mano de GenerateWP para apoyarnos en su edición. Los más técnicos, pueden seguir la guía oficial de WordPress para editar este archivo.
¡Es hora de editar nuestro wp-config.php!
Configuración de la base de datos
DB_NAME: Nos permite definir el nombre de la base de datos, si la base de datos es local, sólo hay que colocar el nombre que tengamos disponible. Si no tenemos acceso directo a un servidor de base de datos hay que preguntar al soporte técnico o checar en el panel de administración, cualquiera que sea. Por ejemplo:
define( 'DB_NAME', 'miblog' );
DB_USER: Es el nombre de usuario que tiene acceso a la base de datos, igual que el nombre de la base de datos, si no tenemos acceso a esta información hay que solicitarlo a soporte técnico o revisar en nuestro panel de administración. Si estamos usando una configuración local, puede ser root (para pruebas internas únicamente) o el usuario que hayamos creado por cuenta propia. Por ejemplo:
define( 'DB_USER', 'usuarioblog' );
DB_PASSWORD: La clave de acceso a nuestra base de datos, si no tenemos acceso a esta información hay que solicitarlo a soporte técnico o revisar en nuestro panel de administración. En algunas instalaciones locales este valor queda completamente vacío. Por ejemplo:
define( 'DB_PASSWORD', 'N0t3L0Dir3' );
DB_HOST: Es el nombre o dirección ip de nuestro servidor de base de datos. Si no tenemos acceso a esta información hay que solicitarlo a soporte técnico o revisar en nuestro panel de administración. En las instalaciones locales y en algunos proveedores internacionales, típicamente es localhost. Por ejemplo:
define( 'DB_HOST', 'localhost' );
DB_CHARSET: Es el conjunto de caracteres a utilizar en nuestra base de datos. Si trabajamos únicamente en español, este valor se queda en utf8. Si nuestra base de datos esta en otro idioma, debemos consultar la lista de charset soportados por nuestro gestor de base de datos. Si nuestra base de datos es MySQL, podemos revisarlo en su documentación oficial.
define( 'DB_CHARSET', 'utf8' );
DB_COLLATE: Afecta la manera en como se utiliza el charset, ya que algunos de ellos pueden tener muchas variaciones. Por ejemplo, en español tenemos utf8_spanish_ci (Español moderno) y utf8_spanish2_ci (Español tradicional) Se puede quedar en blanco si no sabemos que hacer con este valor.
define( 'DB_COLLATE', 'utf8_spanish_ci' );
Table Prefix: Permite modificar el prefijo de cada tabla dentro de la base de datos. El valor por default es wp_ pero es algo que un atacante esperaría encontrar, por lo que es buena idea cambiarlo por algo diferente. Por ejemplo:
$table_prefix = 'lb_';
WP_ALLOW_REPAIR: Sirve para activar la reparación y optimización de la base de datos. Es buena idea activarlo si tenemos una base de datos corrupta por alguna mala configuración.
define('WP_ALLOW_REPAIR', true);
Configuración de las Salt Keys
Ya hablamos antes de ellas, son una forma simple de mantener seguras las cookies que genera nuestro sitio. Estos valores son aleatorios y se recomienda cambiarlos al menos 2 o 3 veces al año. Para no errar, podemos utilizar el generador oficial de salt keys de WordPress, el cual se actualiza cada que refrescamos la página. Usando dicho generador, pasaremos de esto:
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
A esto:
define('AUTH_KEY', 'C{bO)wu/#VfpiNnP?:ajG 7>I2}Z(P.uD;[3%PJU@aNDsw0*:q-0Eq_D-$Jl{>IA');
define('SECURE_AUTH_KEY', '*FVR21N!ylIF%-bXBw^%AUw+8<JPT>j(r5(Cc%^$@H)|MHm~qvm[+Gl.K=Pqk(iy');
define('LOGGED_IN_KEY', 'I5s(w9`p2p)2PeD3yT=v7]:G]oDHxxK|caH+E?+Z3fXLRwx(89x5-F@qV2m+KMf]');
define('NONCE_KEY', 'AlA}1#6Utp9GJw={fe uncs1;wSvlL9ktJq`1Dl1g_Y+(jh[.W.<bU#txR_UuWY*');
define('AUTH_SALT', '7.1t[_(9_,3Z8 mJAn^bhCh=>=i1x$k:NYo00%%BK*EhApJKVD6{Q&A9^rbZ]zSn');
define('SECURE_AUTH_SALT', '45Cd_Y%`?bEwR*rRuXAzs#;B.S,e+v^oF/q#:69oU,3md|S@_Q!WgE-S{jCNzORy');
define('LOGGED_IN_SALT', 'Hbixd@t5</=pY?,|=~I9Q_6nJix~$:~(5* kK}jnY{MI*ba+-3CkJp+ l?Ts|Zg@');
define('NONCE_SALT', ' <V.9USnv6^5}lQtaNg+b1b0;u&Y/t=3l//._`Me5Kt+ox-5R#.:5{Dg0G}cV2TD');
Algunos plugins de seguridad pueden actualizar estos valores también.
ADVERTENCIA: LAS SIGUIENTES OPCIONES SE DEBEN AÑADIR ANTES DE LA LÍNEA QUE DICE: That’s all, stop editing! Happy publishing.
Activar el modo debug de WordPress
El modo debug permite experimentar con nuestro WordPress y es muy útil activarlo cuando estamos creando un plugin o desarrollando un tema para nuestro sitio.
WP_DEBUG: Activarlo el modo debug, por lo que solo hay que cambiar el valor de false a true. Por ejemplo:
define('WP_DEBUG', true);
Es importante aclarar que el modo debug no debe estar activo todo el tiempo, por lo que una vez que hemos finalizado nuestras pruebas, debe regresar a false.
WP_DEBUG_LOG: Permite llevar un registro de los errores ocurrido durante el modo debug, este valor debe recibir la ruta relativa hacia un archivo, y dicho archivo debe tener los permisos de escritura necesarios. Por ejemplo:
define('WP_DEBUG_LOG', '/tmp/wp-errors.log' );
WP_DEBUG_DISPLAY: Muestra los errores ocurrido mientras estamos en modo debug. Igual que que WP_DEBUG este valor debe regresar a false una vez hayamos terminado de trabajar en el modo de depuración.
define('WP_DEBUG_DISPLAY', true);
SAVEQUERIES: Al activarse, guarda todas las consultas a la base de datos en un arreglo de datos que se puede consultar. Igual que que WP_DEBUG este valor debe regresar a false una vez hayamos terminado de trabajar en el modo de depuración.
define('SAVEQUERIES', true);
SCRIPT_DEBUG: Si se activa (true) muestra los errores de JavaScript y CSS que ocurran durante la depuración del sitio.
define('SCRIPT_DEBUG', true );
Aumentar la seguridad con SSL
Estas opciones sirven para aumentar la seguridad al permitir que nuestro blog aproveche el certificado SSL que tengamos, así sea de pago o gratuito.
FORCE_SSL_LOGIN: Hace que la ventana de inicio de sesión de WordPress utilice HTTPS por defecto.
define('FORCE_SSL_LOGIN', true);
FORCE_SSL_ADMIN: Obliga al Escritorio o panel de administración de WordPress a utilizar HTTPS por defecto.
define('FORCE_SSL_ADMIN', true);
FTP_SSL: Obliga a hacer sftp o FTP seguro, la versión mejorada del protocolo de transferencia de archivos.
define('FTP_SSL', true);
Acceso a los archivos por FTP
Por medio del Protocolo de Transferencia de Archivos o FTP, podemos tener acceso a los archivos y a la estructura de carpeta. Si planeamos configurar alguna aplicación para que acceda a nuestro blog por este medio o si necesitamos acceso por SSH, entonces hay que definir algunos valores aquí. Por cierto, esto no es necesario si utilizamos algún cliente FTP típico.
FTP_HOST: Define el nombre o dirección ip del servidor FTP de nuestro blog, en las pruebas locales no es realmente necesario, pero se puede usar la ip privada del equipo. Por ejemplo:
define('FTP_HOST', 'sftp.miblog.com');
FTP_USER: Define el nombre del usuario que vamos a utilizar para tener acceso a los archivos. Debe existir en el servidor. Por ejemplo:
define('FTP_USER', 'editor');
FTP_PASS: Define el password que tiene asignado nuestro usuario. Por ejemplo:
define('FTP_HOST', 'N0t3L0Dir3');
Modificar las URL del blog
Las siguientes opciones permiten modificar la forma en como se ingresa al blog y sus recursos, es decir, las diferentes URL que se pueden modificar. Por motivos de seguridad, es posible que sea necesario modificar algunas URL, sobre todo si acabamos de sufrir algún tipo de ataque.
WP_SITEURL: Establece la URL del blog, ya sea por HTTP o por HTTPS. Si estamos detrás de algún proxy o estamos haciendo una redirección, este valor debe apuntar a la URL pública que se nos haya asignado por el proveedor de servicios o el soporte técnico. Ejemplo:
define('WP_SITEURL', 'http://www.blog.com');
WP_HOME: Es la URL de WordPress, si nuestro blog esta en un subdirectorio aquí es donde se puede establecer. Si nuestra URL no ha sufrido ningún cambio puede quedar igual que WP_SITEURL. Ejemplo:
define('WP_HOME', 'http://www.blog.com';
WP_CONTENT_URL: Permite modificar la ruta por default del directorio de contenidos de WordPress, si queremos aumentar la seguridad del blog, es buena idea mover este valor del clásico wp-content. Por ejemplo, si tuviéramos una carpeta en nuestro dominio llamada contenido.
define('WP_CONTENT_URL', 'http://www.blog.com/contenido');
UPLOADS: Permite modificar la URL de la carpeta donde se cargan todos nuestros archivos. Si queremos salir del clásico wp-content/uploads y poner todas nuestras cargas en un directorio diferente. Por ejemplo:
define('UPLOADS', 'http://www.blog.com/cargas');
WP_PLUGIN_URL: Permite modificar la URL del directorio para los plugins. Si queremos usar una carpeta diferente al típico wp-content/plugins, esta es nuestra opción. Por ejemplo:
define('WP_PLUGIN_URL', 'http://www.blog.com/plugins');
COOKIE_DOMAIN: Permite modificar el dominio del que tomamos las cookies de nuestro sitio, útil si estamos bajo un hospedaje compartido, si usamos algún servicio de gestión de contenidos o si estamos redireccionando desde un subdominio. Ejemplo:
define('COOKIE_DOMAIN', 'subdominio.miblog.com' );
Modificar la manera en como editamos nuestro contenido
Las siguientes opciones, son útiles para configurar algunas opciones del editor de contenidos, principalmente las que tienen que ver con el guardado automático o las revisiones de un post .
AUTOSAVE_INTERVAL: Permite modificar el tiempo en el cual se se ejecuta el autoguardado. Si se omite esta variable se infiere que el autoguardado es de 60 segundos, de otra forma se debe configurar a un valor deseable. Por ejemplo, un autoguardado cada 2 minutos sería:
define('AUTOSAVE_INTERVAL', '120');
WP_POST_REVISIONS: Define si un post de nuestro blog guarda revisiones automáticamente. Si se desea deshabilitar esta característica tan sólo hay que establecer el valor a false, de lo contrario se debe escribir la cantidad de revisiones a guardar. Por ejemplo, aquí marcamos 5 revisiones por post.
define('WP_POST_REVISIONS', '5');
MEDIA_TRASH: Activa (true) o desactiva (false) la papelera de reciclaje para medios, permitiéndonos de esta forma acceder a los recursos que hayamos eliminado por cierto tiempo.
define('MEDIA_TRASH', true);
EMPTY_TRASH_DAYS: Define por cuantos días se mantienen los medios eliminados en la papelera, el valor default es 30 días. Por ejemplo:
define('EMPTY_TRASH_DAYS', '40');
DISALLOW_FILE_EDIT: Desactiva el editor de temas y plugins de WordPress, normalmente se usa cuando existe algún problema con un plugin o un tema.
define('DISALLOW_FILE_EDIT', true);
Activar o desactivar actualizaciones
Por supuesto, podemos activar o desactivar diversas opciones desde nuestro archivo wp-config.
DISALLOW_FILE_MODS: Principalmente sirve para desactivar la modificación y actualización de temas y plugins de WordPress. Sólo recomendable bajo circunstancias muy específicas.
define('DISALLOW_FILE_MODS', true);
AUTOMATIC_UPDATER_DISABLED: Desactiva (true) o activa (false) las actualizaciones automáticas en WordPress. Muchos sitios lo tienen activado por defecto, por lo que, de necesitar conservar una versión anterior de WordPress, es recomendable pasarlo a true.
define('AUTOMATIC_UPDATER_DISABLED', true);
WP_AUTO_UPDATE_CORE: Define como se va a actualizar WordPress, podemos desactivarlo por completo al establecerlo a false, activarlo al ponerlo en true o hacer qué sólo se actualice cuando la versión de WordPress no sea importante con el valor minor. Por ejemplo, desactivarlo puede ser útil si tenemos muchos plugins que no se han probado con la última versión de WordPress.
define('WP_AUTO_UPDATE_CORE', 'false');
Activar la capacidad multisitio de WordPress
La capacidad multisitio de WordPress, nos permite administrar múltiples instancias de WordPress en un mismo lugar. Es ideal para equipos de trabajo grandes o para empresas que desean tener más de un blog o sitio para sus productos o servicios. La única opción es WP_ALLOW_MULTISITE y se debe establecer a true.
define('WP_ALLOW_MULTISITE', true);
Ajustar la cantidad de memoria para PHP
Los scripts PHP que incluye WordPress, pueden necesitar más memoria de la asignada inicialmente. Estas opciones existen para ayudar a que no nos quedemos sin memoria para ejecutar procesos.
WP_MEMORY_LIMIT: Permite modificar el límite mínimo de memoria requerida para ejecutar procesos PHP, el valor default es de 30 Megabytes. Por ejemplo, si usamos un WordPress multisitio necesitaremos al menos 64Mb, por lo que debería quedar como sigue:
define('WP_MEMORY_LIMIT', '64');
WP_MAX_MEMORY_LIMIT: Permite aumentar la cantidad de memoria a utilizar hasta un límite de 256Mb. Por ejemplo:
define('WP_MAX_MEMORY_LIMIT', '256');
Compresión y manejo de caché
Para ayudar al manejo de ancho de banda de nuestro sitio y también para la optimización SEO de nuestro sitio, podemos activar algunas de estas opciones según lo consideremos conveniente.
WP_CACHE: Activa el manejo de caché de nuestro WordPress. La caché instruye al servidor para que almacene archivos en el disco o la memoria RAM, con el objetivo de que, puede recordar y duplicar el mismo contenido que ha estado sirviendo desde hace tiempo. Es muy recomendable tenerla activada.
define('WP_CACHE', true);
COMPRESS_CSS: Activa la compresión de archivos CSS de nuestro WordPress. Esta opción podrá estar subordinada al manejo de recursos de nuestro proveedor de servicios.
define('COMPRESS_CSS', true);
COMPRESS_SCRIPTS: Activa la compresión de archivos JavaScript de nuestro WordPress. Esta opción podrá estar subordinada al manejo de recursos de nuestro proveedor de servicios.
define('COMPRESS_SCRIPTS', true );
CONCATENATE_SCRIPTS: Permite unir todos los archivos JavaScript de nuestro WordPress como si fueran uno sólo. Esta función sólo afecta al panel de administración y puede ayudar a aumentar la rapidez de acceso al mismo.
define('CONCATENATE_SCRIPTS', true);
ENFORCE_GZIP: Activa la compresión de archivos de nuestro blog por medio de la herramienta GZIP si el sistema lo soporta.
define('ENFORCE_GZIP', true);
Juguemos con CRON en WordPress
Cron Job es una herramienta muy útil para ejecutar procesos, retrasar la ejecución de los mismos o programar su ejecución. Sin embargo a veces puede generarnos problemas de rendimiento a causa de un error de configuración. Aquí es donde entran estás opciones.
DISABLE_WP_CRON: Desactiva el cron job de WordPress. No debemos olvidar que esto puede afectar el autoguardado y el uso de Ajax dentro de nuestro blog.
define('DISABLE_WP_CRON', 'true');
ALTERNATE_WP_CRON: Se debe activar si estamos utilizando un cron job diferente al de WordPress.
define('ALTERNATE_WP_CRON', 'true');
WP_CRON_LOCK_TIMEOUT: Establece el tiempo máximo de ejecución del cron job en segundos. Por ejemplo:
define('WP_CRON_LOCK_TIMEOUT', 4);
¿Qué hacer una vez terminado de editar el archivo?
Si es una instalación local, no es necesario hacer nada más. Los ajustes se aplicarán inmediatamente. En caso de una instalación remota, será necesario actualizar el archivo por medio de un cliente FTP.
NO ES RECOMENDABLE: Editar el archivo en directo sobre el blog cuando esta en funcionamiento.
Básicamente eso sería todo. El archivo wp-config.php es tan complejo que incluso al escribir esta pequeña guía, quedaron varias opciones sin cubrir, pero con todas las opciones que analizamos en este artículo, hay más que suficiente para hacer muchos cambios y ajustes a nuestro blog.
¿Te ha resultado? ¿Tuviste algún problema? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.
Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.