lunes, 1 de septiembre de 2008

PHP5: This module does not exist!

La instalación de apache2 y php5 usualmente es un proceso sumamente sencillo en Debian Etch:
  • aptitude install apache2 php5
Sin embargo, cuando por alguna razón se trata de desinstalar el programa "manualmente" inventando cosas como borrar directorios de configuración las cosas se pueden volver complicadas para poner a funcionar nuevamente el módulo de php5.

En este ejemplo se explica cómo resolver la situación en la que luego de hacer los pasos "obvios" descritos anteriormente, Apache2 no es capaz de ejecutar páginas PHP y los exploradores al momento de acceder a la página intentan identifican el archivo publicado con "PHTML" y tratan de descargarlo en vez de mostrar la información correspondiente.

Pude observar que al momento de tratar de cargar el módulo "php5", sus archivos relacionados no existían en el directorio "/etc/apache2/mods-available" y el mensaje que me mostraba el shell cuando intentaba cargarlo era el siguiente:
  • a2enmod php5
  • This module does not exist!
Pude constatar que las librerías relacionadas con el módulo estaban en el sistema operativo:
  • updatedb
  • locate libphp5.so
  • /usr/lib/apache2/modules/libphp5.so
Entonces en teoría, lo que faltaban eran los archivos de configuración del módulo en el directorio "/etc/apache2/mods-available" por lo que procedí a crearlos:
  • vim /etc/apache2/mods-available/php5.load
    • Agregué esta línea:
    • LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
  • vim /etc/apache2/mods-enabled/php5.conf
    • Agregué estas líneas:
    • AddType application/x-http-php .php .phtml .php3
    • AddType application/x-http-php-source .phps
Ahora si intentamos cargar el módulo de PHP5:
  • a2enmod php5
  • Module php5 installed; run /etc/init.d/apache2 force-reload to enable.
  • /etc/init.d/apache2 force-reload
En este momento podemos probar cualquier página PHP y si todo sale bien se visualizará correctamente el contenido.

Éxitos!

domingo, 31 de agosto de 2008

Migrando MOODLE a otro servidor

MOODLE es uno de los sistemas de gestión de aprendizaje de mayor crecimiento en los últimos años y no es para menos, dado que es un producto más de la prestigiosa e increíble comunidad de software libre.

A medida que la comunidad de estudiantes y profesores crece en nuestro MOODLE también van creciendo los requerimiento de hardware en el servidor. Es por esto que una de las tareas como administradores de este tipo de sistemas es saber cómo "mudar" o "migrar" un sistema completo de un servidor a otro.

A continuación explico de una manera "simple" cómo realizar esta migración de un MOODLE 1.7.3 con Apache2 y Mysql5 con Debian Etch.

PASO 0: SUSPENDER LA PUBLICACIÓN DEL SITIO WEB DEL AULA VIRTUAL
  • Este paso depende de la configuración del servidor web. Sin embargo, bastará con dar de baja el sitio web en el "default" o el archivo correspondiente en el Apache2 de nuestro servidor.
PASO 1: RESPALDAR ARCHIVOS DE MOODLE Y BASE DE DATOS
  • tar cvvf moodle.tar /var/www/moodle
  • tar cvvf moodledata.tar /var/moodledata
  • mysqldump -p moodledb > moodledb.sql
PASO 2: INSTALAR LOS ARCHIVOS DE RESPALDO EN EL NUEVO SERVIDOR

Una vez que están todos los archivos respaldados, estos se copian en el nuevo servidor y se descomprimen en los directorios correspondientes:
  • En "/var/" : tar xvvf moodledata.tar
  • En "/var/www" : tar xvvf moodle.tar
  • mysql -p <>
También es necesario cambiar el dueño de los directorios:
  • chown -R www-data.www-data /var/moodledata
  • chown -R www-data.www-data /var/www/moodle
Cuando se importa la base de datos en el nuevo servidor, el usuario que queda registrado para acceder esta base de datos es "root". Evidentemente no queremos que esto se mantenga así. Por fines prácticos, vamos a mantener la misma configuración que el servidor viejo. La información de la base de datos la podemos ver en el archivo "/var/www/moodle/config.php":
  • mysql -p
  • mysql> grant all privileges on moodledb.* to usuario@'localhost' identified by 'clave';
  • mysql> flush privileges;
Si la ubicación de los directorios "moodledata" y "moodle" no fueran los mismos en el nuevo servidor entonces tendríamos que realizar los ajustes correspondientes en el archivo"config.php" de MOODLE.

PASO 3: PROBAR LA INSTALACIÓN NUEVA

Visitamos el nuevo sitio web con algún explorador "serio" como Iceweasel, Firefox u Opera. Si tod ha salido bien, debemos estar viendo correctamente el aula virtual de MOODLE en el nuevo servidor.

La configuración del servidor APACHE2 está fuera del alcance de este ejemplo, sin embargo, dado que se está migrando el servicio de otro servidor que estaba operativo entonces basta con repetir dicha configuración en el nuevo servidor.

Básicamente en el nuevo servidor deben estar previamente instalados los siguientes paquetes para el correcto funcionamiento de MOODLE:
  • aptitude install apache2 php5 mysql-server php-mysql php5-gd php-pear sendmail
Espero sea de utilidad.

Éxitos!

domingo, 6 de julio de 2008

Debian Etch + Wireless Advantek Networks USB

Mi laptop Toshiba 1800-S254 no tiene la suerte de tener conexión inalámbrica de caja, quizás porque al momento de que la hicieron esta tecnología no estaba tan difundida en el mercado de los portátiles.

Sin embargo, un amigo me regaló un pequeño aparatico que lo puedo conectar en un de los dos puertos USB. Se trata de un adaptador Advantek Networks WLAN de 54 Mbps USB 2.0.

Este dispositivo se ve así:


Me llamó mucho la atención que la etiqueta que viene impresa y adherida al aparatico tiene una dirección MAC distinta a la que mi Debian Etch reconoció. Por supuesto, le creí a Debian y estaba en lo correcto.

Mi misión era habilitar de una manera fácil el dispositivo, claro, considerando mis breves habilidades en la cónsola dado que este poderoso laptop no cuenta con GNOME o KDE, utilizo el XFCE4 muy muy muy económico gráficamente para aprovechar bien los 256MB de RAM que tiene.

En el proceso, leí mucho acerca de configuración de módulos en el kernel, compilar, habilitarlos, etc. Pero afortunadamente Debian ofrece una herramienta muy poderosa que simplifica todo este parto. Se llama "module-assistant", y no es más que un programa que corre vía cónsola y que tiene menúes y todo para facilitar enormemente el proceso de instalación de módulos en nuestro kernel.

El dispositivo en cuestión no tiene soporte directo en Linux, por lo que fué necesario apoyarme en un "wrapper" para poder habilitar los controladores de Micr#@$% Windows. Este "wrapper" se llama "ndiswrapper" y como veremos a continuación es muy fácil de utilizar.

A continuación los pasos que seguí:

1) Instalar el programa "ndiswrapper":

module-assistant
UPDATE
PREPARE -> Descarga fuentes del kernel.
SELECT -> Seleccionar el módulo de "ndiswrapper"

LIST -> Lista los paquetes binarios instalados.
GET -> Obtiene dependencias.
BUILD -> Compila el módulo "ndiswrapper".
INSTALL -> Instala el módulo compilado.

Editar "/etc/modules" y agregar al final "ndiswrapper".

2) Instalar el controlador para el USB Advantek Netsorks Wireless USB:
ojo: mantenga conectado la tarjeta USB.

ndiswrapper -i sis163u.sys

ojo: El archivo "sis163u.sys" lo pueden obtener descargando los controlodores de Micro#%@ Win$@#$# y utilizar la herramienta "cabextract" accesible en los repositorios.

3) Verificar la correcta instalación del controlador sis163u.sys:

ndiswrapper -l

La salida debe ser algo así como:

installed drivers:
sis163u driver installed, hardware (0457:0163) present


4) Agregar en el archivo "/etc/network/interfaces"

iface wlan0 inet dhcp
wireless-essid NOMBRE_DE_RED
wireless-key CLAVE_WEP
wireless-channel 6
auto wlan0

Hay que estar pendiente de que si sale una actualización del  kernel, el módulo "ndiswrapper" se mantenga activo. En caso de que se actualice el kernel, entonces es necesario realizar el proceso nuevamente.

En este punto, ya está configurado el wireless USB y listo para  navegar :D

Éxitos!

Fuentes:

  • http://www.linuxquestions.org/questions/linux-wireless-networking-41/trying-to-load-module-ndiswrapper-with-modprobe-modprobe-ndiswrapper-doesnt-work-322203/
  • http://www.guia-ubuntu.org/index.php?title=Instalar_driver_de_tarjetas_WIFI_con_Ndiswrapper
  • http://www.ubuntu-es.org/index.php?q=node/44214
  • http://llistes.bulma.net/pipermail/bulmailing/Week-of-Mon-20041220/058009.html

jueves, 3 de julio de 2008

DEBIAN ETCH + Firefox 3

Recientemente ha sido lanzada a la comunidad de usuarios Firefox 3.

Sin ánimos de entrar en polémicas legales, es una realidad que muchos portales que manejan servicios de conferencias Web requieren de las últimas versiones de los exploradores.

Es por esto que atendiendo a la necesidad de cubrir el requerimiento impuesto y echando mano a la "flexibilidad moral informática", me di a la tarea de instalar Firefox 3 con el plugin de flash habilitado y el java en mi Toshiba 1800-S254 con GNU/Linux Debian Etch.

En Etch la versión de una librería necesaria para correr Firefox 3 es una llamada:

  GTK+ 2.10.

Pero Etch trae instalada como estable:

  GTK+ 2.8.

Algunos de los mensajes que podemos obtener son:

  No package 'glib-2.0' found
  No package 'atk' found
  No package 'pango' found
  No package 'cairo' found

Entonces es necesario compilar la librería GTK+ 2.10. manualmente, pero es necesario instalar algunas dependencia que serán requeridas al momento de configurar la compilación del Firefox 3:

INSTALANDO DEPENDENCIAS:

  xt4mhz:/opt/gtk+-2.10.0# aptitude install pkg-config
  xt4mhz:/opt/gtk+-2.10.0# aptitude install libglib2.0-dev
  xt4mhz:/opt/gtk+-2.10.0# aptitude install libatk1.0-dev
  xt4mhz:/opt/gtk+-2.10.0# aptitude install libpango1.0-dev
  xt4mhz:/opt/gtk+-2.10.0# aptitude install libcairo2-dev
  xt4mhz:/opt/gtk+-2.10.0# aptitude install libtiff4-dev

DESCARGANDO LA LIBRERIA:

  xt4mhz:/# cd /opt
  xt4mhz:/# mkdir gtk210
  xt4mhz:~# wget http://ftp.gnome.org/pub/gnome/sources/gtk+/2.10/gtk+-2.10.0.tar.bz2
  xt4mhz:~# tar xjvf gtk+-2.10.0.tar.bz2

COMPILANDO:

  xt4mhz:~# cd /opt/gtk+-2.10.0
  xt4mhz:~# ./configure --preffix=/opt/gtk210
  xt4mhz:~# make
  xt4mhz:~# make install

DESCARGAR FIREFOX 3:

  xt4mhz:~# cd /opt
  xt4mhz:~# wget http://download.mozilla.org/?product=firefox-3.0&os=linux&lang=es-ES
  xt4mhz:~# tar xjvf firefox-3.0.tar.bz2
  xt4mhz:~# mv firefox-3.0 firefox-3

CREANDO EL ACCESO DIRECTO PARA EJECUTAR FIREFOX 3:

  xt4mhz:~# cd /opt
  xt4mhz:~# vim firefox-3.sh

  #!/bin/sh
  export LD_LIBRARY_PATH="/opt/gtk210/lib"
  /opt/firefox-3/firefox $*

  xt4mhz:~# chmod 777 firefox-3.sh

Ahora es posible crear cualquier "lanzador" que apunte al archivo "/opt/firefox-3.sh" para
correr el Firefox 3.

INSTALANDO EL PLUGIN DE FLASH y JAVA:

Dado que tenía una instalación de "iceweasel" funcionando con los plugins, simplemente
me apoyé en esas instalaciones para habilitarlos en el Firefox 3:

  xt4mhz:~# cp -a /etc/alternatives/* /opt/firefox-3/plugins

Para probar, iniciamos el Firefox como usuario no privilegiado ejecutando el comando:

  xt4mhz:~# /opt/firefox-3.sh

Todo debe estar funcionando normalmente.

Éxitos!

P.D.: Hasta ahora me parece que el explorador Opera es más rápido que el Firefox, sin embargo, muchos portales vienen optimizados y funcionales para Firefox.

Fuentes:
http://www.nulleando.com.ar/index.php/2008/06/18/instalando-firefox-3-en-debian-etch/
http://personales.ya.com/abcd/linux/firefox3_etch/index.html

martes, 1 de julio de 2008

Xfce4 + Debian Etch + ACENTOS

Tengo un laptop de "antaño" que he recuperado gracias a la adaptabilidad que nos ofrece Debian Etch :D

Se trata de un Toshiba Satellite 1800-S254 que compramos hace aproximadamente 8 años y hoy está completamente operativo y dispuesto a seguir aportando :-).

Dado que en GNU/Linux Debian los entornos gráficos han avanzado de manera vertiginosa, decidí sacar el mayor provecho de mi nueva recuperación y decidí instalar el entorno gráfico Xfce4 el cual me pareció se podría adaptar fácilmente a mis requerimientos y por supuesto a los de mi familia.

Se presentó un detalle de configuración una vez instalado con respecto al teclado el cual tiene un "layout" en inglés ya que cuando presionaba la tecla vocal y luego el acento se generaban los caracteres en la pantalla de manera independiente.

La fórmula conocida para generar caracteres acentuados es:

TECLA VOCAL -> TECLA ' = VOCAL ACENTUADA

Los pasos que resolvieron esta situación fueron:

  1. Reconfiguración de locales desde la cónsola: "dpkg-reconfigure locales"
  2. Seleccioné los necesarios para mi idioma: "en_US.UTF-8", "es_VE.ISO-8859-1" y "es_VE.UTF-8".
  3. Edité el archivo "/etc/X11/xorg.conf" en "Section 'InputDevice'" del teclado agregando las directivas:
    Option "XkbLayout" "us_intl"
    Option "XkbVariant" "intl"
  4. Reinicié el sistema de ventanas: CTRL + ALT + BACKSPACE.
Listo! ... ya están activos los acentos.

domingo, 8 de junio de 2008

Error GPG con Virtualbox en UBUNTU Gutsy Gibbon

Luego de haber instalado el programa de virtualización "Virtualbox"
es posible que se genere un error de el llavero de claves de la PC.

El error se produce cuando actualizamos el sistema de paquetes local. El mensaje generado es parecido al siguiente:

...
Leyendo lista de paquetes... Hecho
W: GPG error: http://www.virtualbox.org gutsy Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 390EC3FF927CCC73
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas
root@cristina-desktop:~# aptitude dist-upgrade
...

El sistema, sugiere ejecutar desde la línea de comandos "apt-get update" o "aptitude update", sin embargo, esto no resuelve la situación.

Para resolver esto, es necesario registrar la nueva clave en el llavero registrándola en el sistema, ejecutando los siguientes comandos:

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 390EC3FF927CCC73
gpg --armor --export 390EC3FF927CCC73 | sudo apt-key add -

Es necesario tener conexión a Internet, ya que en el primer comando se conecta al servidor de llaves en "pgp.net".

Luego basta con actualizar nuevamente el conjunto de paquetes locales y pro si acaso, aplicamos cualquier otra actualización pendiente:

aptitude update
aptitude dist-upgrade


En este punto, no deben aparecer más advertencias ni mensajes de error relacionadas con la clave del programa Virtualbox.

Éxitos!

lunes, 31 de marzo de 2008

Monitores duales en Debian Etch

Debian ofrece la posibilidad de configurar varios monitores simultáneamente para así extender el área de trabajo disponible. Incluso, he visto como algunos abogados colocan verticalmente dos monitores y trabajan de una manera mucho más cómoda la creación de documentos. Ni hablar de las ventajas para el uso de editores de imágenes fotográficas y vectoriales.

A continuación los pasos para configurar dos monitores en modo "twin" con tarjetas marca "nvidia":

  1. Habilitar las ramas "contrib" y "non-free" en el archivo "/etc/sources.list".
  2. Instalar el controlador ejecutando los siguientes comandos:
    1. apt-get install nvidia-kernel-common module-assistant
    2. m-a -i prepare
    3. m-a a-i -i -t -f nvidia-kernel
    4. depmod -a
    5. apt-get install nvidia-glx nvidia-glx-dev
  3. Verificar que se haya cargado el módulo ejecutando el comando:
    1. lsmod |grep nvidia
  4. Realizar una copia de seguridad del archivo "/etc/X11/xorg.conf":
    1. cp -a /etc/X11/xorg.conf /etc/X11/xorg.conf.RESPALDO
  5. El paso "4" es conveniente por si acaso algo sale mal. Bastará con copiar el archivo de respaldo en "xorg.conf".
  6. Editar el archivo "xorg.conf" de la siguiente manera:
Section "Device"
Identifier "NVIDIA Corporation NV44 [Quadro NVS 285]"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "TwinView" "true"
#Option "ConnectedMonitor" "FPD,FPD"
Option "MetaModes" "1600x1200,1600x1200; 1280x1024,1280x1024"
Option "SecondMonitorHorizSync" "31-80"
Option "SecondMonitorVertRefresh" "56-76"
Option "TwinViewOrientation" "RightOf"
EndSection

Reiniciar el sistema ejecutando "reboot".

Éxitos!

Recuperar la clave de root en Etch

En algún momento se nos puede presentar la situación en la que debemos recuperar la clave de "root" de una máquina con Debian Etch.

A continuación los pasos que pueden seguir:

  1. Una vez en la pantalla del "Grub", seleccionar con el cursos el modo "single-user-mode" o también llamado "recovery-mode".
  2. Presionar la tecla "e" para editar la línea seleccionada.
  3. Seleccionar con el cursor la línea que inicia con la palabra "kernel". Esta línea ofrece las opciones del kernel para iniciar.
  4. Presionar la tecla "e" para editar la línea.
  5. Cambiar "ro" por "rw".
  6. Agregar al final de la línea: " ... init=/bin/bash".
  7. Presionar "enter" para aplicar los cambios.
  8. Presionar la tecla "b" para iniciar desde ese kernel.
  9. Una vez cargada la cónsola "#", puede ejecutar el comando "passwd" y podrá ingresar una clave para "root" nueva.
  10. Ejecute el comando "reboot".
  11. La clave del usuario "root" ha sido restaurada.
Éxitos!