Migrar el sitio wordpress manualmente

Tras una rápida búsqueda para encontrar información sobre cómo migrar un sitio wordpress manualmente me di cuenta de que la mayoría de las soluciones utilizaban algún tipo de plugin. Me gusta hacer las cosas por las malas, así que decidí migrar todos los datos manualmente y quiero compartir todos los pasos que hice por si a alguien le resultan útiles.

El objetivo de esta entrada es sólo detallar los pasos necesarios para migrar el sitio wordpress de un host a otro. No describiré cómo instalar wordpress en el nuevo host.

He migrado mi sitio wordpress de una VM que se ejecutaba en Hetzner a otra VM que se ejecuta en Oracle Cloud (ambas VM ejecutan la misma versión del SO).

Requisitos

  • WordPress tiene la misma versión en ambas máquinas virtuales
  • MySQL está ejecutando la misma versión en ambas máquinas virtuales
  • PHP ejecuta la misma versión en ambas máquinas virtuales
  • Apache2 está ejecutando la misma versión en ambas máquinas virtuales

Pasos en la máquina virtual de origen

  • Detener el servidor apache2
systemctl stop apache2
  • Crea una copia de seguridad de la base de datos
mysqldump -u root --database <wordpress_database> -p > wordpress_dump.sql

El comando anterior te pedirá la contraseña del usuario root de la instancia MySQL. Ten en cuenta que debes sustituir <wordpress_database> por el nombre de la base de datos configurada en wordpress.

  • Comprime la carpeta donde se encuentra la instalación del sitio wordpress. En mi caso, es /var/www/wordpress
tar cfz wordpress.tar.gz /var/www/wordpress
  • Copia el archivo wordpress_dump.sql y el archivo tar del sitio wordpress a la VM de destino
scp wordpress_dump.sql <user>@<vm_destination_ip>:
scp wordpress.tar.gz <user>@<vm_destination_ip>:

Ten en cuenta que hay que sustituir <user> y <vm_destination_ip >

Pasos en la VM de destino

  • Conéctate a la instancia MySQL, crea la base de datos, crea el usuario wordpress y concede los permisos necesarios
mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER wordpress@localhost IDENTIFIED BY '<PASSWORD>';
GRANTS ALL PRIVILEGES ON wordpress.* TO wordpress@localhost;
  • Importa todos los datos a la base de datos
mysql -u root -p wordpress < wordpress_dump.sql
  • Copia los archivos del sitio wordpress a la ruta deseada
tar xfz wordpress.tar.gz
cp -R wordpress /var/www
  • Habilita los plugins necesarios en apache2
a2enmod ssl
a2enmod rewrite
  • Reinicia apache
systemctl restart apache2

Espero que estos pasos te resulten útiles. No dudes en hacer cualquier pregunta en la sección de comentarios.

¡Nos vemos en el próximo post!

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *