¿Cómo mover fácilmente una instalación de WordPress del entorno de desarrollo a producción?

12 ago 2010, 00:54:41
Vistas: 62.7K
Votos: 214

Realizo el desarrollo en un servidor y uso un segundo para producción. Actualmente solo hago un volcado de la base de datos y luego busco y reemplazo los cambios de URL; después copio los archivos y importo el nuevo SQL.

¿Hay mejores formas de hacer esto?

4
Comentarios

Para los recién llegados a la pregunta. 1 año después y todavía estoy usando el plugin de @MikeSchinkel. Tiene una versión 0.7 a la que he migrado un par de instalaciones sin problemas. http://mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip

Ryan Gibbons Ryan Gibbons
26 ago 2011 23:35:54

Aquí hay un script sin plugins que he publicado y que ha ayudado mucho a mi proceso. http://philipdowner.com/2012/01/script-to-make-wordpress-site-migrations-easier/

Philip Downer Philip Downer
17 ene 2012 04:12:55

Hoy en día, existe un plugin llamado Duplicator: http://wordpress.org/extend/plugins/duplicator/ Es literalmente un proceso de tres pasos y funciona de maravilla. Lo he usado múltiples veces ya para desplegar un sitio web desde un entorno de pruebas a uno en producción.

Matthias Matthias
30 jul 2012 15:04:00
Todas las respuestas a la pregunta 27
13
127

@Insanity5902: La implementación de un sitio WordPress de un servidor a otro ha sido un dolor de cabeza desde el primer día que empecé a trabajar con WordPress. (A decir verdad, también fue un dolor con Drupal durante 2 años antes de empezar con WordPress, así que el problema ciertamente no es exclusivo de WordPress).

Me molestaba que cada vez que necesitaba mover un sitio tenía que dedicar tanto esfuerzo, a menudo duplicado, y eso me impedía desplegar en entornos de prueba con la frecuencia que hubiera preferido. Así que hace unos 4-6 meses empecé a trabajar en un plugin para resolver el problema de migración de hosting y mencioné mis ideas en el foro de WP Tavern.

Avancemos hasta hoy y básicamente lo tengo funcionando, y lo llamo convenientemente "WP Migrate Webhosts". Aunque el plugin todavía está en fase beta (probablemente incluso alpha), dada tu pregunta creo que estoy listo para que la gente empiece a probarlo.

El caso de uso previsto es:

  1. Primero el desarrollador sube todos los archivos modificados de temas y plugins vía FTP,
  2. luego carga la base de datos MySQL de desarrollo al servidor de pruebas en su totalidad y finalmente
  3. después ejecuta el plugin para migrar cualquier referencia del dominio anterior al nuevo. (Mi plugin no intenta resolver la fusión de nuevos campos o tablas de la base de datos con datos en vivo; ESO es un problema mucho más grande que no estoy seguro cómo resolver).

Puedes descargar el plugin desde mi sitio web y descomprimirlo en tu directorio de plugins (si no sabes cómo hacer esto, entonces este plugin no es para ti, porque requiere que alguien que sabe lo que está haciendo lo use). Mantendré este plugin en línea hasta que lo publique en WordPress.org, después de lo cual deberías buscarlo allí.

Para usarlo, tomas un enfoque diferente en tu wp-config.php al normal, comentando los cuatro (4) defines DB_NAME, DB_USER, DB_PASSWORD y DB_HOST y en su lugar registrando los valores predeterminados para los hostings y luego registrando información sobre cada hosting en sí. Así es como se vería ese segmento de wp-config.php (nota que la primera sección es el código innecesario comentado y también que configuré mi archivo hosts en mi máquina local con dominios de primer nivel .dev no enrutables para facilitar el desarrollo diario. En Mac VirtualHostX hace esto muy fácil):

// ** Configuración de MySQL - Puedes obtener esta información de tu hosting ** //
/** El nombre de la base de datos para WordPress */
//define('DB_NAME', 'wp30');

/** Usuario de la base de datos MySQL */
//define('DB_USER', 'wp30_anon');

/** Contraseña de la base de datos MySQL */
//define('DB_PASSWORD', '12345');

/** Hostname de MySQL */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' si WordPress está instalado en la raíz
));
register_webhost('dev',array(
 'name'      => 'Ejemplo Desarrollo Local',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Ejemplo Servidor de Pruebas',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Ejemplo Servidor de Staging',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Ejemplo Sitio en Vivo',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

Espero que esto sea (en su mayoría) autoexplicativo. Intenté hacer el código lo más limpio posible, pero desafortunadamente requiere esas dos líneas crípticas require_once() antes y después del bloque de registro de hostings, ya que no había forma de "engancharme" a WordPress antes de que se llame a wp-config.php.

Una vez que hayas actualizado tu wp-config.php, simplemente puedes usar el acceso directo de URL wp-migrate-webhosts para ir a la pantalla de administración así:

http://example.com/wp-migrate-webhosts

Lo anterior te llevará a una pantalla de administración como la siguiente, que tiene bastante texto descriptivo y te permite migrar DESDE cualquiera de los otros dominios de hosting con un solo clic después de seleccionar los dominios desde los cuales migrar (NOTA: este ejemplo muestra ir DESDE servidores de prueba/staging/producción hacia desarrollo local, pero ten la seguridad de que puede migrar A cualquier dominio donde se encuentre. ¡Esto también significa que el plugin será genial para tomar un sitio en vivo existente y rápidamente conseguir un entorno de desarrollo local funcionando!):

Pantalla de administración del plugin WP Migrate Webhosts

Por si no queda claro, "migración" en este contexto significa actualizar todas las referencias en la base de datos actual para que sean apropiadas para el hosting actualmente definido (y "actual" se detecta inspeccionando $_SERVER['SERVER_NAME']).

Lo genial de este plugin es que implementa algunas migraciones básicas, pero cualquiera puede engancharse y realizar sus propias migraciones. Por ejemplo, si añades un plugin de galería que almacena rutas completas a imágenes en la base de datos, podrías engancharte a la acción migrate_webhosts, a la que se le pasará el hosting "desde" y el hosting "hacia" cada uno como un array de metadatos, y podrás realizar lo que necesites en la base de datos usando SQL o cualquier función de la API de WordPress para hacer la migración. Sí, cualquiera de nosotros podría hacer esto sin el plugin, pero sin él, encontré que escribir todo el código necesario era más esfuerzo del que valía la pena. Con el plugin, es más fácil escribir estos pequeños hooks y terminarlo.

También podrías encontrar que mis migraciones fallan en casos extremos que no he probado, ¿y tal vez puedas ayudarme a mejorar el plugin? Cualquiera que quiera puede enviarme un correo a mi cuenta de gmail (mi alias es "mikeschinkel.")

Además, el plugin fue diseñado para aceptar metadatos de hosting definidos por el usuario, además de los que reconoce, como database, user, password, host, domain, etc. Un ejemplo perfecto podría ser googlemaps_apikey, donde puedes almacenar las diferentes claves API para cada dominio que tu plugin de Google Maps necesita para funcionar correctamente (¿quién de los que ha usado un plugin de Google Maps no ha desplegado una aplicación en un servidor en vivo y se ha olvidado de cambiar el código a la clave API correcta? Vamos, sé honesto... :) Con este plugin, un elemento googlemaps_apikey en tu array register_webhost() y un pequeño hook personalizado migrate_webhosts, ¡puedes eliminar eso como una preocupación!

Bueno, eso es todo. Estoy lanzando este plugin aquí en WordPress Answer's Exchange porque la pregunta de @Insanity5902 lo desencadenó. Déjame saber si es útil, aquí si es apropiado o por correo si no.

P.D. Si decides usar esto, recuerda que está en fase alpha/beta y eso significa que cambiará, así que prepárate para una pequeña cirugía si quieres usarlo ahora y luego usar la versión publicada una vez que haya sido probada por muchas manos.

P.P.D. ¿Cuáles son mis objetivos con esto? Me encantaría ver esto migrar al núcleo de WordPress para que todos tengan acceso a él. Pero antes de que eso pueda considerarse, mucha gente tiene que estar interesada en usarlo para asegurar que realmente resuelve más problemas de los que potencialmente podría crear. Así que si te gusta la idea, por supuesto úsalo y ayúdame a ganar impulso para una eventual y esperada inclusión en el núcleo de WordPress.

12 ago 2010 08:33:19
Comentarios

Buenas soluciones, tengo un par de preguntas: 1) ¿Todavía necesitas definir WP_SITEURL para acceder al área de administración? 2) ¿La herramienta se muestra solo para usuarios Administradores? (no estoy seguro si la sección de Herramientas se muestra para no administradores)

Ryan Gibbons Ryan Gibbons
12 ago 2010 18:14:57

Hola @Insanity5902:

1) No es necesario configurar WP_SITEURL, el plugin lo hace por ti. En realidad lo estás configurando cuando "registras" un "dominio" y "sitepath" para un alojamiento web. En el funcionamiento normal de WordPress, WP_SITEURL debe configurarse ya sea en el código o en la base de datos para garantizar que nadie falsifique la URL y haga cosas nefastas debido a un valor inesperado en $_SERVER['SERVER_NAME']. El plugin WP Migrate Websites configura WP_SITEURL indirectamente basándose en $_SERVER['SERVER_NAME'], pero SOLO lo hará si el dominio actual coincide con uno de los dominios que has definido en tu archivo wp-config.php, nada más.

MikeSchinkel MikeSchinkel
12 ago 2010 19:32:03

2) El acceso directo de URL que mencioné en realidad realiza una redirección a la consola de administración, por lo que es solo para personas que han iniciado sesión en el administrador. Todavía no tengo verificaciones específicas integradas solo para administradores. Nunca he añadido capacidades a un plugin, pero necesitaré investigar completamente cómo hacerlo en las próximas semanas, así que puedo trabajar en eso durante el próximo mes. Sin embargo, el plugin no es destructivo; SOLO puede migrar al dominio actual y el proceso es repetible, por lo que incluso si un no administrador accediera, realmente no podría hacer ningún daño con él, al menos no que yo pueda imaginar.

MikeSchinkel MikeSchinkel
12 ago 2010 19:32:50

@Mike: ¿Podrías agregarlo al repositorio de plugins de WordPress? Creo que eso generaría retroalimentación adicional y apoyo de desarrolladores.

hakre hakre
20 ago 2010 12:40:39

@harke - Planeo hacerlo cuando esté más maduro. Quiero que lo usen entre 5-10 personas para asegurarme de que sea robusto y validar que los casos de uso sean correctos antes de exponerlo al sistema de calificaciones del foro de plugins, ya que creo que este plugin tiene potencial para ser importante si se gestiona adecuadamente. También quiero documentarlo completamente antes de publicarlo, y la documentación me obligará a validar muchas de las suposiciones que hice durante el desarrollo.

MikeSchinkel MikeSchinkel
21 ago 2010 04:23:33

Gracias por crear este plugin. Lo estoy probando en este momento y parece funcionar muy bien. Me encantaría enviarte comentarios, ¿cuál es el mejor lugar para hacerlo?

Sam Murray-Sutton Sam Murray-Sutton
16 dic 2010 13:47:11

@Sam Murray-Sutton - Veo en mi bandeja de entrada que descubriste cómo enviarme un correo electrónico, pero si otros quieren hacerlo, mi correo está en mi página de perfil.

MikeSchinkel MikeSchinkel
16 dic 2010 20:12:41

Definitivamente voy a probar esto. Actualmente estoy configurando mi primer entorno completo y espero poder vincular esto con mi repositorio de Bitbucket. De todos modos: Muchas gracias por a) explicar bien (de nuevo) y b) compartir cosas geniales (de nuevo). ¡Te deseo lo mejor, Mike!

kaiser kaiser
20 ene 2011 10:08:56

Este es esencialmente el mismo proceso que seguimos con nuestro wp-config.php. Poder implementar código en un servidor de staging sin arruinar todo es la única forma de trabajar. No hacemos pull y push de la base de datos a través de WP, lo hacemos con un cliente mysql, que es igual de efectivo, aunque un poco más lento.

Tom Tom
20 abr 2011 18:23:18

@mike ¿cómo podría usar este método para migrar un solo sitio fuera de una configuración multisitio (local)?

Marja Marja
11 mar 2011 10:00:02

@MikeSchinkel - quizás podrías incluir esto también: http://wordpress.stackexchange.com/questions/24314/wordpress-database-synch-between-dev-and-prod/24982#24982

marfarma marfarma
5 ago 2011 08:30:58

/wp-migrate-webhosts produce un error 404, y /wp-admin muestra 'error al establecer la conexión con la base de datos'

Steve Steve
11 oct 2012 04:37:23

Entonces, ¿cuál es el estado actual de este plugin? Parece muy atractivo, pero me gustaría algo maduro y bien probado. Esta publicación es la única información que puedo encontrar al respecto.

Kevin C. Kevin C.
1 nov 2012 20:27:23
Mostrar los 8 comentarios restantes
6
39

Cuando es posible, configuro WP_HOME y WP_SITEURL en el archivo wp-config.php. Esto, combinado con un volcado e importación de la base de datos, es la solución más simple de todas las que conozco.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

12 ago 2010 04:48:58
Comentarios

¿Cuándo no sería posible configurar estos? Esto suena un poco más simple que cambiar cosas en la base de datos.

jfklein jfklein
20 oct 2011 17:10:49

@jfklein Casi siempre trabajo con una Red de WordPress, que es incompatible con estas constantes.

User User
20 oct 2011 20:44:54

Haciendo lo mismo. Lamentablemente, no todos los temas respetan esto. Por ejemplo, 'Responsive Theme' de ThemeID. Buscar en el volcado/todas las tablas por 'http://localhost' (o el nombre local que hayas elegido), especialmente en wp_options y hacer búsquedas y reemplazos suele ser inevitable.

Frank N Frank N
26 may 2013 11:42:50

@FranKee He creado un plugin https://wordpress.org/plugins/pitta-migration/ que usa las constantes para actualizar la tabla wp_options, lo cual debería cubrir la mayoría de temas y plugins

icc97 icc97
21 ago 2015 13:39:36

@icc97: Genial. Le echaré un vistazo. PD: Bonita imagen de cabecera, retrata bien la situación.

Frank N Frank N
21 ago 2015 15:05:14

@FranKee ¡salud! :)

icc97 icc97
22 ago 2015 23:42:18
Mostrar los 1 comentarios restantes
3
29

Mi truco favorito; agregar una configuración a tu /etc/hosts para que el dominio de producción apunte a tu máquina de desarrollo, solo en tu equipo. Para implementar en producción, sincronizas todos los archivos con rsync y transfieres la base de datos.

Los riesgos de esta estrategia son claros; podrías confundir tu entorno de desarrollo con el de producción.

Aún así, es una solución fácil.

2 mar 2011 21:33:55
Comentarios

¡Sí! ¡Me alegra no ser el único que pensó en eso! Cualquier diferencia entre desarrollo y producción es mala. Eliminar esa diferencia por completo es mucho mejor que tratar de solucionarla. Y esta configuración no requiere ningún trabajo. Incluso se pueden hacer pruebas en una máquina virtual con un archivo hosts modificado si es necesario.

Alexander Bird Alexander Bird
21 nov 2011 21:19:37

Me gusta mucho este método, pero ¿cómo manejas el empuje/extracción de la base de datos?

Joel Peltonen Joel Peltonen
26 abr 2015 23:41:51

En cuanto al riesgo de confundir desarrollo con producción, uso un complemento de Chrome que muestra la dirección IP de la página web. Sabrás que estás en local cuando sea 127.0.0.1

kosinix kosinix
12 may 2016 03:12:55
0
10

Quería algo similar cuando migré a WP hace unos meses, así que escribí un script de shell bastante simple que utiliza rsync y mysqldump sobre ssh:

http://snarfed.org/sync_wordpress

No es sofisticado ni basado en web, pero estoy contento con él.

31 ago 2010 19:28:10
4

WP Engine es un nuevo servicio que ofrece "Entorno de Pruebas con Un Solo Clic":

WPEngine tiene una función exclusiva llamada "staging". Así es como funciona: Antes de realizar un cambio riesgoso en tu blog, haz clic en el botón "snapshot". Creamos una copia completa de tu blog y la configuramos en un área separada y segura. Puedes hacer cualquier modificación; nada estará en vivo. Solo cuando estés listo para publicar los cambios, los aplicas en tu sitio principal.

Parece una forma muy sencilla de pasar rápidamente del desarrollo a producción, especialmente con un sitio que ya está en vivo.

12 ago 2010 18:32:29
Comentarios

¡Esa es una opción realmente muy buena y será excelente para mucha gente! Por supuesto, no funciona para URLs incrustadas ni ayuda a las personas que desarrollan localmente para que puedan usar un IDE con un depurador. Ahora, si WPEngine puede crear una interacción que también combine un despliegue local, entonces realmente será algo increíble (¿Technosailor, estás escuchando?)

MikeSchinkel MikeSchinkel
12 ago 2010 19:35:18

De acuerdo, eso sería una adición fantástica.

Travis Northcutt Travis Northcutt
20 ago 2010 14:55:07

La función de snapshot copia únicamente desde producción a staging, no al revés. Es genial para probar cambios, pero no ayudará para implementar en producción.

sam sam
2 may 2013 23:44:13

@sam en realidad, recientemente comenzaron a implementar la capacidad de copiar desde staging a producción. http://wpengine.com/2013/04/user-portal-v2-and-staging-to-production/

Travis Northcutt Travis Northcutt
2 may 2013 23:56:48
0

Plugin Duplicator: Aquí hay un plugin en el que he estado trabajando. Actualmente está en fase beta pero cumple su función en la mayoría de los sitios. Por ahora está orientado a instalaciones pequeñas de WordPress. http://wordpress.org/extend/plugins/duplicator/

Recursos: Puedes encontrar recursos adicionales para el plugin aquí: http://lifeinthegrid.com/duplicator/

Comunidad: ¡Por favor, háznos saber sobre tus éxitos o cualquier problema que puedas encontrar! Para gestionar mejor los diferentes hilos, por favor publica los problemas en los foros de plugins de WordPress.org. No publiques ningún dato de registro del plugin en los foros públicos. Los datos de registro pueden enviarse a nuestro sitio de soporte.

16 mar 2012 16:46:45
0

Podrías echar un vistazo a un producto de iThemes llamado BackUpBuddy. Solo lo he usado un par de veces, cada vez tuve algún problemilla, pero en general parece prometedor.

20 ago 2010 14:01:59
0

A partir del 2017, estas son las dos mejores formas que he encontrado para manejar la transferencia de una base de datos de WordPress desde el desarrollo a producción.

WP Migrate DB Pro / WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

Estos plugins de WordPress te permiten empujar, jalar y sincronizar tablas de bases de datos entre instalaciones de WordPress. Esto es mucho mejor que un buscar/reemplazar por muchas razones porque:

  • Exporta tu base de datos como un volcado de datos MySQL (similar a phpMyAdmin)
  • Realiza un buscar y reemplazar en URLs y rutas de archivos
  • Maneja datos serializados
  • Te permite guardarlo en tu computadora como un archivo SQL

Soy partidario de que se pague por el trabajo que uno hace, así que te recomiendo que apoyes al Sr. Brad Touesnard y compres una licencia del producto original. WP Sync DB es una réplica y siempre está atrasado en soporte como resultado. Con este plugin el proceso es extremadamente simple:

  1. Instala/activa el plugin en tu localhost y entorno de producción
  2. Configura una transferencia de empuje desde tu localhost/servidor de desarrollo a tu producción
  3. Llena las reglas sobre qué tablas transferir y define reglas de buscar y reemplazar a realizar
  4. ¡Eso es todo!

Database Search & Replace for WordPress Databases by InterconnectIT

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Esta herramienta gratuita no es un plugin, sino que se instala en el directorio raíz de tu instalación de WordPress en producción. No es tan buena como WP Migrate DB Pro porque requiere algunos pasos manuales, pero aún así es una gran opción que funciona consistentemente. Cuando usas este enfoque el proceso es así:

  1. Haz una copia de seguridad de tu base de datos local, esto es absolutamente necesario ya que la reimportaremos pronto
  2. Añade el script a una carpeta en el directorio raíz de tu instalación
  3. Ejecuta el buscar y reemplazar en tu base de datos
  4. Exporta tu base de datos y guárdala para tu entorno de producción
  5. Reimporta tu copia de seguridad del paso #1 para restaurar tu localhost
  6. Conéctate a tu base de datos de producción y haz una copia de seguridad (como siempre deberías hacer antes de estas cosas)
  7. Importa la exportación que hicimos DESPUÉS de ejecutar la rutina de buscar/reemplazar del paso #4

Puedes usar un enfoque más rápido, pero implica tiempo de inactividad para tu sitio en producción, lo cual en mi opinión es inaceptable. Por algo le llamamos producción, ¿verdad?

24 feb 2017 18:02:52
1

Esto parece prometedor. Estamos trabajando en algunos scripts para manejar la migración de algunos datos, como wp-options, cambiando rutas en la base de datos y copiando medios.

El problema que tengo es que el sitio en vivo sigue creciendo mientras el otro está en desarrollo. Un sitio en el que trabajamos tiene 20 publicaciones al día y más de 3,000 comentarios diarios. Eso es demasiada información para mover con phpmyadmin o mediante la línea de comandos. Además, mover los datos siempre causa problemas de UTF por alguna razón.

También, ahora que parece que las opciones de menú se almacenan en la base de datos, tengo aún más con qué lidiar.

Subo todo mi código a SVN y lo despliego vía FTP desde el servidor (Beanstalk). Sin embargo, esto no realiza los cambios en la base de datos por mí ni activa nuevos plugins.

Mi plan actual es crear un archivo de manifiesto mientras desarrollo para realizar todos mis cambios en el sitio en vivo.

Por ejemplo, el archivo tendría líneas legibles para humanos que incluirían:

  • Plugins para activar
  • Opciones de wp-options para migrar
  • Imágenes para mover
  • Páginas para transferir

Luego, mi plugin detectaría el archivo de manifiesto y haría todos los cambios en el sitio de staging.

Una vez probado y seguro de haber capturado todo, podría estar seguro de que funcionaría en producción.

Este plugin es todavía solo una idea, pero ya tengo algo de código escrito para él.

Además, si quieres hacer cambios solo a la URL en tu base de datos, puedes usar el siguiente SQL:

Solo reemplaza $old$ con el dominio antiguo y $new$ con el nuevo:

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
25 ago 2010 01:30:02
Comentarios

Solo una nota, mi llamada SQL podría dañar tus datos serializados.

s:14:blogs.prod.com tiene la longitud codificada como 14. Después de ejecutar el código, ahora tenemos

s:14:dev.prod.com

lo cual está corrupto. Debería ser

s:12:dev.prod.com

usar con precaución.

Andrew Andrew
25 ago 2010 03:04:09
8

Estoy abordando personalmente este problema con mi proyecto en Github, llamado Autopress. Todavía no tengo una solución perfecta, pero me estoy acercando, especialmente con el plugin wpstage de la gente de wpengine.

12 ago 2010 01:59:11
Comentarios

Acabo de revisar tu script. Buen trabajo. Si entendí bien, instala un WP nuevo en el servidor. La pregunta aquí es cómo migrar del entorno de desarrollo a producción. ¿Puede ayudar con eso?

Sruly Sruly
12 ago 2010 02:18:52

¿Es este? http://github.com/vluther/Autopress Sugiero crear enlaces en tus respuestas para que la gente pueda hacer clic directamente.

artlung artlung
12 ago 2010 03:42:28

@Mike Lee: Sí, puedes votar a favor los comentarios. Mira, yo voté el comentario de artlung. Busca la flecha hacia arriba al pasar el cursor a la izquierda del comentario.

MikeSchinkel MikeSchinkel
12 ago 2010 07:06:51

Estoy trabajando en una forma de mantener todo bajo control de versiones y luego pasar de desarrollo a producción. Ya he podido hacerlo sin problemas en algunos sitios, pero todavía hay algunos ajustes que necesito resolver.

Vid Luther Vid Luther
14 ago 2010 16:51:07

No estoy seguro si esto es lo que buscas, pero hay un plugin de WP Engine que se usa para migrar sitios entre hosts. Se llama Snapshot (Enlace directo).

joelhaus joelhaus
13 mar 2011 22:23:07

http://plugins.wpengine.com/wpengine-snapshot.zip ya no está disponible :(

sam sam
2 may 2013 23:49:50

Parece que ha eliminado su cuenta de GitHub.

Brian Ortiz Brian Ortiz
26 may 2013 20:44:28

Sí, definitivamente este proyecto ya no existe.

icc97 icc97
21 oct 2014 17:15:39
Mostrar los 3 comentarios restantes
1

Dos proyectos de Google Summer of Code que tienen un objetivo similar:

27 abr 2011 11:46:56
Comentarios

¿Parece que ninguno de estos proyectos despegó?

icc97 icc97
21 oct 2014 17:02:39
0

He estado usando http://wordpress.org/plugins/wp-clone-by-wp-academy/. ¡Funciona muy bien!

Solo 3 pasos:

  1. Instala el plugin en ambos sitios.
  2. Usa el plugin para generar una copia de seguridad en el sitio antiguo.
  3. Toma la URL de respaldo que te proporciona e ingrésala en la página del plugin del nuevo sitio, haz clic en ir, ¡y tu migración estará completa en solo unos segundos!

Ajusta automáticamente todas las URLs, incluyendo reemplazos en cadenas serializadas, por lo que no hay riesgo de perder configuraciones de widgets, etc.

Los únicos problemas que he tenido son con algunos sitios con bases de datos más grandes (~300MB), que causaron tiempos de espera en la ejecución de scripts PHP durante la importación de la copia de seguridad del sitio.

21 oct 2013 21:05:24
0

Normalmente inicio sesión en phpMyAdmin, subo la base de datos y edito los contenidos de wp_options>siteurl y wp_options>home para establecer el dominio esperado. Si necesitas actualizar las URLs dentro del contenido de tus entradas y páginas, puedes hacer una búsqueda/reemplazo de la URL y la ruta de medios/uploads en el archivo .SQL antes de subirlo. Es un trabajo rápido.

12 ago 2010 18:21:39
0

Utilizo el comando de exportación de Subversion para instalar los archivos de WordPress (http://core.svn.wordpress.org/tags//) así como todos los plugins en el repositorio (http://plugins.svn.wordpress.org//tags//), luego simplemente comprimo el tema y los plugins personalizados y los instalo de manera normal. Una vez que todo está funcionando sin contenido, exporto la base de datos de prueba y hago una búsqueda/reemplazo de la URL Y la ruta del archivo (almacenada para medios) e importo en una base de datos vacía, luego solo cambio la información de la base de datos en wp-config.php. Generalmente me toma entre 10 a 20 minutos.

12 ago 2010 02:32:11
0

Aunque no faltan buenas soluciones aquí, en el espíritu de compartir pensé en agregar mi script de despliegue bash a la lista: https://github.com/jplew/SyncDB

SyncDB es un script bash de despliegue diseñado para eliminar la monotonía de sincronizar versiones locales y remotas de un sitio Wordpress. Permite a los desarrolladores que trabajan en un entorno local (ej. MAMP) "enviar" o "traer" cambios rápidamente hacia o desde su servidor de producción con un solo comando en la terminal.

Este script funciona bien con WP-Skeleton de Mark Jaquith, y utiliza mysqldump, git y rsync para sincronizar todo tu sitio—base de datos, código y archivos multimedia—en dos sencillos pasos:

./syncdb
git push hub master
3 sept 2013 13:58:32
0

Esta es la forma más fácil de todas: https://themes.artbees.net/docs/website-migration/
Solo toma dos clics. Uno para exportar, otro para importar.

Es posible utilizando el plugin All in one WP Migration. El enlace de arriba muestra cómo usarlo.

25 jul 2018 10:00:28
0

Otra herramienta útil para manejar migraciones de servidores para sitios es la CLI de WordPress, este artículo tiene una buena descripción general de lo que puede hacer, pero específicamente la sección de "Buscar y Reemplazar" es útil para encontrar todas las referencias a la URL antigua o de desarrollo:

Gestión Avanzada de WordPress Con WP-CLI

1 oct 2015 13:07:09
0

Dado que ejecuto mis sitios en IIS (también ejecuto ASP.NET, así que necesito Windows) uso WebPI de Microsoft para instalar una nueva instancia, luego copio la plantilla y utilizo la función de importar/exportar para transferir los datos.

No es perfecto, pero todo el proceso toma menos de una hora.

Obviamente sería ideal tener una solución de un solo clic, pero esto es lo que he encontrado como más sencillo para mi caso.

12 ago 2010 02:06:15
0

He estado usando el plugin backupbuddy por un tiempo ahora. Te permite hacer una copia de seguridad de la base de datos y todos los archivos, descargarla como un zip o enviarla directamente a otro servidor vía FTP. También hace la búsqueda y reemplazo de URLs por ti. Normalmente me toma unos 5 minutos completar todo el proceso. Y como todos los archivos están comprimidos, el proceso de subida/descarga es mucho más rápido. Y no, no trabajo para ellos, pero este plugin realmente ha hecho todo este proceso mucho más fácil.

21 oct 2013 17:52:52
1

Permíteme compartir uno de mis favoritos :-)

// bifurcación probada local<->en vivo (cubre pruebas en red local, ej. desde dispositivos móviles):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // localhost simple (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // llamado por nombre local (ajustar)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // dispositivo (móvil) en red local

$table_prefix  = NULL; // asegurar ámbito

if ( $GLOBALS['is_local'] )  // bifurcación LOCAL ------------------------
{
        ....
}
else  // bifurcación EN VIVO/ETAPA -------------------
{

...y luego continúas desde ahí. DB_NAME, DB_USER... table_prefix. Personalmente activo ALTERNATE_WP_CRON en local (para evitar algunas advertencias molestas), WP_DEBUG apagado en ambos (si no eres desarrollador) o solo en vivo (si lo eres), otro ini_set('display_errors', '0'); para producción también puede ser útil, y finalmente, como mencioné antes: WP_HOME y WP_SITEURL con la URL local/real respectiva.

Eso es básicamente todo, nada por encima de la clásica línea de WordPress '¡Eso es todo, deja de editar!'...

La parte de 192.168. te permite hacer pruebas locales (ej. desde tablets o teléfonos) dentro de tu red local)

El $GLOBALS['is_local'] también puede ser útil en el desarrollo de tu tema, para algo de salida de depuración extra, etc...

30 mar 2013 14:08:04
Comentarios

Puedes usar el esqueleto de WordPress wp-config.php que establece una constante WP_LOCAL_DEV para lograr algo similar

icc97 icc97
21 ago 2015 13:45:20
2

RAMP es un nuevo plugin de despliegue de contenido de Crowd Favorite, y parece realmente elegante. Sin embargo, cuesta $250, así que aún no lo he probado. Podría pagarse solo con el tiempo ahorrado, así que lo estoy considerando.

La gran ventaja que tiene sobre la mayoría de los otros métodos mencionados es que puede fusionar inteligentemente publicaciones, comentarios, etc. No es solo importar un volcado de MySQL, es más como un control de versiones para la base de datos. Por ejemplo, al desplegar una publicación, también desplegará las etiquetas de esa publicación si no existen ya en producción.

7 ago 2012 08:29:16
Comentarios

RAMP es para despliegue de contenido, en lugar de despliegue de código, pero estoy de acuerdo, se ve excelente. Ahora tienen una demo de RAMP configurada para que puedas probar las características.

Emyr Thomas Emyr Thomas
19 nov 2012 16:17:00

La pregunta era sobre despliegue de contenido, no de código, y comencé mi respuesta diciendo "RAMP es un nuevo plugin de despliegue de contenido..."

Ian Dunn Ian Dunn
19 nov 2012 18:33:38
0

Esto puede que no existiera cuando hiciste la pregunta, pero he estado usando un servicio llamado Blogvault durante un par de meses y lo ha hecho impecablemente. Probablemente he realizado más de 50 migraciones (entre dominios, subdominios y distintos proveedores de hosting), sin ningún problema y en muy poco tiempo.

Es un servicio de pago (por dominio/mes), pero no es muy costoso.

9 abr 2012 05:20:02
1

Un compañero de trabajo encontró esto. Concepto interesante, aunque parece que no funciona entre servidores. Todavía lo estoy explorando, pero parece que podría funcionar muy bien para una instancia de staging

http://code.google.com/p/deploymint/

30 ago 2011 22:39:39
Comentarios

Hace cuatro meses, no podía hacer que este plugin funcionara... Y todavía está en la versión 0.1 en code.google

brasofilo brasofilo
4 may 2012 17:46:53
0

Otra solución de pago: el framework de temas Xtreme One lanzó la versión 1.2 con Xtreme Backup que te permite "exportar o importar la configuración de tus Childthemes, Diseños o Widgets con todos sus ajustes/contenido como archivo XML."

20 abr 2011 14:45:53
0

Después de seguir esta respuesta por un tiempo, he creado mi propio pequeño plugin: Pitta Migration. Las razones son:

  1. De todas las ideas probadas aquí, la más simple son las opciones WP_HOME y WP_SITEURL
  2. Luego uso estas para establecer las dos URLs coincidentes en wp_options, lo que cubre cuando los plugins/temas ignoran estas configuraciones
  3. Esto me da un 100% de confianza en lo que se está cambiando en mi base de datos
  4. También funciona multiplataforma (todos esos scripts bash no funcionan bien en Windows)
  5. Es fácil entender lo que hace el plugin
  6. No hay configuración más allá de las dos constantes: haz un mysqldump y una importación mysql a tu base de datos local y el plugin detecta que la constante y la tabla difieren y las actualiza para que coincidan
  7. No hay búsqueda y reemplazo de texto
  8. No hay posibilidad de dañar tu base de datos: uso el Objeto de Base de Datos de WordPress para hacer solo dos actualizaciones y nada más
  9. Funciona bien con cosas como WordPress Skeleton donde puedes tener todo bajo control de código fuente y configurar un entorno local
  10. Lo he puesto en el Directorio de plugins de WordPress y en Github para que sea gratuito, totalmente de código abierto, fácil de bifurcar y sencillo de instalar
  11. Una vez instalado, puedes olvidarte de él y simplemente "funcionará": te muestra un pequeño aviso para indicar que la base de datos ha sido modificada
  12. Debería funcionar con cualquier proceso de copia de seguridad/FTP/restauración
21 ago 2015 13:27:08
0

Si estás intentando lograr una sincronización continua, te sugiero usar rsync junto con un trabajo cron personalizado para reescribir cualquier URL o datos específicos del sitio.

27 ago 2011 05:12:29
0

En mi opinión, la forma más sencilla que sigo es la transferencia manual. Simplemente copia la carpeta wp-content y el archivo wp-config.php al nuevo host. Exporta la base de datos del host antiguo e impórtala en una nueva base de datos del nuevo host.

En la base de datos del nuevo host, ve a la tabla wp-options y allí cambia la URL del sitio y la URL del blog a la dirección del nuevo host desde el host antiguo. Por ejemplo, de http://localhost/wp a http://ejemplo.com.

Ahora, en el archivo wp-config.php, solo cambia la información de la base de datos y el usuario con los datos del nuevo host.

Inicia sesión en el nuevo wp-admin y ve a ajustes para guardar los enlaces permanentes.

Ya está listo. Creo que esto es simple sin usar ningún plugin.

He probado diferentes tipos de plugins y todos tienen muchos tipos de problemas.

Así que prefiero esta simple transferencia manual que creo que es más fácil.

30 oct 2017 07:28:18