Migrar un sitio WordPress puede parecer una tarea compleja y delicada, pero siguiendo estos pasos puede ser llevada a cabo sin necesidad de plugins y de forma sencilla.
Importante siempre hacer backup de la base de datos.
Tabla de Contenidos
Mover archivos
Se trata de copiar los archivos en el servidor de origen al de destino, la forma de hacerlo no influye, yo suelo hacerlo vía rsync, pueden ver cómo hacerlo acá: https://blog.cesarmansilla.com.ar/sincronizar-archivos-entre-servidores/
Las otras opciones pueden ser: manual vía copy / paste, FTP, deploy automático, vía Git, etc.
Migrar base de datos
Este proceso va a depender de cual sea la interfaz con la que trabajemos con la base de datos, puede ser con phpMyAdmin, por terminal, vía SSH, etc.
El objetivo obtener el archivo .sql con la estructura y datos. En este punto debo aclarar que WordPress almacena URLs absolutas en base de datos. Es por eso que luego de exportarla debemos actualizar las URLs según corresponda.
Nuevamente contamos con varias opciones para llevar a cabo esto, podemos abrir el archivo con un editor de texto o código y hacer una búsqueda y reemplazo masiva.
Otra alternativa es importar el archivo .sql en la base de datos y hacer el reemplazo con esta query, sólo es cuestión de cambiar según corresponda http://www.oldurl
y http://www.newurl
.
UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl', 'http://www.newurl'); UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl','http://www.newurl');
Esto ya es parte de la configuración propia de WordPress, y se hace editando el archivo wp-config.php, cambiando los valores de las siguientes líneas según corresponda:
/** The name of the database for WordPress */ define('DB_NAME', '[nombre_base_de_datos]'); /** MySQL database username */ define('DB_USER', '[usuario_base_de_datos]'); /** MySQL database password */ define('DB_PASSWORD', '[contraseña_base_de_datos]'); /** MySQL hostname */ define('DB_HOST', '[servidor_base_de_datos]');
Configurar htaccess
Este es otro archivo necesario para el correcto funcionamiento de WordPress, lo que debemos ver de cambiar acá son las líneas que en el ejemplo dicen /path-local/, debemos colocar allí la ruta a nuestra instalación.
Lo más común en entornos locales o de desarrollo es el nombre de la carpeta, y en entornos de producción es dejar una sola barra ( / ).
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /path-local/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /path-local/index.php [L] </IfModule> # END WordPress