Hola a todos! En esta ocasión, quiero compartirles a ustedes este pequeño tutorial por si alguien trabaja con esta herramienta tan eficaz como lo es Worpress.
A muchos les ha pasado que no saben o no tienen idea de cómo migrar Wordpress a otro servidor, o bien a quienes ya lo hicieron y no les aparece el sitio igual a como lo tenían ya instalado, pues aquí les explico cómo hacerlo. Espero les sirva.
Antes de comenzar a realizar el cambio tienes que tener lo siguiente en tu nuevo servidor donde se alojará el paquete WP.
- Acceso a la base de datos nueva (phpMyAdmin)
- Acceso FTP al servidor nuevo[/i]
Una vez tengamos todo esto vamos al servidor antiguo para realizar los siguientes respaldos:
- Respaldo del directorio wp-content(ALL)
- Respaldo del BD desde phpMyAdmin(ALL)
- Respaldo del archivo wp-config (Directorio Raiz)
Este método se usa en caso de que el dominio cambie, el script hace un barrido de todas las urls y las cambia por la nueva que tu pongas.
Ocuparemos este script que se correrá en la BD en el servidor nuevo.
Código :
UPDATE wp_options SET option_value = REPLACE ( option_value, 'dominioantiguo.com', 'dominionuevo.com' ); UPDATE wp_posts SET guid = REPLACE ( guid, 'dominioantiguo.com', 'dominionuevo.com' ); UPDATE wp_posts SET post_content = REPLACE ( post_content, 'dominioantiguo.com', 'dominionuevo.com' ); UPDATE wp_postmeta SET meta_value = REPLACE ( meta_value, 'dominioantiguo.com', 'dominionuevo.com' );
Ya con esto podemos empezar a realizar el cambio de nuestro sitio al nuevo servidor. Iremos por partes!
Empezar a migrar Wordpress
Importar la BD
Comenzaremos por importar en el servidor nuevo, el archivo .sql del respaldo que obtuvimos del servidor antiguo.
Información de la carpeta wp-content
Crea un usuario de FTP de tu servidor nuevo para poder transferir todo el contenido del sitio. Lo puedes hacer desde tu Cpanel del Hosting. Una vez lo tengas empieza por pasar la información.
http://es.wordpress.org/wordpress-3.8-es_ES.zip
Utiliza cualquier cliente de FTP, yo uso normalmente Filezilla Client.
Editar el archivo wp-config
Este archivo te ayudará a saber que nombre tenía la BD anterior y qué datos de conexión utilizaba, esto con la finalidad de querer subir este archivo al servidor nuevo, pero para esto tienes que tener los mismos datos de conexión y nombre de la BD en el servidor nuevo, si no es así solo cambia los datos en el archivo.
Código :
<?php /** * Configuración básica de WordPress. * * Este archivo contiene las siguientes configuraciones: ajustes de MySQL, prefijo de tablas, * claves secretas, idioma de WordPress y ABSPATH. Para obtener más información, * visita la página del Codex{@link http://codex.wordpress.org/Editing_wp-config.php Editing * wp-config.php} . Los ajustes de MySQL te los proporcionará tu proveedor de alojamiento web. * * This file is used by the wp-config.php creation script during the * installation. You don't have to use the web site, you can just copy this file * to "wp-config.php" and fill in the values. * * @package WordPress */ // ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** // /** El nombre de tu base de datos de WordPress */ define('DB_NAME', 'nombre_de_la_Base_de_datos'); /** Tu nombre de usuario de MySQL */ define('DB_USER', 'usuario'); /** Tu contraseña de MySQL */ define('DB_PASSWORD', 'password'); /** Host de MySQL (es muy probable que no necesites cambiarlo) */ define('DB_HOST', 'localhost'); /** Codificación de caracteres para la base de datos. */ define('DB_CHARSET', 'utf8'); /** Cotejamiento de la base de datos. No lo modifiques si tienes dudas. */ define('DB_COLLATE', ''); /**#@+ * Claves únicas de autentificación. * * Define cada clave secreta con una frase aleatoria distinta. * Puedes generarlas usando el {@link https://api.wordpress.org/secret-key/1.1/salt/ servicio de claves secretas de WordPress} * Puedes cambiar las claves en cualquier momento para invalidar todas las cookies existentes. Esto forzará a todos los usuarios a volver a hacer login. * * @since 2.6.0 */ define('AUTH_KEY', '!XAu<D122G}*9`=iq|v>1zitFX>GG~3@0z&$TQt3kWl{}vhCh& g9A6*] g5Sek_'); // Cambia esto por tu frase aleatoria. define('SECURE_AUTH_KEY', 'nxR[h|>Z~oFDFA/CVxj++gnb6gg+G@?#6[>M[;2Tgzju6$/:y@Gx3=F3W4+57iml'); // Cambia esto por tu frase aleatoria. define('LOGGED_IN_KEY', '34)k2B-}*;3(zR-ptQo-kUc/f*Jm39U.Eh<@T-Lq[u<r[s.Ct%KTd6sBEkmUl$L<'); // Cambia esto por tu frase aleatoria. define('NONCE_KEY', 'M+6!G*K.`x*@C}D`*-|.kHalj]!+InWB*j*0tB#Z^{!G{6q8)0gP%&c M$A8}4ql'); // Cambia esto por tu frase aleatoria. define('AUTH_SALT', 'B|q0Rus!K[{hEoQpr|u2f!-,{W=7`iGK$+`S|a}@Q3Qj)tAV024a:mmcrE_v_13U'); // Cambia esto por tu frase aleatoria. define('SECURE_AUTH_SALT', '9$VST;@*?LP:gm3AxSfCC wwo:ce&J#?n/v0|bb`pJC{:3~NS~}LHC5|| [5V-_m'); // Cambia esto por tu frase aleatoria. define('LOGGED_IN_SALT', '8=8iX6)O}|Hr;CIUrbC3*?a2ueMq<Yk+^(7v>yxZ$bWH|Wn<!eI3.9Ko/EZ)vB$-'); // Cambia esto por tu frase aleatoria. define('NONCE_SALT', '*mMrFHL??D4n=_8U6%-wLV?PX3OwIc>int?SU%t.?~AtV2?OF41uOep$xrH{Ldij'); // Cambia esto por tu frase aleatoria. /**#@-*/ /** * Prefijo de la base de datos de WordPress. * * Cambia el prefijo si deseas instalar multiples blogs en una sola base de datos. * Emplea solo números, letras y guión bajo. */ $table_prefix = 'tbl_'; /** * Idioma de WordPress. * * Cambia lo siguiente para tener WordPress en tu idioma. El correspondiente archivo MO * del lenguaje elegido debe encontrarse en wp-content/languages. * Por ejemplo, instala ca_ES.mo copiándolo a wp-content/languages y define WPLANG como 'ca_ES' * para traducir WordPress al catalán. */ define('WPLANG', 'es_ES'); /** * Para desarrolladores: modo debug de WordPress. * * Cambia esto a true para activar la muestra de avisos durante el desarrollo. * Se recomienda encarecidamente a los desarrolladores de temas y plugins que usen WP_DEBUG * en sus entornos de desarrollo. */ define('WP_DEBUG', false); /* ¡Eso es todo, deja de editar! Feliz blogging */ /** WordPress absolute path to the Wordpress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); ?>
Una vez tengas realizado esto, tu sitio debería estar igual a como lo tenías en el antiguo server.
Espera les haya gustado y les sirva de mucho para todos aquellos que lo necesiten.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Carlos el 23 de Enero de 2014
El plugin se llama Duplicator.
Saludos.
Por kakashi2000 el 23 de Enero de 2014
Saludos
Por LCoronelP el 24 de Enero de 2014
Allí todo se fue a la porra. ¿Por qué? Pues porque los datos serializados en PHP guardan los elementos (sean objetos, arrays, strings etc) en un solo string y con este método, los dañamos.
El PHP lo hace transcribiendo el tipo de elemento, la longitud de sus contenidos y los contenidos (la explicación es mucho más larga que esa pero creo que es mejor dejarlo así en este comentario).
Poniendolo facil:
serialize("google.com")
devolverá:
s:10:"google.com";
Analizándolo:
s es de STRING
10 es la longitud del texto ("google.com" tiene 10 caracteres)
"google.com" es el texto en el string
Supongamos que este resultado se guarda en una tabla de mysql para ser usado posteriormente, si utilizamos los REPLACE antes escritos cambiando "google.com" por "facebook.com" por ejemplo, el contenido quedaría s:10:"facebook.com"; cuando realmente debería ser s:12:"facebook.com";
Ya que serializar un String en un String es bastante tonto, normalmente se serializan Arrays u Objetos con Arrays, Integers, Strings, otros Objetos etc. de forma anidada.
Y acá es donde falla todo. Cuando se va a deserializar, el PHP se vuelve loco con estas inconsistencias y zas, error.
¿Como corregirlo?
La solución vendría por deserializar los contenidos serializados, modificarlos y volverlos a serializar o calcular la nueva longitud del string modificado y modificar el número que indica la longitud en cada aparición del texto... que lío ¿no?
Cuando me di cuenta de esto, por suerte encontré este código que facilita (mucho) todo este traslado. (Y lo mejor es que lo pueden estudiar y analizar si sois, como yo, bastante escépticos con los códigos que ejecuto)
Saludos y muy buen post!
Por telurico el 24 de Enero de 2014
Por disenowebogota el 06 de Marzo de 2014
Por cristhian cordob el 09 de Junio de 2014
Por umiki el 04 de Noviembre de 2015
Por kakashi2000 el 06 de Noviembre de 2015
Saludos
Por Alex el 31 de Diciembre de 2015
Por kakashi2000 el 31 de Diciembre de 2015
Por daniredplanet el 18 de Mayo de 2016
Por israel el 09 de Junio de 2016
Por Andresger el 28 de Septiembre de 2016