Monthly Archives: December 2007

Actualización de portales basados en Drupal

En la mañana de hoy realicé la actualización de los cinco portales web basados en Drupal que estoy desarrollando actualmente. Este software pasó rápidamente de la versión 5.2 que tenía instalada a la nueva 5.5.

A continuación describo el protocolo de actualización que realicé en cada uno de los sitios.

Realizar el inicio de sesión en el Portal Web como un usuario Administrador utilizando un navegador web.

A través de una conexión de SSH realizar las siguientes acciones.

Renombrar el directorio del sitio (site) para conservarlo como copia de seguridad en vivo (además de la copia de seguridad real).

$ mv site site.old

Descomprimir la nueva distribución de Drupal, los archivos resultantes quedarán en el directorio actual.

$ tar zxvf $HOME/drupal-5.5.tar.gz

Renombrar el directorio de Drupal recién descomprimido para convertirse en el nuevo sitio (site).

$ mv drupal-5.5/ site

Renombrar la carpeta de los módulos de la nueva versión para evitar su sobreescritura.

$ mv site/modules/ site/modules.new

Copiar los archivos (files) de la versión instalada a la nueva instalación.

$ cp -rf site.old/files site

Copiar el directorio de los sitios (sites) con la información de conexión a la base de datos.

$ cp -rf site.old/sites site

Copiar los temas personalizados de la versión instalada a la nueva.

$ cp -rf site.old/themes/MITEMA site/themes/

Copiar los módulos del sitio antigüo al nuevo en instalación.

$ cp -rf site.old/modules site

Copiar los nuevos módulos del núcleo (core) al directorio de módulos sobreescribiendo los antigüos.

$ cp -rf site/modules.new/* site/modules

Remover la carpeta con los módulos de núcleo nuevos.

$ rm -rf site/modules.new

Acceder a la siguiente dirección web utilizando un navegador para completar la instalación del sitio. Se deberá reemplazar $URL por la dirección del Portal Web.

$URL/apps/site/update.php

Verificar los requerimientos de actualización de los diferentes módulos instalados según disponibilidad de los mismos. Para esto se debe consultar la siguiente dirección utilizando un navegador web. Se requiere que el Portal Web tenga instalado previamente el módulo Update Status.

$URL?q=admin/logs/updates

Actualizar los módulos que sea necesarios reemplazando sus archivos en el directorio $PATH/modules con las nuevas versiones.

Ejecutar nuevamente el script de actualización del sitio visitando la siguiente dirección con un navegador web.

$URL/apps/site/update.php

Remover el archivo de distribución original de Drupal.

$ rm $HOME/drupal-5.5.tar.gz

Terminar.

Instalación de ChangePassword

Esta semana volví a formatear a el servidor de la Fundación a ver si ahora si le dan un uso interesante. Le instalé el OpenSuse 10.2 que bajé a mitad de año.

La idea es que utilicemos el servidor como almacenamiento de los archivos de desarrollo (web) y evitemos la multiplicidad de copias y algunos problemas de sensibilidad a mayúsculas que no son obvios en Windows sino que esperan hasta el último día cuando los ingenieros intentan subir los archivos al hosting Linux.

Necesité ayer una aplicación web que permitiera modificar la contraseña de un usuario (sistema operativo y Samba). Hace un par de meses hice una búsqueda para este mismo tema y sólo encontré un candidato: ChangePassword de http://changepassword.sourceforge.net/. Un CGI hecho en C.

La primera vez que lo instalé me dió mucho trabajo por un pequeño detalle, el directorio que utilice como temporal deberá estar ubicado en la partición raíz. Como siempre hago una partición diferente para /tmp tuve muchos problemas hasta que me percaté de este detalle.

La instalación es sencilla.

Utilizo el directorio /opt/tmp ubicado en raíz en lugar del /tmp por defecto.

# vi conf.h

char TMPFILE[]="/opt/tmp/changepassword-shadow-XXXXXX";
char TMPSMBFILE[]="/opt/tmp/changepassword-smb-XXXXXX";
char TMPSQUIDFILE[]="/opt/tmp/changepassword-squid-XXXXXX";

// Otros valores para personalizar la apariencia de la página.


# ./configure --enable-language=Spanish \
--enable-smbpasswd=/etc/samba/smbpasswd \
--enable-cgidir=/datos/cgi-bin \
--disable-squidpasswd

# make

# make install

Y listo!

Consultar: http://localhost/cgi-bin/changepassword.cgi

Jugando con InnerHTML (3)

Al ejemplo anterior de tablas dinámicas utilizando JavaScript que permitía agregar y eliminar filas dinámicamente del lado del cliente le hice algunas modificaciones que encontré necesarias cuando lo utilicé en un caso práctico. El ejemplo permite ahora agregar un documento de identidad que actuará como llave primaria del registro. El documento se muestra como texto estático y además se incluye como campo oculto (hidden) para que sea reconocido por la aplicación del lado del servidor.

Los demás campos son presentados en la tabla como campos editables (input) para permitir su modificación por parte del usuario hasta el momento de hacer el envío.

El ejemplo puede consultarse en el siguiente enlace: Test InnerHTML 3

Mas comics de xkcd

http://imgs.xkcd.com/comics/names.png

http://imgs.xkcd.com/comics/names.png

http://imgs.xkcd.com/comics/gyroscopes.png

http://imgs.xkcd.com/comics/gyroscopes.png

http://imgs.xkcd.com/comics/why_do_you_love_me.jpg

http://imgs.xkcd.com/comics/why_do_you_love_me.jpg

http://imgs.xkcd.com/comics/laser_scope.jpg

http://imgs.xkcd.com/comics/laser_scope.jpg

http://imgs.xkcd.com/comics/mispronouncing.png

http://imgs.xkcd.com/comics/mispronouncing.png

http://imgs.xkcd.com/comics/long_light.png

http://imgs.xkcd.com/comics/long_light.png

http://imgs.xkcd.com/comics/letting_go.png

http://imgs.xkcd.com/comics/letting_go.png