Migración drupal, mysql, apache, bugzilla, wordpress…

Esta semana ha sido dura, hemos migrado muchas aplicaciones en los servidores de GPL Tarragona:

– Apache 2
– MySQL 4
– Drupal 4.4.1
– Bugzilla

Han ido surgiendo problemas pero los hemos podido ir arreglando, sobretodo los más críticos. Aun quedan muchas cosas por pulir, pero lo más dificil ya ha pasado.

La compilación de las nuevas versiones ha sido más o menos sencillo, algun pequeño problema con mod_php pero Joni lo arregló rápido. Cuando teniamos todo compilado, era la hora de actualizar drupal… la actualización de la base de datos fue sorprendentemente perfecta, però los problemas llegaron con los charsets… UTF-8 vs ISO-8859-15. La información la tenemos toda en ISO pero drupal la cogia como UTF y entonces los acentos se veian fatal, la solución fue cambiar el código fuente de drupal, concretamente en “include/common.inc”, linea 1260:

//header("Content-Type: text/html; charset=utf-8");
header("Content-Type: text/html; charset=iso-8859-1");

[Actualización] Steven Wittens me ha hecho saber por e-mail que la solución que aqui propongo no es buena ya que hace que se “rompan” otras funcionalidades de Drupal, por ejemplo la generación de RSS inválidos o envio de e-mails también inválidos. Más info en este post. Muy probablemente miraremos que hacer en GPL Tarragona, como ahora sabemos que es posible hacer que haya webs con un charset y otras con otro (es decir, no tiene pq estar todo el Apache con un único charset)… quizás lo correcto seria migrar todo el Drupal a UTF-8 y por tanto migrar también los datos de la MySQL. [/Actualización]

Y tener apache configurado para que por defecto muestre ISO. En casos puntuales como el planet si necesitavamos que se tratase como UTF ya que dicha aplicación trabaja integramente con ese charset, así que la solución estuvo en añadir un .htaccess:

AddDefaultCharset UTF-8

De esta forma, utilizando .htaccess podemos decir que directorios o subdominios utilice UTF-8 en lugar de ISO-8859-15 (puesto por defecto en todo apache2 ya que se indica en /etc/apache2/conf/commonapache2.conf).

También queriamos que el dominio gplurv.org redirigiese a gpltarragona.org, sobretodo para la página principal (la del drupal) así que para conseguir que este redireccionamiento fuese transparente se ha configurado apache para que tanto con gpltarragona.org como con gplurv.org se acceda a la misma web (como vereis esta todo configurado como dominios virtuales):

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName gpltarragona.org
   ServerAlias www.gpltarragona.org www.gplurv.org gplurv.org
   DocumentRoot /var/www/gpltarragona.org/htdocs/
</VirtualHost>

Y se ha modificado el index.php del drupal para que al inicio del mismo contenga:

if (($HTTP_HOST=="gplurv.org") || ($HTTP_HOST=="www.gplurv.org") ||
($HTTP_HOST=="gpltarragona.org")){
    header("HTTP/1.1 303 REDIRECT");
    header("Location: http://www.gpltarragona.org$REQUEST_URIrn");
    return;
}

De esta forma se consiguen redirecciones transparentes al nuevo dominio sin perder links viejos del drupal.

También tuvimos problemas con el tema gplito de drupal, pero Joni trabajó en adaptarlo a la nueva versión y ya podemos volver a disfrutar de su obra 😉

Aun queda trabajo por hacer, hay links rotos ya que hemos separado drupal de todas las páginas que teniamos extras como el wiki. Hay que arreglarlo aunque yo voy a estar unas semanas con poco acceso a Internet, pronto me quitaran RDSI y tendre que esperar a que me llege el ADSL (si, por fin una conexión algo más decente :P).

Como ha sido una semana de migraciones hoy he dicho, venga vamos a actualizar mi blog a wodpress 1.2!! Y madre mia, me ha sorprendido lo rápido que ha sido. Ejecutar un upgrade y mantener la configuración antigua y el index.php. Facilisimo y sin problemas… fantástico 🙂

One thought on “Migración drupal, mysql, apache, bugzilla, wordpress…

Leave a Reply

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