Instalar un servidor web LEMP (III). Migrando WordPress

Tras instalar el sistema operativo base (Debian 9 Stretch) y los servidores (MySQL y nginx) y configurarlos, el siguiente paso es migrar las dos instalaciones de WordPress.

Esta es la tercera entrada de un conjunto de entradas relacionadas, en las que explico cómo instalar un servidor web LEMP con WordPress y Let’s Encrypt en Debian 9 Stretch.

  1. Instalación y configuración del sistema operativo.
  2. Instalación y configuración del MySQL, nginx y PHP.
  3. Migración de WordPress desde el servidor antiguo al nuevo.
  4. Obtención y configuración de un certificado SSL/TLS de Let’s Encrypt.

Convenciones

# – indica que el comando que viene a continuación tiene que ser ejecutado con permisos de root directamente con el usuario root o mediante el comando sudo.
$ – indica que el comando que viene a continuación puede ser ejecutado por un usuario normal sin privilegios de administración.

Servidor antiguo

Lo primero que hago es conectarme por SSH a la máquina donde están los WordPress en funcionamiento y crear el backup de los archivos y de la base de datos. Hasta que los restaure en la nueva máquina y se propaguen los DNS tendré una ventana temporal en la que los comentarios y las modificaciones en el sitio no se verán reflejadas en el nuevo servidor, por lo que posiblemente la mejor opción, tras realizar la copia de seguridad, sea poner el sitio en mantenimiento mediante un plugin como puede ser el Maintenance. En este vídeo explico cómo usarlo.

# tar czvf wordpress-example_com.tar.gz /var/www/example_com/wordpress/
# mysqldump -uroot -p example_com > example_com.sql

Y copio los dump al servidor destino (example.com) mediante scp, usando el usuario remoto “amieiro”. En este servidor es donde van a estar los nuevos WordPress.

# scp wordpress-example_com.tar.gz amieiro@example.com:/home/amieiro/
# scp -P 32917 example_com.sql amieiro@example.com:/home/qperico/

Tengo que hacer lo mismo con todos los sitios que quiero migrar.

Servidor nuevo

Tras copiar las copias de seguridad, me conecto por SSH al equipo donde van a estar los nuevos WordPress (example.com).

Creo la base de datos para el sitio (example_com), creo un usuario con acceso solo local para este sitio (example_com@localhost) y  le concedo a este usuario permiso completo para la base de datos creda.

# mysql -u root -p -e "CREATE DATABASE example_com CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'example_com'@'localhost' identified by 'contraseña'; GRANT ALL PRIVILEGES ON example_com.* TO example_com@localhost; FLUSH PRIVILEGES;"
Enter password:

Compruebo que la base de datos se haya creado.

# mysql -u root -p -e "show databases;"
 Enter password:
 +--------------------+
 | Database |
 +--------------------+
 | information_schema |
 | example_com |
 | mysql |
 | performance_schema |
 | sys |
 +--------------------+

Compruebo los permisos del usuario creado.

# mysql -u root -p -e "show grants for 'example_com'@'localhost';"
 Enter password:
 +------------------------------------------------------------------------------+
 | Grants for example_com@localhost |
 +------------------------------------------------------------------------------+
 | GRANT USAGE ON *.* TO 'example_com'@'localhost' |
 | GRANT ALL PRIVILEGES ON `example_com`.* TO 'example_com'@'localhost' |
 +------------------------------------------------------------------------------+

Restauro la copia de seguridad de la base de datos.

# mysql -u root -p example_com < /home/amieiro/example_com.sql
 Enter password:

Borro la copia de seguridad de la base de datos.

# rm /home/amieiro/example_com.sql

En este momento ya tengo restaurada la copia de seguridad de la base de datos MySQL.

Lo siguiente es restaurar la copia de seguridad de los datos.

Antes de continuar borro la carpeta “wordpress” creada previamente, ya que la voy a volver a crear al restaurar la copia de seguridad.

# rm /var/www/example_com/wordpress

Muevo la copia de seguridad al directorio donde estará la carpeta “wordpress” que se creará al descomprimir la copia de seguridad.

# cd /var/www/example_com/
# mv /home/qperico/wordpress-example_com.tar.gz .

Descomprimo la copia de seguridad, que automáticamente restaura el sitio dentro de la carpeta “wordpress”, tal y como lo tenía en el servidor antiguo.

# tar xzvf wordpress-example_com.tar.gz

Borro la copia de seguridad.

# rm wordpress-example_com.tar.gz

Actualizo el usuario/grupo al que pertenece la carpeta y los permisos.

# chown example_com.example_com wordpress/ -R
# chmod 775 wordpress/ -R

Para finalizar solo me queda actualizar los DNS, de tal forma que mientras el DNS siga aputando al servidor antiguo el sitio aparecerá en mantenimiento, mientras que cuando apunte al nuevo servidor todo aparecerá como de costumbre.

Leave a Reply

Your email address will not be published. Required fields are marked *