Todo eso he estado haciendo a ratos las últimas semanas. Después de algunos sustos y vueltas parece que ya funciona todo. Ahí van los pasos que he seguido para acordarme la próxima vez y por si le sirven a alguno. Muchas gracias a Manuel y Mayra de Enkidu que me han sacado de algún punto de no retorno :).

Precedentes

migracion_wordress_multisites_mariposa_monarcaEn aRRsa! teníamos en un servidor la web principal hecha con wordpress mutisite, con tres blogs en subdominios (el laboratorio de campo, el del taller paisaje aumentado y uno para pruebas) y la wiki en el mismo servidor compartiendo base de datos. Además teníamos otra instalación de wordpress en un subdirectorio para la Ruta de Artesanas (porque usa unos plugins que no van en multisite). Por otro lado teníamos este blog, Colabores, en otro servidor. En ninguno de los servidores teníamos CPanel porque eran “prestados” y en el de aRRsa! empezábamos a tener problemas de espacio que (no sé seguro si tiene que ver) hacían que tuviéramos que reparar la base de datos cada dos por tres.

El objetivo: juntar todo en un mismo servidor con las mínimas instalaciones de wordpress posibles e instalar nuestro lector de feeds (en el próximo capítulo), el Domain Mapping lo he usado para mantener este dominio, que le tengo cariño. Allá vamos.

Migrar WordPress Multisite:

Hay 2 opciones, una rápida (pero que si sale mal dará muchos problemas) y una más lenta pero más segura. Por si te ocurre como a mí, que probé una y no funcionó y tuve que ir por la otra, antes de tocar nada haz:

  • Backup de la base de datos del WP-Multisite (en nuestro caso esa base de datos incluía las tablas de la wiki)
  • Backup via FTP de todos los archivos de la instalación de wordpress (y en nuestro caso en el mismo directorio estaban los archivos de la wiki y el subdirectorio del otro blog)
  • Archivo de Exportación (.xml) de todos los blogs que tengas via WP-Herramientas-Exportar. Repito: de cada uno de los blogs!
  • Si tienes, como nosotros, otros blogs externos que quieras incluir en el multisite exporta también ese blog y haz backup de su base de datos y sus archivos (por si acaso)

Importante: antes de hacer nada si tu instalación de Multisite funcionaba por subdominios debes configurar el Wildcard domain desde tu Cpanel. Si no no reconocerá los subdominios de los blogs.

La opción rápida consiste en

  • importar la base de datos en tu nuevo hosting. Desde el CPanel puedes acceder al PHPMyAdmin y en la base de datos por defecto vas  Import y cargas la base de datos que has exportado
  • Por el FTP subes todos los archivos que has descargado
  • y editas el archivo wp-config con los datos de la nueva base de datos (nombre, usuario y contraseña). Si no encuentras la contraseña del usuario por defecto puedes crear uno nuevo, darle permisos para esa base de datos y generarle una contraseña.
  • Y ya está.
  • Si tienes blogs que estaban en otra instalación puedes importarlos desde el Panel de Control de wordpress creando antes otro Site. Si usabas temas diferentes en ellos tendrás que cargarlos desde el Super-Admin, activarlos para la Red de Blogs y rehacer las configuraciones que tenías hechas.

Lo malo de esa opción es que arrastras todos los errores y vicios que tuvieras en la anterior instalación. A mí esto me dio problemas y tuve que deshacer todo y empezar con la opción “lenta pero segura”.

La wiki no dio ningún problema haciéndolo así, así que parece que ese método es muy válido para migrar wikis

En este enlace lo explican bastante bien, excepto un detalle. Ten en cuenta que al hacer esto tendrás que tener acceso al FTP y, para ello, yo he tenido que cambiar las DNS del dominio antes de poder acceder. También se pueden subir archivos desde el CPanel, pero los hostings no suelen permitir cargar archivos muy grandes mediante este sistema. Si tienes un multisite lo normal es que los archivos que descargaste (aunque los comprimas) sean muy grandes y no podrás hacerlo por ese método. Así que entre que tienes acceso al FTP y consigues montar todo la web aparecerá vacía un rato. Mientras tanto puedes hacer un archivo index.html explicando a tus visitantes que estás haciendo cambios y que vuelvan a pasarse en un rato. Yo no he conseguido pensar otra forma de cargar los archivos en el nuevo servidor sin que pase esto, si sabéis alguna, chivádmela plis!

 

La opción “lenta pero segura” tiene la ventaja de que todo empieza de cero y puede ser aprovechada para instalarte la útlima versión de wordpress. Yo recomiendo ésta. Aunque el tiempo “de vacío” en la web será un poco mayor, tendrás todo limpito y sin problemas. Los pasos serían:

  • descargar la última versión de wordpress
  • cargarla en el nuevo servidor por FTP y configurar el archivo wp-config.php con los datos de tu base de datos
  • configurarla para wordpress multisite (eligiendo el funcionamiento por subdominios o por path, la nuestra es la primera y, como antes, tienes que configurar el Wildcard domain)
  • desde el Super-Admin cargar todos los temas que usan los blogs que vas a importar (también tendrás que cargar los plugins, pero es mejor hacerlo al final porque a veces dan problemas)
  • chino-chano ir creando los nuevos Sites
  • en cada blog cargar el tema correspondiente. Importante: cargar el tema antes del archivo .xml porque si usas post-types y cosas así no tendrá dónde importarlos si no has cargado antes el tema
  • importar en cada blog el archivo .xml que le corresponde que importará los posts, páginas, comentarios,…
  • comprobar la configuración de menús, descripción, los permalinks, etc para que sea igual a la que tenías antes
  • desde el Super-Admin cargar los plugins que usa cada blog, activarlos para la red y configurarlos para cada blog. Me he dado cuenta que en el 3.5 (creo que en los anteriores no) ya no tienes que activar cada plugin en cada blog, sino que las funciones te aparecen por defecto en su lugar correspondiente. Yo recomiendo ir cargando cada plugin y comprobando que no ha roto nada en ningún blog porque a veces son muy puñeteros. De hecho recomiendo (me recomiendo ;)) usar los menos plugins posibles.
  • y ya está! Tampoco ha sido para tanto y tienes todos los blogs, nuevitos, limpitos y sin arrastrar problemas

En mi caso, como ya había importado la base de datos antes, tuve que borrar las tablas correpondientes al wordpress desde el PHPMyAdmin. Y dejé sólo las de la wiki. Si lo hiciera de nuevas, puede que para migrar la wiki usaría el método de exportar sólo sus tablas e importarlas en una base de datos sólo para ella o importar sólo esas tablas (para la próxima)

Otro detalle: quizá por tanto hacer y deshacer en ocasiones la web o algunas secciones me han dado un error fatal:

Fatal error: Allowed memory size of X bytes exhausted (tried to allocate X bytes) in /home/”mi usuario”/public_html/”…” on line X

Esto es debido a la configuración del php.ini que establece el límite de memoria. Se puede cambiar y configurar para que acepte más tiempo de carga o más memoria, aunque dicen por ahí que no es lo ideal. Tienes que buscar estas líneas (memory_limit = 32M max_execution_time = 60 max_input_time = 60 y/o upload_max_filesize = 10M post_max_size = 10M) y aumentar los valores hasta que deje de dar el error. Si no hay un archivo php.ini puedes crearlo. Yo lo había intentado pero no me funcionaba hasta que Manuel me indicó que hay que partir del archivo php.ini que use tu host, modificarlo y cargarlo. Eso me funcionó a mí. Pero por si tienes el mismo problema y no tienes acceso a ese archivo o no encuentras el adecuado, en este enlace expican ésa y otras maneras de hacerlo.

Y otro más: al importar los archivos .xml de cada blog es recomendable hacer click en “descargar y subir las imágenes” para que no dependan del otro blog. A veces da error, por el tamaño de las imágenes o por qué se yo. Una alternativa es, desde el FTP, subir las carpetas de imágenes de cada blog (nótese que en wordpress 3.5.1 ya no está en el directorio blogsdir sino en /uploads/sites, tendrás que identificar el id de cada site y subir las carpetas correspondientes). En ningún caso he conseguido que, si el tema dependía de imágenes destacadas, las marque como tal. Para ser imagen destacada tiene que estar asociada a ese post o página y el método de subida por FTP no las asocia, así que habrá que cargarlas de nuevo desde el Insert media del panel de wordpress y marcarlas como destacadas. Un poco rollo. Una opción sería programar el tema para que use la primera imagen como imagen destacada en caso de que no haya sido definida, pero mientras estudio eso he encontrado el plugin Add from server te permite elegir una imagen de las que ya tienes subidas. Facilita el trabajo y luego puedes eliminarlo.

Ya tenemos los blogs en sus sitios con sus temas, plugins, imágenes y funcionando. ¡¡Yuju!! No es para tanto y están nuevitos, limpitos, actualizados y sin vicios anteriores.

Mapear dominios con Domain Mapping

El último paso ha sido mapear los subdominios para que, por ejemplo este blog (que no lo notas pero ahora está alojado en el multisite de arrsa, en ester.arrsa.org :)) mantenga su dominio colabores.net. Para ello se usa el plugin Domain Mapping que es bastente sencillo de configurar, una vez lo has entendido, como todo! Básicamente el mapeado consiste en dos movimientos:

  1. Decirle al dominio (por ej, colabores.net) donde vive ahora. Esto se hace desde la configuración del dominio allá donde lo hayas comprado y en el hosting donde tengas el blog
  2. Decirle a tu instalación de wordpress qué tiene que hacer cuando ve ese dominio. Esto se hace con el plugin.

Los pasos serían:

  • primero descargar e instalar el plugin, fíjate que lo tienes que instalar por FTP y mover el archivo sunrise.php al directorio wp-content/ además de configurar el archivo wp-config.php
  • busca la IP de tu hosting y en Super-Admin / Settings / Domain Mapping introdúcela en Server IP Address
  • en el hosting donde esté el dominio redirígelo a esa mimsa IP configurando una entrada DNS tipo A
  • aparca el dominio en el hosting donde esté tu instalación de wordpress, en el CPanel / Dominios encontrarás donde hacerlo
  • en el escritorio del blog concreto que quieras mapear a ese dominio (en este caso ester.arrsa.org) ve a Herramientas / Domain Mapping introduce el dominio que quieres que aparezca (en este caso, colabores.net) y establécelo como dominio primario tickando en la casilla
  • y ya está!

En este enlace explican como hacerlo con capturas de pantalla y explican algunas opciones y cómo configurarlas, pero no se recrean demasiado en el momento DNS y hostings, que para mí es el más escamoso. Yo lo he resumido para mi caso, pero hay otros como mapear subdominios a otros subdominios (para los que hay que usar entradas DNS CNAME en lugar de A), tener los dominios en el mismo hosting, en fin, cada uno tendrá su caso.

El colofón final ha sido añadir el plugin Feedwordpress para que en arrsa.org aparezcan todos los posts del laboratoriodecampo, de colabores y los que vayan saliendo. Asíq ue si ha funcionado puede que estéis leyendo esto desde arrsa.org. ¿Sí?

La imagen es de cuando estuvimos en Zitácuaro flipando con la migración de las mariposas monarca.

9 comments on “Migración wordpress multisite y wiki y mapeo de dominios y subdominios con Domain Mapping

  • En entramado.net, para probar a cargar lo que ocurre en todos los blogs, pusimos MU Sitewide tags que automáticamente carga en la página principal todo y permite buscar una categoría en varios de los blogs.

    La ventaja frente a feedwordpress? que si metes un blog nuevo automaticamente va a la principal. La desventaja… pues eso, que automaticamente va todo. En feedwordpress si no me equivoco puedes meter a mano que una a la feed blogs de fuera, solo algunas categorías y así, ¿no?

    • Gracias por la recomendación! Por ahora nos quedaremos con feedwordpress justo por eso de que no saque automáticamente todo. Pero queda anotado 🙂

  • Si los blogs están en el mismo servidor bajo el mismo wordpress multisite, el feedwordpress generará demasiado trabajo al servidor para nada, además de ir con cierto retraso. Es mejor usar el plugin Sitewidetags http://wordpress.org/plugins/wordpress-mu-sitewide-tags/ configurándolo para almacenar en el dominio principal todas las entradas de todos los blogs 😉 te consumirá menos cpu, será instantáneo tanto en correcciones como en actualizaciones.

    • me lo propuso Pablo, lo que pasa es que no queremos que salgan todos (tenemos unblog para pruebas y el de algún amigo y mi hermana), poco a poco quizá vayamos separando unas cosas de otras y sea mejor. Gracias por la recomendación!

Leave a Reply

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