Instalación de Moodle en NGINX con OAuth2

Moodle con NGINX

Moodle es una buena herramienta complementaria para la educación. Se pueden manejar tareas, asignaciones, permite centralizar la información de los estudiantes en un solo lugar, inclusive, se pueden crear fórmulas para calificar las asignaciones calificación.

En éste pequeño tutorial veremos como configurarlo:

Haciendo uso del servidor web NGINX y php5-fpm.

Identificación (login) haciendo uso del protocolo OAuth2, lo cual permitiría identificarse usando facebook, google, messenger, etc.

Requisitos

  • Tener instalado el servidor web NGINX con php5-fpm
  • Tener acceso por SSH, en caso de no tenerlo se tendrá que descargar y subir los archivos por FTP.

Descarga y configuración de servidor WEB

Desde la consola nos ubicamos en el directorio en el cual deseamos instalar moodle y ejecutamos lo siguiente:

mkdir -p moodle/moodledata && \
    cd moodle/ && \
    wget https://download.moodle.org/stable28/moodle-latest-28.tgz && \
    tar -xvf moodle-latest-28.tgz && \
    rm moodle-latest-28.tgz && \
    chown www-data:www-data -R ./

Ahora descargamos el plugin OAuth2 para moodle:

wget https://moodle.org/plugins/download.php/7385/auth_googleoauth2_moodle28_2014120101.zip && \
    unzip auth_googleoauth2_moodle28_2014120101.zip && \
    mv googleoauth2 moodle/auth/ && \
    chown www-data:www-data -R moodle/auth/

Creamos una base de datos en mysql con los siguientes datos(Cambiar contrasenaMysql por la contraseña del usuario root, en caso de no tener contraseña quitar el argumento -pcontrasenaMysql):

  • Usuario y base de datos: moodle_db
  • Contraseña de usuario: password.
mysql -u root -pcontrasenaMysql -e "CREATE DATABASE moodle_db CHARACTER SET utf8;" && \
  mysql -u root -pcontrasenaMysql -e "CREATE USER 'moodle_db'@'localhost' IDENTIFIED BY 'password';" && \
  mysql -u root -pcontrasenaMysql -e "GRANT ALL PRIVILEGES ON moodle_db.* TO 'moodle_db'@'localhost';"

Finalmente configuramos NGINX con php5-fpm con los siguientes datos:

  • Servidor: webmoodle.com
  • root: /var/www/moodle/moodle
  • fastcgi_pass: unix:/var/run/php5-fpm.sock
server {
	listen  80;
	server_name webmoodle.com;
	
	root /var/www/moodle/moodle;
	index index.php;

	location ~ \.php(.*)$ {
		include fastcgi_params;
		fastcgi_index index.php;
		if (!-e $request_filename) {
			rewrite ^(.*\.php)(/)(.*)$ $1?file=/$3 last;
		}
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_read_timeout 250s;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
	}
}

Instalación

Accedemos a la ruta http://webmoodle.com/install.php

 

Ahora especificamos el directorio para datos de moodle, por defecto será moodledata en la ruta base de moodle:

Ahora seleccionamos el motor de base de datos a usar:

Ahora indicamos la base de datos a usar:

  • Servidor: localhost
  • Nombre de la base de datos: moodle_db
  • Usuario de la base de datos: moodle_db
  • Contraseña de la base de datos: La contraseña que pusiste en vez de password, al momento de crear la base de datos.

Y damos clic en el botón siguiente:

Ahora confirmamos la instalación:

Ahora nos mostrará información acerca de los complementos php necesarios para que moodle funcione correctamente. En caso de que falte algún plugin php debe ser instalado y se debe reiniciar el servidor NGINX.

Una vez que todo esté OK damos clic en el botón siguiente:

 Finalmente se realizará la instalación y nos mostrará la lista de plugins que han sido instalados con éxito. Damos clic en el botón continuar:

Ahora parecerá la pantalla para llenar los datos del usuario administrador, llénalo según tus necesidades. Al finalizar da clic en el botón Actualizar información personal.

Finalmente aparecerá la pantalla para el registro de información del sitio, llenalo según tus necesidades.

Configuración de OAuth2

Primero debemos habilitar el plugin, para eso podemos hacer cualquiera de los siguientes pasos:

  • Ir al Bloque Administración del Sitio -> Extensiones -> Identificación -> Gestionar Identificación.
  • Ir a la página http://webmoodle.com/admin/settings.php?section=manageauths

Una vez en la página buscamos el plugin Oauth2 y lo habilitamos:

 

Una vez habilitado, damos clic en configuración:

Aquí debemos configurar las APP que deseamos usar para que los usuarios puedan registrarse en la página.

Identificación usando facebook

Primero debemos crear una APP del tipo WEB en facebook. Para crearla nos dirigimos a la página:

https://developers.facebook.com/quickstarts/?platform=web

Ahora escribimos el nombre de nuestra aplicación:

Seleccionamos la categoría y creamos la app:

Ahora damos clic en App Configuration y llenamos los datos de nuestra web moodle y damos clic en Next:

 

Ahora vamos a la página principal de aplicaciones https://developers.facebook.com/apps/:

Damos clic en Settings y llenamos los datos de correo de contacto y damos clic en el botón Save Changes:

 

Ahora damos clic a la sección Status & Review y habilitamos la app:

Finalmente damos clic en  las sección Dashboard para obtener el AppID y el App Secret:

Ahora nos dirigimos a la página de configuración de Oauth2 Estos datos los colocamos en la página de Configuración de Oauth2 de moodle y llenamos los datos correspondientes:

 

Eso es todo para la configuración OAuth2 Facebook, como resumen:

  1. Crear una APP del tipo web.
  2. Registrar la url de la página de moodle,
  3. Agregar el contacto a la APP y habilitar la APP.
  4. Registrar el AppID y App Secreto en la página de configuración del plugin OAuth2 de moodle.

 Identificación usando google:

Debemos habilitar las Google+ API. Para eso nos dirigimos a la pagina https://code.google.com/apis/console, damos clic en la sección API's y buscamos "Google+":

Al habilitar la API aparecerá marcado en la parte superior:

Ahora creamos una app, damos clic en credenciales y damos clic en  Crear ID de cliente nuevo:

 Seleccionamos el tipo de aplicación y damos clic en Configurar la pantalla de consentimiento:

Registramos los datos de nuestra web moodle:

  • Orígenes de JavaScript autorizados: web de moodle con http.
  • URL de redireccionamiento autorizados: debemos agregar /auth/googleoauth2/google_redirect.php a la url de moodle.

Llenamos los datos y damos clic en el botón de Actualizar.

Ahora damos clic en la sección Credenciales, y podremos obtener la información :

  • Cliente ID Google
  • Secreto cliente de google

Ahora nos dirigimos a la página de configuración de Oauth 2 Estos datos los colocamos en la página de Configuración de Oauth2 de moodle y llenamos los datos correspondientes:

Esto es todo para la configuración de google para OAuth2.

Actividad: