Actualizar PHP en Lightsail para WP

Si hace ya tiempo que instalaste tu instancia de AWS Lightsail para WordPress, es muy posible que tengas un mensaje que te taladra la cabeza cada vez que accedes al escritorio de WordPress…

Obviamente no puedes irte a dormir tranquilo con este mensaje cuando te ha salido 60 veces. Así que una noche de sábado de esas en las que has hecho una buena siesta por la tarde y los niños ya están durmiendo es ideal para realizar la actualización de PHP en mi instancia de Lightsail en AWS.

Lo primero que hay que saber es que no hay un botón de «Actualiza PHP a la versión X» en Lightsail, WordPress o Bitnami ni ningún script que te permita ejecutar la actualización desde línea de comandos.

Puestos a buscar por la web, di con una de las pocas páginas donde explican como actualizar PHP sin migrar la instancia, Upgrade PHP on Bitnami WordPress without Migration, y francamente vi claro que quizás no era el mejor camino porque tenías que lanzar un montón de scripts directamente a producción.

La solución que decidí finalmente fue bastante sencilla y consistió en hacer una copia de seguridad de la instancia actual en Lightsail, crear una nueva instancia (donde Bitnami ya instala la versión 8.2 de PHP junto con la 6.5 de WordPress), instalar el certificado SSL, cambiar la IP en el gestor de dominios e importar los datos de la copia de seguridad que habíamos creado. Por último, borré la vieja instancia después de comprobar que todo funcionaba correctamente. Al final fue una hora y poco lo que tardé en todo el proceso.

Si necesitas algo más de información con los pasos intermedios, puedes utilizar esta pequeña guía que es sencilla pero detallada: Updating PHP version on Bitnami WordPress.

Activar eMail en WordPress para AWS Lightsail

Cuando instalamos WordPress en AWS Lightsail no disponemos de un servidor de correo electrónico que se active con un click y por tanto tendremos que instalar o conectar uno de forma manual.

En mi caso me he decantado por la instalación del plugin WP Mail SMTP que permite enviar emails con diferentes tipos de mailers, siendo uno de los más rápidos y baratos el de Google. Estos son los pasos que hay que realizar para activarlo:

    • Una vez que estamos conectados a la cuenta de Gmail que queremos utilizar, entraremos en la cónsola de Google Cloud Platform.
    • Creamos un nuevo proyecto desde Select a Project > New Project.
    • Cuando se haya creado, lo seleccionamos.
    • En el buscador de la cónsola de Google Cloud Platform buscamos «gmail» y seleccionamos «Gmail API».
    • Pulsamos sobre «ENABLE».
    • Una vez dentro pulsamos sobre «CREATE CREDENTIALS» en la parte superior derecha de la pantalla.
    • A partir de aquí podemos seguir las instrucciones de WP Mail SMTP.

Al finalizar todas las configuraciones podemos enviar un email de prueba desde el menú de configuración de WP Mail SMTP en WordPress para verificar que todo funciona correctamente.

Forzar redirección a https en WordPress Multisite desde AWS LightSail

En general, añadir un certificado a un WordPress y forzar la redirección de hhtp a https es bastante fácil ya que basta con ejecutar el script de Bitnami «sudo /opt/bitnami/bncert-tool«. Una de las opciones que ofrece dicho script es la de redireccionar a https pero en el caso de WordPress Multisite, no se soporta por lo que hay que buscar otra solución.

Esta solución es realizar la redirección a través de Apache modificando el archivo de configuración de hosts virtuales y seguir las instrucciones de Force HTTPS Redirection With Apache.

En mi caso, y después de asegurarme que tenía que aplicar la opción A (Approach A: Bitnami Installations Using System Packages») modifiqué los siguientes cuatro archivos:

/opt/bitnami/apache2/conf/bitnami/bitnami.conf
/opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf
/opt/bitnami/apache2/conf/vhosts/wordpress-https-vhost.conf
/opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf

La edición de los archivos la hice con VIM desde línea de comandos y antes de los cambios realicé backups de los cuatro archivos.

Finalmente reinicié la instancia de LighSail donde tengo instalado WP Multisite. Para verificar su funcionamiento, desde el browser tecleé el dominio y automáticamente se cambió a https. Hice lo mismo desde el teléfono para asegurarme.

Google Site Kit

Hoy definitivamente he desinstalado MonsterInsights de mi blog en WordPress y lo he cambiado por Google Site Kit. Las razones principales han sido que MonsterInsights no me ha impresionado nada y muchas de sus funcionalidades eran de pago.

La verdad es que Google Site Kit funciona muy bien y se configura rápidamente permitiendo conectar con Analytics, Search Console, Page SpeedInsights, Adsense, Optimize y Tag Manager. Además el plugin es original de Google con lo que te olvidas de licencias y problemas de compatibilidades.

Personalizar idiomas en WordPress

Hasta hace poco utilizaba el método tradicional de actualización de idiomas para plantillas y plugins en WordPress que expliqué aquí hace un par de años. Sin embargo, últimamente utilizo el plugin Loco Translate que permite la gestión de las traducciones desde dentro de WP sin tener que utilizar programas externos como Poedit.

Uno de los aspectos más delicados es como personalizar un idioma que ya existe para que WordPress no lo sobrescriba cada vez que hay una actualización. Esto es importante si queremos tenemos párrafos con matices de idioma por razones de localización o de temática de nuestra web que no están recogidos en el archivo estándar del idioma: por ejemplo, usar «Ideas» en vez de «Comentarios».

Para solucionarlo, Loco Translate lo explica perfectamente aquí y puede aplicarse tanto si utilizamos el Plugin como si queremos seguir usando el método manual tradicional.

Mis Plugins preferidos en WordPress

Llevo ya 12 años utilizando WordPress y he hecho tantas instalaciones y migraciones que lo conozco como si fuera mi propia casa. Durante todo este tiempo he probado cientos de plugins y esta es la lista de los mejores y más indispensables:

      • All-in-One WP Migration. Probablemente el único plugin que funciona perfectamente cuando tienes que migrar tu WP entre hostings o símplemente si quieres hacer una copia de seguridad con todo (a diferencia de las herramientas nativas de importar/exportar que no copian plugins ni configuraciones ni algunos medios).
      • Akismet Anti-Spam. Imprescindible para detener los comentarios de spam en nuestros posts.
      • Jetpack by WordPress. Incluye varios servicios importantes para que tu sitio web funcione perfectamente. Se incluyen estadísticas, compartición en redes sociales, mejora de rendimiento, botones de Me Gusta, seguridad, etc.
      • WP Offload SES Lite. Se utiliza para conectar WP a AWS Simple Email Service para permitir el envío y recepción de correos. Esta es una alternativa mucho mejor que tener instalado nuestro propio servidor de email para evitar problemas de seguridad.
      • WooCommerce. Es algo más que un plugin. Es el comercio electrónico que más crece ahora mismo. Está repleto de funcionalidades y frente a otros productos como Magento o Prestashop es mucho más fácil de configurar y está nativamente integrado con WP por lo que solo necesitarás una única plataforma para tener tu web, tu eCommerce y tu blog.
      • Login with Ajax. Se utiliza para añadir un widget de login en la librería de widgets de tu sitio. Después de su activación, puedes añadirlo en una de las barras laterales o símplemente para reemplazar la página estándar de login de WP. Tiene un funcionamiento sencillo y limpio.
      • WP User Frontend. Es perfecto para crear formularios y convertir sus datos en posts o páginas. Tiene muchas opciones de configuración y es muy potente y fiable.
      • Site Kit by Google. Sin duda, este es el mejor plugin que puedes instalar para conectar Google Analytics en WordPress. Es mucho mejor que otras opciones, como MonsterInsights, en los cuales cedes el control de tu cuenta de Analytics a empresas externas. Site Kit, además, no solo viene con Analytics sino que también integra Search Console, AdSense y PageSpeed Insights.

Habrás notado que no he añadido nada relacionado con SEO y es que soy un gran amante del posicionamiento natural a base de interacciones, comentarios y actualización de contenido. Las cosas más imprescindibles como los mapas XML ya los genera automáticamente Jetpack.

Cambiar la URL en WordPress con SSH y VIM

Dejando de lado todo el proceso de creación de la URL, configuración de las Hosted Zones y cambios de DNS que es bastante trivial, especialmente si sabes hacerlo, uno de los puntos donde podemos quedar parados es en la página de configuración de WordPress a la hora de cambiar las direcciones. El problema suele ser que no es posible hacerlo desde la propia página y tenemos que ir a cambiar los parámetros al archivo wp-config.php.

Este paso es especialmente crítico cuando añadimos un certificado SSL para securizar nuestra página porque aunque parezca que funciona bien y que aparece el candado junto a la URL en nuestro navegador, el cambio no estará perfectamente finalizado hasta que tengamos las URLs actualizadas en wp-config.php mostrando https en vez de http.

Si disponemos de una conexión SSH, como en mi caso donde utilizo Lightsail de AWS en una instancia de Linux, podemos hacer el cambio usando el editor VIM y realizando los siguientes pasos:

      • Conectar a la cónsola de Linux con SSH
      • Ir al directorio apps/wordpress/htdocs/
      • Abrir el archivo con vim wp-config.php
      • Localizar las líneas define(‘WP_SITEURL’, ‘http://’ . $SERVER[‘HTTPHOST’] . ‘/‘); y define(‘WP_HOME’, ‘http://’ . $SERVER[‘HTTPHOST’] . ‘/‘);
      • Cambiar el texto en rojo con las nuevas URLs o símplemente añadir S al http si hemos instalado un certificado SSL
      • No olvidarse de añadir / al final de la URL.
      • Una vez realizado el cambio, tenemos que pulsar la tecla ESC y después teclear :wq para grabar y salir.
      • Finalmente cerramos la sesión SSH y ya debería estar hecho el cambio.

Si no queremos utilizar VIM, otra opción es hacerlo a través de FTP, accediendo al archivo y modificándo el archivo.

Migrar WordPress de Bluehost a AWS Lightsail

Como comentaba en mi último post, hace unos días terminé de migrar mi blog en WordPress de Bluehost a AWS Lightsail.

Aunque no es tan simple como un «siguiente-siguiente-siguiente», siguiendo algunos detalles clave, se puede completar en unas pocas horas. Estos son los pasos a seguir:

      • Crear una instancia en Lightsail, por ejemplo en Linux, y seleccionar la instalación de WordPress.
      • Una vez creada la instancia, crear una IP fija en vez de la IP dinámica que se asigna por defecto.
      • En Bluehost, instalar el plugin «All-in-One WP Migration«. Lo utilizaremos para realizar una copia de todos los posts, archivos, imágenes, configuraciones, plugins, etc.
      • Crear una copia del contenido de WordPress en Bluehost utilizando el plugin anterior. El archivo tenemos que guardarlo en nuestro ordenador.
      • Ir al WordPress que hemos instalado en Lightsail e instalar «All-in-One WP Migration».
      • Asegurar que hemos creado en el WP de Lightsail los usuarios que utilizaremos posteriormente.
      • Importar el archivo de copia que hemos guardado en nuestro ordenador anteriormente. Probablemente tengamos que descargarnos una extensión del plugin (gratuita) para poder importar archivos grandes.
      • Comprobar con la IP fija de la instancia de Lightsail que todo funciona correctamente, tanto a nivel de lectura como de administrador de WP.
      • Iniciar la migración del dominio desde Bluehost utilizando Route53. Este paso puede durar algunos días.
      • Mientras esperamos que Bluehost autorice el movimiento del dominio, crear las zonas DNS que queramos utilizar en Route53.
      • Una vez que ha finalizado el movimiento del dominio, tenemos que instalar un certificado de seguridad para habilitar HTTPS. Se puede hacer fácilmente a través de un script de Bitnami. Es gratuito.

Y ya está. Algunos de los pasos son algo complejos pero hay mucha información a través de Bitnami por lo que no es excesivamente complicado. Los dos pasos más delicados son la exportación e importación de datos de WP y la transferencia del dominio.