Hace poco preparé un servidor nuevo para una página web WordPress. Lo preparé siguiendo el mismo procedimiento de siempre: Ubuntu 20.04 como sistema operativo, Nginx como servidor web, PHP 7.4 y MariaDB para la base de datos. Preparé todas las configuraciones y bases de datos, permisos y accesos, e instalé WordPress.
Una vez instalado, cuando me disponía a instalar los plugins y preparar el entorno, me topé con este error:
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
WordPress no podía conectar consigo mismo utilizando llamadas API para ejecutar tareas programadas (wp-cron
) o tareas en segundo plano. Me pareció bastante extraño así que me puse a investigar la causa. Busqué por internet y algunas de las posibles causas eran:
- Que la librería cURL (libcurl) no estuviera instalada y/o activada.
- Que hubiera diferentes versiones de PHP instaladas interfiriendo entre ellas.
- Que al bloque de servidor en la configuración de Nginx le faltara la directiva
ssl
.
Todas estas son muy fáciles de arreglar, pero ninguna de ellas ocurría en mi caso.
Tras buscar un poco más por internet y varias pruebas más encontré la solución, que al final era igual de simple que las demás para arreglar los problemas mencionados arriba.
Añadir el o los dominios usados por la web al archivo /etc/hosts
. Simplemente añades una linea con la IP local del servidor, y el o los nombres de dominio que la página va usar, por ejemplo:
192.168.1.5 kevinmaschke.com www.kevinmaschke.com
Una vez hecho esto, reinicié el servidor por si acaso y violà! El error ya no aparecía.
Pequeño consejo extra para WordPress
Es bien sabido que el uso del controlador cron integrado en WordPress puede llegar a afectar los tiempos de carga de la página web, por ello lo recomendado es deshabilitarlo añadiendo la siguiente línea al archivo wp-config.php
:
define('DISABLE_WP_CRON', 'true');
Y ejecutar estas tareas programadas en segundo plano a través del sistema operativo mismo. Para ello, en Ubuntu, editamos CRON utilizando el comando crontab -e
y añadimos la siguiente línea:
*/5 * * * * cd /var/www/kevinmaschke.com/public; /usr/local/bin/wp cron event run --due-now >/dev/null 2>&1
Es importante recordar que para que esto funcione es necesario tener instalado WP-CLI.