Cuando realizamos una instalación de WordPress en un directorio se nos genera una gran cantidad de ficheros y carpetas: wp-admin, wp-content, index.php… En la mayoría de los casos, un usuario “normal” o de tipo usuario, no necesita saber nada sobre estas carpetas y archivos. Accede al Dashboard a través de una URL tras autentificarse y desde ahí puede realizar la gestión de su sitio web. No obstante, nunca está de más conocer un poco cómo se estructura un proyecto en WordPress; se puede dar la circunstancia de que un día necesites tocar algo ahí.
Hoy vamos a ver un poco en detalle qué es y de qué consta el archivo wp-config.php, quizás el fichero más importante de nuestra web WordPress.
¿QUÉ ES WP-CONFIG?
El fichero de WordPress que nos trae al caso, el wp-config.php es un archivo escrito en el lenguaje de programación PHP. Para que haga algo tiene que ser ejecutado por un servidor web. Este es uno de los motivos por los que si tú quieres hacer funcionar una web de WordPress en tu equipo personal, previamente has de instalar un servidor local como AppServ o WampServer. A este fichero se le conoce como archivo de configuración, y se encarga de gestionar distintos aspectos esenciales para que nuestra web funcione, como el acceso a la base de datos o el cifrado de las contraseñas. Un error en su código puede provocar que nuestro sitio web no se visualice.
¿DE QUÉ PARTES SE COMPONE?
El wp-config.php que aparece por defecto cuando instalamos WordPress tiene una serie de partes que vamos a desgranar. Puedes utilizar un editor como Notepad++ (es gratuito) para abrir el archivo.
Un aviso previo para los que no tengáis nociones de programación. Al abrirlo, vas a encontrar en varias partes unas líneas de texto incluidas dentro de los símbolos /** (aquí el texto) */. Esas partes son los llamados comentarios, donde se describe o explica algún aspecto del fichero y de su funcionamiento, pero que no son ejecutados por el servidor. Podrías eliminarlos y WordPress seguiría funcionando igualmente. También hay que señalar que el código de los programas escritos con PHP empieza por <?php y que cada instrucción del programa acaba con ;.
Dejando a un lado los comentarios, las siguientes líneas que veremos serán estas:
Vemos seis líneas con la palabra define y unos valores entre paréntesis. Esta es una forma de declarar constantes en PHP. Fijémonos en la línea define(‘DB_NAME’, ‘migracion’);.Lo que hace esta línea de código es [https://php.net/manual/es/function.define.php definir una constante] cuyo nombre es DB_NAME y asignarle un valor, migracion (sin prefijo, leer más abajo). Esto quiere decir que la base de datos de nuestro proyecto se llama migración. Si cuando instalaste WordPress, decidiste llamar a tu base de datos “colonias”, en tu archivo wp-config.php esta línea de código será define(‘DB_NAME’, ‘colonias’);. Las siguientes constantes son DB_USER (el nombre de usuario de la base de datos), DB_PASSWORD (su contraseña), DB_HOST (el nombre del host de la base de datos), DB_CHARSET (la codificación de caracteres utilizada) y DB_COLLATE (un parámetro que asigna automáticamente MySQL y que no hace falta tocar). Vamos a ver las siguientes líneas de código.
Volvemos a encontrarnos con la función de PHP define. Estas líneas encriptan los datos que almacenan las cookies en los navegadores cuando se inicia sesión en tu sitio. Ya sabes que en el mundo de internet la seguridad es muy importante, y WordPress se caracteriza por ser un CMS muy seguro.
La siguiente línea es $table_prefix = “wp_”;. En PHP los nombres de las variables están antecedidos por el símbolo $. Entonces, esta línea indica que se está creando una variable de nombre $table_prefix y que se le asigna un valor de wp_. Este es el valor del prefijo del nombre de la base de datos. En nuestro caso, nuestra base de datos se llama wp_migracion (recuerda que migracion era el valor que recibía la constante DB_NAME). El valor de la variable $table_prefix se puede cambiar.
Y de nuevo, nuestro amigo define: define(‘WP_DEBUG’,false);. La constante WP_DEBUG puede tener dos valores, false o true (falso o cierto, lo que se llama un tipo de dato booleano). Si el valor es true, se nos mostraran ciertos mensajes de error cuando algo marche mal en nuestro sitio web. Solo debería tener valor true en los sitios en desarrollo (no es buena idea que cualquiera pueda ver mensajes de error de nuestra web, la hace más vulnerable). Si tu web ya está funcionando y es accesible a todo el mundo, el valor debe ser false. Las últimas líneas de código que encontramos son estas:
Las dos primeras líneas definen una constante (en caso de que no exista) con la ruta absoluta donde se ubica el proyecto.
La línea require_once(ABSPATH . ‘wp-settings.php’); lo que hace es “traer” a wp-config.php el archivo wp-settings.php. Para entendernos, es como copiar el código de dicho archivo en wp-config.
¿Y PARA QUÉ ME VALE SABER ESTO?
Quizás para nada, quizás para mucho. Puede ser que nunca tengas que toquetear en wp-config.php, o puede ser que tengas contratado el mantenimiento de tu web, esperamos que con sea uno de nuestros planes de mantenimiento WordPress, con los de ideaWeb hagan el “trabajo sucio” por ti. Pero también se puede dar el caso de que necesites editar este archivo y cuando lo necesites te acordarás y pensarás “que majos los de ideaWeb que me enseñaron esto”.
Bromas aparte, si que tiene una utilidad muy importante en ciertos momentos y para necesidades cruciales. Imagina que estás hasta el gorro de tu empresa de hosting y que quieres contratar otra. Esto va suponer que te va a tocar migrar tu web WordPress. En tu nuevo hosting WordPress quizás cambien algunos de los parámetros de tu base de datos. Quizás tu nombre de usuario antes era Pepito y ahora tenga que ser MiHost-Pepito. Es fácil que te toque editar wp-config.php y cambiar la línea (‘DB_USER’, ‘Pepito’); por (‘DB_USER’, ‘MiHost-Pepito’);. Vale, estás contento con tu host y no tienes que migrar nada. ¿Para qué me vale entonces esto?
Una buena práctica para evitar problemas de seguridad con WordPress es tener siempre tu sitio actualizado. Te puede aparecer un mensaje en el Dashboard donde se te informa de una nueva actualización a otra versión. Bien, pinchas en el botón “actualizar” y, vaya por Dios, te aparece el siguiente mensaje de error: “Maximum execution time of 30 seconds exceeded in executing specific line of PHP code”. Vamos, que han transcurrido más de 30 segundos y la actualización no se ha efectuado, por lo que se aborta misión. ¿Qué hacemos entonces? Bueno, en PHP existe una función de nombre set_time_limit que limita el tiempo de ejecución de un script, y cuyo valor por defecto es de 30 segundos. Nada nos impide ampliar ese periodo. Abrimos wp-config con Notepad++ y, justo encima del comentario /* ¡Eso es todo, deja de editar! Feliz blogging */ escribimos la línea set_time_limit (100);.Ahora WordPress esperará 100 segundos antes de interrumpir la actualización. Si sigue sin funcionar, podrás aumentar el número de segundos a 120, 150, etc. hasta que la actualización se ejecute con éxito. Editando wp-config hemos conseguido solucionar un problema de nuestra web. ¿A qué te empieza a interesar más este ficherito?
Se pueden hacer muchas más cosas añadiendo código a este fichero, puedes buscar otros ejemplos en internet. Solo esperamos que ahora tengas algo más claro qué es wp-config.php, que incluye por defecto y para qué sirve. Hasta la próxima entrada.