miércoles, 23 de abril de 2014

Habilitar reCAPTCHA

Para habilitar la opción de CAPTCHA seguir los siguientes pasos:
  1. Visitar http://www.google.com/recaptcha/intro/index.html, registrar el dominio (por ejemplo, http://misitio.com) y obtener un par de claves (pública y privada).
  2. En nuestra plataforma Moodle, ir a Administración del sitio >> Usuarios >> Autenticación >> Gestionar autenticación (en la parte inferior en la página web) y llenar los campos "Clave pública ReCAPTCHA" y "Clave privada ReCAPTCHA" con las claves obtenidas en el paso 1.
  3. Ir a Administración del sitio >> Usuarios >> Autenticación >> Autenticación basada en Email, y en "Habilitar elemento de reCAPTCHA" elegir la opción "Sí".
  4. Para que este mecanismo funcione se requiere la extensión de PHP cURL instalada. Para averiguar si nuestro servidor posee esta extensión instalada podemos hacerlo desde Administración del sitio >> Servidor >> Entorno

Recordar "Guardar" las opciones modificadas en nuestra plataforma Moodle para que tomen efecto.

Links

martes, 5 de febrero de 2013

Linux Rescue: montar particiones RAID

Por distintas razones de fallas es posible que sea necesario utilizar Linux Rescue.

Motivo concreto
En este caso en particular el disco que tiene el Grub 2 no está siendo detectado por la BIOS al reiniciarse el servidor, aún estando la BIOS configurada para que reintente el booteo.
Los reiterados cortes de energía eléctrica han producido este estado de arranque demasiado tardío como para que la BIOS lo detecte al disco y sea utilizado para cargar el Grub 2, y así poder arrancar el sistema operativo.

Solución propuesta
Para resolver este inconveniente procederemos a instalar otro disco duro que sí es detectado, y allí instalaremos el Grub 2 del disco con problemas de arranque.

Desarrollo
Tenemos la siguiente configuración en un GNU/Linux Centos 6.3
  • /dev/sda  de 500,1 GB
    • /dev/sda1 (314 MB)  => /boot (ext4)
    • /dev/sda2 (16,8 GB)  => swap (swap)
    • /dev/sda3 (483,0 GB)  => /backup (ext4)
  • /dev/md0 1000,2 GB en RAID 1
    • /dev/sdb1  1000,2 GB y 
    • /dev/sdc1  1000,2 GB.
  • /dev/sdd1 82,3 GB (este es el disco que agregamos para copiar el Grub 2 aquí)

Pasos
  1. Bootear desde un CD de instalación de Centos 5.4 o superior, iniciar en Modo Rescate (Linux Rescue).
  2. Crear el archivo /etc/mdadm.conf y en su interior colocar 
    1. DEVICE /dev/sd[bc]1
    2. guardar y salir.
  3. # mdadmin --examine --scan >> /etc/mdadmin.conf
    1. # cat /etc/mdadm.conf
    2. # cat /proc/mdstat
  4. # mdadmin --assemble --scan /dev/md/0  (ensambla los dispositivos del raid)
    1. # mdadmin --detail /dev/md/0
  5. # mkdir /mnt/sysimage
  6. # mount /dev/md/0 /mnt/sysimage
  7. # mount -o bind /dev /mnt/sysimage/dev
  8. # mount -o bind /proc /mnt/sysimage/proc
  9. # mount -o bind /sys /mnt/sysimage/sys
  10. # chroot /mnt/sysimage
  11. # mount /dev/sdd1 /boot
  12. # grub-install /dev/sdd
  13. Y agregamos el Grub 2 también al dispositivo /dev/sda1
    1. # umount /dev/sdd1
    2. # mount /dev/sda1
    3. # grub-install /dev/sda
  14. Finalmente, en la BIOS colocamos como disco de booteo al disco de 82,3 GB (/dev/sdd).

Tip
  • En caso de utilizar un CD de rescate inferior a la versión 5.4 de Centos, al intentar montar el raid arroja el siguiente error: "Disk /dev/md0 doesn't contain a valid partition table". Por lo tanto, utilizar un CD de rescate lo más actualizado posible a la versión ya instalada.

Link



jueves, 13 de septiembre de 2012

Elevar el Número Máximo de Semanas o Temas de Moodle

Cuando configuramos un curso, en los Ajustes generales podemos definir el Número de semanas o temas. Por defecto, este número tiene un rango de 1 a 52.

Para elevar aún más el número de semanas o temas, por ejemplo a 74, es necesario editar el archivo ../course/edit_form.php (en versiones 1.8 y superiores), buscar el siguiente trozo de código php:

for ($i=1; $i<=52; $i++) {
$sectionmenu[$i] = “$i”;
}

y sustituir el 52 por el número deseado, en este caso por 74.


Links

martes, 13 de marzo de 2012

Problemas de Visualización de un Curso

En raras ocasiones sucede que no es posible visualizar el curso correctamente y al intentar editar o eliminar el recurso no es posible.

Trataremos el caso en el que no es posible editar, o no se visualiza la opción de eliminar de una sección del curso. Cualquiera sea el caso perdemos control de edición sobre un recurso particular.

Dado que se pierde control sobre la edición del recurso, es por ello que no puede un profesor o administrador resolver el inconveniente desde Moodle mismo.
Este inconveniente se soluciona desde la base de datos MySql que utilice nuestro Moodle, particularmente lo resuelvo desde PhpMyAdmin.

Por ejemplo, para el curso RPA que tiene ID=1158, la consulta SQL es:

SELECT * FROM `mdl_course_sections` WHERE `course`=1158

En el resultado de la consulta debemos identificar el recurso particular que origina el inconveniente y dejar vacío el dato del campo "summary".

En gral. el recurso que causa el inconveniente tiene en el campo "summary" valores html incorrectos. Por ello se produce el error, al cortar y pegar comunmente.

TIP: si es posible, dejar sólo no visible el recurso que causa inconvenientes desde Moodle y cuando obtenemos el resultado de la consulta SQL ver el campo "visible" que estará a 0. De esta manera identificaremos rápidamente el recurso para vaciar su dato del campo "summary".

De foma análoga, resolveremos el inconveniente si el problema lo presenta una etiqueta u otro recurso. Deberemos ir a la tabla de nuestra bases de datos correspondiente, por ejemplo: mdl_label, o la que corresponda al recurso y proceder de la forma arriba descripta para un sector.

sábado, 10 de septiembre de 2011

Crear un tutorial

Para crear un tutorial o presentación se pueden utilizar recordMyDesktop o Wink[1]. En esta ocación indicaremos cómo instalar Wink en Ubuntu Desktop 10.04 Lucid.

Descargar Wink[2]

mkdir wink
cd wink
wget http://www.digital2b.com/mirror_wink/wink15.tar.gz
tar zxvf wink15.tar.gz
tar zxvf installdata.tar.gz

Ejecutar Wink:
./wink
./wink: error while loading shared libraries: libstdc++.so.5: cannot open shared

Para instalar esa librería, ya que en los repositorios se encuentra libstdc++ versión 6, y no la 5.
Descargar libstdc++5 desde [3]
sudo dpkg -i libstdc++5_3.3.6-21ubuntu1_i386.deb
./wink
./wink: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory

Para subsanar este último inconveniente:
sudo find / -name libexpat.so.*
sudo ln -s /lib/libexpat.so.1.5.2 /usr/lib/libexpat.so.0

Finalmente, ejecutar wink y comenzar a utilizarlo.
./wink


Links

martes, 23 de agosto de 2011

MySQL: Base de Datos con Tabla(s) Corrupta/Inconsistente

Las tres etapas que seguí para hallar el problema de una tabla corrupta, son los siguientes:
  1. Síntomas
  2. Detección
  3. Resolución
La siguiente figura[4] muestra todo el proceso:


Síntomas
  • uso intensivo de la(s) CPU(s),
  • no es posible realizar un backup de una base de datos mediante el comando mysqldump.
  • ningún usuario se puede logear en Moodle, y se muestra el mensaje: "Could not create guest user record !!!"
  • mensaje de error por email:
" Insert into log table failed at Tuesday 06th of September 2011 06:19:40 PM.
It is possible that your disk is full.

The failed SQL is:

INSERT INTO mdl_log (time, userid, course, ip, module, cmid, action, url, info)
VALUES ('1315343980', '31', '0', '190.173.227.212', 'login', '0', 'error', 'index.php', 'usuario') "

En caso de estar corrupta la tabla mdl_users, los síntomas son varios y en alguno cursos puede suceder:
  • Muestra que "no hay Usuarios en línea" ya sea en la portada de Moodle o dentro de los cursos que tengan tal bloque html
  • En el listado de Participantes, no se muestra ninguno (con el filtro de rol: todos).
  • A la hora de agregar manualmente un estudiante, bloque administración del curso -> Asignar roles, no es posible ya que no se puede buscar ni si quiera en los usuarios potenciales.
  • Desaparecen las respuestas en los foros [8].


Resolución
Antes de comenzar con la etapa de Resolución
Ingresar como administrador en Moodle y en el bloque de Administración habilitar el "Modo de mantenimiento" (Servidor -> Modo de mantenimiento).


Opción1: Línea de comandos
El comando "mysqlcheck"[1] trabaja con el motor de base de datos MySql en ejecución. Es decir, NO es necesario detener el servicio de MySql, de hecho debe estar ejecutándose.

Otro modo de resolver este inconveniente
Es utilizar el comando "myisamchk"[2, 3], sin embargo, en esta ocación se requiere detener el servicio de MySql.


Opción2: MySQL Admin/PHPMyAdmin [6, 7]
En la sección de la base de datos, seleccionar la BD de Moodle.
Click el tab SQL, y en "Run SQL query/queries on database moodle" escribir REPAIR TABLE mdl_tablename
Click en el botón Go.
Por ejemplo, para reparar la tabla de logs, escribir REPAIR TABLE mdl_log

De manera similar, para verificar la tabla de logs de Moodle, escribir CHECK TABLE mdl_log.
Ésto nos indicará su estado OK o si algo está mal, por ejemplo, podría decir "Table marked as crashed".



Adicionalmente, si tenemos replicada nuestra base de datos[5], este problema de tabla corrupta detendrá el proceso de sincronización, y requerirá volver a poner a punto la sincronización entre servidores manulamente.


miércoles, 1 de junio de 2011

Editar el Mensaje de Registro de Usuario

En tu plataforma Moodle puedes editar el mensaje de "Registrase como usuario" a conveniencia:


Para ello, debes ir al bloque de Administración->Usuarios->Gestionar Autenticación y en el campo de Instrucciones puedes ingresar el texto más conveniente para tu Moodle.

Allí también, puedes configurar los modos de autenticación de usuarios de Moodle.
Por ejemplo, si tienes habilitado el modo "Autenticación basada en Emal", la plataforma te agregará el botón de "Comience ahora creando una cuenta".

martes, 31 de mayo de 2011

Modificar/Deshabilitar Mensaje de Bienvenida

Cuando un estudiante se auto-matricula en un curso/materia en Moodle, recibe un Mensaje de Bienvenida al Curso.
Ese Mensaje se envía en un mail, que tiene como destinatario el correo del estudiante y como emisor (from/de) el correo del docente a cargo del curso.

Por ejemplo:
"De: Docente a cargo de la materia <correoProfe@com>
Para: Estudiante <correoEstudiante@com>
Enviado: fecha y hora
Asunto: Bienvenido al curso ABC


Bienvenido a ABC

Lo primero que debe hacer es actualizar su información personal: así podremos
saber algo más sobre usted.
No olvide colocar su foto u otra imagen que lo identifique.


(y un link a modificar el perfil de estudiante)
"


Opciones
  • Cambiar el mensaje[1]: para cambiar el contenido del mensaje, ir al bloque de Administración->Idiomas->Edición del Idioma->Editar palabras o frases, seleccionar "moodle.php" y modificar el contenido de la varible $a->coursename!
  • Deshabilitar el menaje de bienvenida[1]: en algunas ocaciones genera confusión este mensaje debido a que el emisor (from/de) del correo es el Docente a cargo del curso y éste mensaje ha sido enviado por la plataforma en forma automática. Para deshabilitarlo en Moodle 1.9.9+, ir al bloque de Administración->Cursos->Matriculaciones y deshabilitar "Enviar mensaje de bienvenida al curso". Para ver cómo se hace en Moodle 2.0 ver el link #1.

Link

miércoles, 18 de mayo de 2011

Cambiar la Clave del Administrador

Para cambiar la clave del administrador lo que vamos a hacer es dejarla sin clave, o más bien, asignarle la clave vacía. Con ello podremos ingresar con el usuario administrador sin clave a nuestra plataforma Moodle y cambiar la clave inmediatamente por seguridad.

En la base de datos que utiliza nuestra plataforma, dentro de la tabla mdl_user modificaremos el campo(columna) password del usuario administrador. Allí pondremos el siguiente valor

d41d8cd98f00b204e9800998ecf8427e

Nota: ese valos se debe a que el campo password almacena la clave codificada con la función md5, por lo que md5(“”)=d41d8cd98f00b204e9800998ecf8427e


Si deseamos asignar directamente una clave, por ejemplo, si la clave es: temp

escribimos sólo la clave en un archivo, y luego con la cantidad de caracteres de la clave calculamos el md5: head -c 4 file.txt | md5sum

La opción "-c 4" indica que sólo calcule md5sum sobre el texto de la clave y no se incluya el fin de línea o sálto de línea.


Este cambio podemos hacerlo accediendo a la base de datos a través de

  1. phpMyAdmin via web, NO seleccionar MD5 al momento de asignar el valor vacío al usuario administrador.
  2. accediendo al servidor remotamente por SSH y en línea de comandos ejecutar:

    mysql -uroot -p xxxxx

    update moodle19.mdl_user set password='d41d8cd98f00b204e9800998ecf8427e' where username='admin';
    (En este ejemplo, moodle19 es el nombre de nuestra base de datos).
  3. Finalmente, colocar una clave en el bloque de administración->Usuarios->Cuentas->Hojear lista de usuarios y editar el perfil del usuario admin.

Links

miércoles, 2 de marzo de 2011

Poner un curso en diferentes categorías

En Moodle resulta útil organizar los cursos por categorías. Sin embargo, en ocasiones se requiere colocar una única instancia de un curso en diferentes categorías.
Es decir, que una única instancia de un curso se encuentre disponible en categorías diferentes, por ejemplo:
Categoría 1 -> Curso A
Categoría 2 -> Curso A

Aclaración: el "Curso A" es exactamente el mismo en la Categoría 1 y 2, donde contiene los mismos docentes, estudiantes, actividades, foros, etc.

Una de las limitaciones de Moodle[1, 3] es que podemos poner un curso en sólo una categoría. Sin embargo, existen algunas opciones:
  1. Se puede crear un curso en una categoría, duplicarlo, y subir la copia dentro de otra categoría. Esta opción tiene la desventaja de requerir que se administren dos cursos separados. Los estudiantes podrían confundirse en el curso que están inscriptos.
  2. Se puede crear un curso en una categoría, y entonces crear un curso con el mismo nombre en la segunda categoría. Sin embargo, se pondrá una única cosa en el segundo curso: un enlace al verdadero curso con el que el usuario podrá dirigirse al verdadero curso.
  3. Se puede crear un curso en una categoría, y entonces crear un curso con el mismo nombre en la segunda categoría. En lugar de que el usuario se rediriga manulamente del segundo curso al verdadero curso en otra categoría, lo que haremos es que la redirección[2] sea realizada en forma automática y transparente al usuario por el Servidor Apache.
Este última opción es la que trataremos en cómo llevar adelante.

Al momento de crear cada curso Moodle le asigna un único identificador al mismo. Por ejemplo:

Categoría 1 -> Curso A
equivale al enlace http://myMoodleSite/course/view.php?id=278

Categoría 2 -> Curso A
equivale al enlace http://myMoodleSite/course/view.php?id=727

Sea el primer enlace el que conduce hacia el verdadero curso, es decir
http://myMoodleSite/course/view.php?id=278.

Entonces cuando sea soliticado el enlace http://myMoodleSite/course/view.php?id=727 deberemos redireccionarlo hacia el primero. Esto lo haremos desde el Servidor Apache.

En el archivo de configuración (/etc/httpd/conf/httpd.conf) de Apache donde tengamos definido nuestro Virtual Host podremos indicar este redireccionamiento:

...
RewriteEngine on
AllowOverride All
Options +FollowSymLinks
RewriteCond %{REQUEST_URI} ^/course/view.php$
RewriteCond %{QUERY_STRING} ^id=727$
RewriteRule ^.*$ http://myMoodleSite/course/view.php?id=278 [L,R=301]
...


De esta manera podremos tener una serie de reglas que redirigan de forma automática y transparente al usuario al verdadero curso.
Las reglas de rescritura responden a un orden de prioridad, y una vez que se cumple la primera con la opción L se le indica que no continúe verificando el listado.


Nota: también es posible ubicar estas redirecciones en el archivo .htaccess

Enlaces:
  1. http://moodle.org/mod/forum/discuss.php?d=169925#p745499
  2. http://stackoverflow.com/questions/1260632/apache-redirect-301-fails-when-using-get-parameters-such-as-blah
  3. Libro: Moodle - Elearning Course Development - (sección) Putting a Course into Several Categories.

lunes, 27 de diciembre de 2010

Habilitar HTTPS en Moodle

En esta ocasión vamos a describir cómo configurar HTTPS con Moodle.
Ello nos llevará a utlizar un certificad SSL firmado por nosotros mismos, configurarlo en Apache y habilitarlo en Moodle.

Antes de comenzar...

Podemos utilizar HTTPS en Moodle para la etapa de login(entrar) o para toda la sesión.

La primera significa que al realizarse el login se establecerá una sesión https, similar a cuando nos logeamos por Webmail en Gmail, Yahoo, Hotmail, etc. donde de una conección http se pasa a un conección https. Finalizado este proceso de login y validados los datos, se ingresa a la cuenta y se vuelve a una conección http.

La segunda significa que desde el proceso de login hasta el cierra de sesión con logout(salir) se permanece bajo una conección segura https. Todo lo que se transfiere entre el servidor y el cliente se mantiene cifrado.
Como desventaja puntual podemos mencionar que el navegador(cliente) no podrá utilizar la cache producto de la conección https que cifra cada página del sitio de forma única, insumiendo así mayor ancho de banda por conección entre el cliente y servidor.

Según el sitio de Moodle, se señala los siguiente acerca del Rendimiento del Servidor:
"... Observe que usar conexiones web seguras (https ante http) lleva consigo un trabajo más intenso, tanto para el servidor como para el cliente - especialmente porque el sistema de /caché/ no se puede utilizar con la misma eficacia, y el número de peticiones a ficheros aumenta drásticamente. Por esa razón, no es recomendable usar https para todas las páginas Moodle. Puede activar https para la pantalla de identificación de usuarios, simplemente desde la página de configuración de Moodle... "

En mi caso particular...

He optado por utilizar HTTPS sólo para el proceso de login(entrar) y luego permanecer en una conección por HTTP.

Paso 1: Generar el certificado
a) Requerimos generar los certificados que firmaremos nosotros mismos, para ello, en una terminal ejecutar

openssl req -new -x509 -days 365 -nodes -out httpd.pem -keyout httpd.key


b) luego mover los archivos a

mv httpd.pem /etc/pki/tls/certs/httpd.pem
mv httpd.key /etc/pki/tls/private/httpd.key


Paso 2: Configurar el archivo SSL de Apache
En archivo /etc/httpd/conf.d/ssl.conf modificar los parámetros SSLCertificateFile y SSLCertificateKeyFile con los siguentes valores:

SSLCertificateFile /etc/pki/tls/certs/httpd.pem

SSLCertificateKeyFile /etc/pki/tls/private/httpd.key


Paso 3: Configurar los hosts virtuales

a) modifcar el archivo /etc/httpd/conf.d/moodle.conf

NameVirtualHost *:443



SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /etc/pki/tls/certs/httpd.pem
SSLCertificateKeyFile /etc/pki/tls/private/httpd.key
...
DocumentRoot /var/www/vhosts/m
oodle
ServerName tu-sitio.com
ErrorLog /var/log/httpd/error443.log

...

...


b) Reiniciar Apache
service httpd restart

Paso 4: Habilitar HTTPS en Moodle
Agregar la siguiente línea al archivo de configuración /var/www/vhosts/moodle/config.php

$CFG->loginhttps=true;

Nota 1: en caso de querer deshabilitar https asignar: "$CFG->loginhttps=false;".
Nota 2: otra forma de realizar esta configuración es ingresando a tu plataforma Moodle con un usuario adminisitrador y habilitar en bloque de Administración del sitio->Seguridad HTTP->Usar HTTPS para accesos.


Paso 5: Verificar

Nuestro Apache tiene que estar escuchando en el puerto 443 (además del puerto 80), para verficarlo podemos ejecutar en una terminal:
netstat -nat

y debiéramos poder visualizar:

tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN

Luego, visitar nuestro sitio http://tu-sitio.com
y a continuación click en login(entrar) que debe dirigirnos a https://tu-sitio.com/login...

Cada cliente(navegador) que visite el sitio para poder ingresar efectivamente, deberá obtener el certificado manualmente.
Para Firefox, en la Fig 1, hacer click en "Agregar excepción..."



y luego en "Confirmar excepción de seguridad"





En caso de error
a) verifica los puertos habilitados 80 y 443 en el servidor y firewall(s).
b) También verifica la configuración de los archivos de Apache (SSL ERROR: ssl_error_rx_record_too_long)

Cualquier configuración incorrecta en a) y/o b) puede inducir al siguente mensaje que se mostrará en el navegador





Nota Final:
Si deseamos que Moodle mantenga toda la sesión en HTTPS, entonces modificar la siguiente línea en el archivo /var/www/vhosts/moodle/config.php (cambiar http por https)
$CFG->wwwroot = 'https://tu-sitio.com';
También visitar el siguiente enlace Moodle + SSL.


Links

miércoles, 22 de diciembre de 2010

Asignación Oculta del Rol

Esta característica es útil, por ejemplo, cuando se pretende obtener un Listado de Participantes del curso SÓLO incluyendo a profesores y estudiantes, pero evitando/ocultando los usuarios que pueden acceder al curso en calidad diferente de profesor y/o estudiante. Como ser un supervisor o tutor.

Para ocultar el rol que le ha sido asignado a un usuario, antes de asignar el rol al usuario es preciso tildar el check box de asignación oculta (Fig. 1).

IMPORTANTE: Las asignaciones de roles NO se ocultan a usuarios Administradores o Profesores con la capacidad de "Ver asignaciones de rol ocultas" moodle/role:viewhiddenassigns (Fig. 2).



PASO 1: Puntualmente en mi caso...

He creado un rol "miniAdmin" que consiste en un subconjunto de privilegios desde el rol Administrador. Y he asignado a un usuario con tal rol de forma global (Usuarios->Permisos->Asignar roles globales).
Al momento de asignarle el rol, he tildado el check box de asignación oculta (Fig. 1).



Fig. 1 - opción tildada del check box de asignación oculta

PASO 2:
Para ocultarlo del Listado obtenido por profesores, he modificado el rol Profesor y le he quitado la opción de "Ver asignaciones de rol ocultas" moodle/role:viewhiddenassigns (Fig. 2).

Fig. 2 - Ver asignaciones de rol ocultas

Con la opción "Prevenir" es suficiente, recordar guardar cambios.


PASO 3: Verificar
Ingresar a un curso como profesor y ver el Listado de Participantes, allí NO estará incluido el usuario que fue designado con el rol de miniAdmin.


Eso es todo, espero les sea de utilidad.

Links
  • http://docs.moodle.org/en/Capabilities/moodle/course:view
  • http://docs.moodle.org/en/Assign_roles <--[Section: Hidden assignments]

martes, 30 de noviembre de 2010

Replicación de la base de datos en MySQL

Vamos a describir cómo configurar Replicación de una base de datos en MySQL.


La Replicación en MySQL nos permitirá tener una copia exacta de una base de datos en un servidor maestro (master) en otro servidor esclavo (slave).

Todas las actualizaciones de la base de datos sobre el servidor master son inmediatamente replicadas a la base de datos sobre el servidor slave. De manera que la base de datos en el servidor slave está Sincronizada con la base de datos del servidor master.

Es importante señalar que ésto NO es una Política de Backup, porque un comando DELETE emitido accidentalmente en el master será trasladado a la base de datos slave. Sin embargo, una replicación ayudará a protegernos contra una falla de hardware.


Lo que haremos es replicar la base de datos nombrada moodle1910 ubicada en el servidor master con IP 10.0.0.105 en la base de datos del mismo nombre (moodle1910) pero ubicada en el servidor slave con IP 10.0.0.100

Servidor Master
IP: 10.0.0.105
Base de datos: moodle1910

Servidor Slave
IP: 10.0.0.100
Base de datos: moodle1910


SERVIDOR MASTER

1. Primero realizar un
1.a dump de la base de datos
mysqldump -uroot -p -C -Q -e -a moodle1910 | gzip -9 > dump_moodle1910.sql.gz

1.b y copiarlo al servidor slave
scp -p dump_moodle1910.sql.gz root@10.0.0.100:/root


2. Luego, editar el archivo
vi /etc/my.cnf
==========================
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

log-bin=mysql-bin
binlog-do-db=moodle1910
server-id=1


# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
==========================

3. Reiniciar MySQL
service mysqld restart

4. Configurar el usuario, la base de datos a replicar y anotar algunos datos
mysql -uroot -p

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'tuClaveSLAVE';
mysql> FLUSH PRIVILEGES;
mysql> USE moodle1910;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

+----------------------+------------+------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+------------+------------------+------------------------+
| mysql-bin.000012 | 6304258 | moodle1910 | |
+----------------------+------------+------------------+------------------------+

mysql> quit;



SERVIDOR SLAVE

1. Primero que nada, crear una base de datos vacía con el mismo nombre de la que se pretende replicar. En este caso, moodle1910 (¿cómo?)

2. Con el archivo dump_moodle1910.sql.gz copiado a este servidor, (ver paso 1b del Servidor Master), ejecutar:

2.a Descomprimir el archivo .gz
gunzip dump_moodle1910.sql.gz

2.b
En caso de habernos logeado al servidor slave por SSH ejecutar:
nohup mysql -uroot -pxxxxx moodle1910 < dump_moodle1910.sql
(Esto permitirá que se complete la ejecución de restore, aún cuando se vea interrumpida la sesión ssh)

3. Editar el archivo
vi /etc/my.cnf
==========================
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

server-id=2
master-host=10.0.0.105
master-user=slave_user
master-password=tuClaveSLAVE
master-connect-retry=60
replicate-do-db=moodle1910

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
==========================

4. Reiniciar MySQL:
service mysqld restart

5. Últimos pasos...

mysql -uroot -p

mysql> STOP SLAVE;

mysql> CHANGE MASTER TO MASTER_HOST='10.0.0.105', MASTER_USER='slave_user', MASTER_PASSWORD='tuClaveSLAVE', MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS= 6304258;

mysql> START SLAVE;
mysql> quit;


AL FIN...
Eso es todo, de ahora en adelante todos los cambios en moodle1910 sobre Master serán replicados en moodle1910 sobre Slave.


Links

jueves, 11 de noviembre de 2010

Cambio de palabras claves en Moodle

En esta oportunidad realizaremos un cambio significativo sobre palabras/frases claves en Moodle.
Cambiaremos en la portada de Moodle, la leyenda "Categorías" por "Unidades Académicas" y también "Subcategoría" por "Departamentos y Áreas".

Para ello, ingresar con un usuario administrador de Moodle y ubicar el panel de Administración.
  • Cambio de palabras clave en Moodle
    • Administración->Idioma->Edición del Idioma
      • Editar palabras o frases
        • es_ar_utf8_local / moodle.php
          • Course categories (categories) -> Unidades Académicas
          • Subcategories and courses (categorycontents) -> Departamentos y Áreas
Link
  • http://moodle.org/mod/forum/discuss.php?d=84275

¿Cómo crear una base de datos vacía para Moodle?

Crearemos una base de datos vacía para Moodle en MySQL que llamaremos moodle1910 (el número 1910 biene en relación a la versión de Moodle que es 1.9.10).
También crearemos un usurio para la base de datos que realizará los backups.

En una terminal ejecutar los siguientes pasos:

mysql -uroot -p

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| moodle199 |
| mysql |
+--------------------+
3 rows in set (0.00 sec)

mysql> CREATE DATABASE moodle1910;
Query OK, 1 row affected (0.04 sec)

mysql> ALTER DATABASE moodle1910 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,
-> DROP,INDEX,ALTER ON moodle1910.*
-> TO moodleuser1910@localhost IDENTIFIED BY 'tuClave';
Query OK, 0 rows affected (0.55 sec)

mysql> GRANT SELECT,LOCK TABLES ON moodle1910.* TO moodlebackup@localhost IDENTIFIED BY 'backupClave';
Query OK, 0 rows affected (0.55 sec)

mysql> quit


Link

lunes, 8 de noviembre de 2010

¿Cómo averiguar el motor de bases de datos utilizada por Moodle?

Comenzaremos por averiguar qué base de datos tenemos configurado en nuestro Moodle. Para ello, debemos ver el archivo config.php (ubicado por ejemplo, /var/www/moodle/config.php) que nos indica el nombre de la base de datos, usuario y clave.

En mi caso, el nombre de la base de datos es moodle199. En primer lugar verifico que exista la base de datos que estoy buscando, y luego del chequeo, realizo una consulta en la tabla mdl_user de la base de datos moodle199. Finalmente, allí se mostrará el motor de la base de datos que en es MyISAM. Para llevar adelante ésto, en una terminal, ejecutar los siguientes comandos

mysql -uroot -p

> SHOW DATABASES;
+--------------------+

| Database |

+--------------------+

| information_schema |

| moodle199 |

| mysql |

| spip20 |

| spip210 |

+--------------------+
6 rows in set (0.00 sec)

> SHOW TABLE STATUS FROM moodle199 LIKE 'mdl_user';
+----------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-----------------+----------+----------------+----------------------------+

| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |

+----------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-----------------+----------+----------------+----------------------------+

| mdl_user | MyISAM | 10 | Dynamic | 16320 | 235 | 3852028 | 281474976710655 | 2606080 | 828 | 17700 | 2010-07-06 12:28:15 | 2010-11-02 00:19:04 | 2010-07-06 12:28:17 | utf8_general_ci | NULL | | One record for each person |

+----------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-----------------+----------+----------------+----------------------------+

1 row in set (0.00 sec)

>quit


Link:
  • http://dev.mysql.com/doc/refman/5.0/en/using-innodb-tables.html

sábado, 2 de enero de 2010

Reporte: MoodleMoot/MoodleSalud 2009

El reporte completo puedes hallarlo en el siguiente enlace Reporte.