Cómo instalar y configurar Mahara en Ubuntu 18.04

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Creación de una base de datos y un usuario para Mahara
  • Paso 2: Descarga de Mahara
  • Paso 3: Creación del directorio Dataroot
  • Paso 4: Configuración del archivo de configuración de Mahara
  • Paso 5: Configuración de Apache
  • Paso 6: Ajuste de la configuración de PHP
  • Paso 7: Ejecutar el instalador de Mahara
    1. Configurar correo electrónico
    2. Configurar un trabajo cron
  • Conclusión
  • El autor seleccionó el Fondo de Ayuda COVID-19 para recibir una donación como parte del programa Write for DOnations.

    Introducción

    Mahara es un sistema de redes sociales y portafolios electrónicos de código abierto que se promociona como un "entorno de aprendizaje personal centrado en el alumno". Mahara es especialmente popular en instituciones académicas, donde ofrece a los alumnos una plataforma para seleccionar y compartir sus conocimientos y su crecimiento. En un entorno de aprendizaje remoto, Mahara puede ayudar a los educadores a fomentar un aula digital y organizar el progreso de un estudiante. A diferencia de los sistemas de gestión del aprendizaje (LMS) más tradicionales, Mahara está más distribuido y centrado en el usuario. Esta cantidad de creatividad del usuario contrasta con otros sistemas más institucionales.

    Mahara también tiene muchas aplicaciones para no estudiantes. Puedes usarla para crear un blog, un generador de currículums, un repositorio de archivos o un marco de competencias.

    En esta guía, instalará Mahara y lo configurará para utilizar una base de datos Postgres como fuente de autenticación. Una vez finalizada, tendrá acceso administrativo a un ePortfolio basado en servidor.

    Prerrequisitos

    • Un servidor Ubuntu 18.04 con un usuario que no sea root sudoy un firewall. Puedes seguir nuestra guía de configuración inicial del servidor Ubuntu 18.04 para obtener instrucciones.
    • El sistema de gestión de bases de datos relacionales PostgreSQL está instalado. Puedes seguir nuestra guía Cómo instalar y usar PostgreSQL en Ubuntu 18.04 para obtener instrucciones. Paso 1: instalar PostgreSQL debería ser suficiente.
    • Apache y PHP instalados. Puedes seguir nuestra guía Cómo instalar Linux, Apache, MySQL, PHP (pila LAMP) en Ubuntu 18.04 para obtener instrucciones. Ten en cuenta que Mahara recomienda usar Postgres y no MySQL, pero puedes seguir el Paso 2 de esta guía para instalar y usar MySQL en su lugar.
    • Un nombre de dominio configurado para apuntar a su servidor. Para apuntar dominios a Droplets de DigitalOcean, siga nuestra guía Cómo apuntar a servidores de nombres de DigitalOcean desde registradores de dominios comunes. Este tutorial se utilizará mahara.your_domaincomo ejemplo.
    • Un host virtual configurado para el dominio mediante la ServerNamedirectiva. Para obtener una guía, vaya al Paso 5: Configuración de hosts virtuales (recomendado) en Cómo instalar el servidor web Apache en Ubuntu 18.04.
    • Un certificado Let's Encrypt configurado para el dominio que ha configurado siguiendo la guía Cómo proteger Apache con Let's Encrypt en Ubuntu 18.04.

    Paso 1: Creación de una base de datos y un usuario para Mahara

    El primer paso es crear una base de datos Postgres y un usuario para Mahara.

    Desde la línea de comandos de su servidor, cambie al postgresusuario:

    1. sudo -i -u postgres

    El -iconmutador proporciona un shell interactivo, mientras que sudoel uso con el -uconmutador permite cambiar de usuario.

    Ahora crea un usuario de Postgres; asegúrate de reemplazarlo maharacon tu nombre de usuario preferido:

    1. createuser -SRDP mahara

    Postgres le solicitará que ingrese Enter password for a new role:. roleAquí se refiere al nuevo usuario que está intentando crear. Ingrese una contraseña de su elección y vuelva a ingresarla cuando se le solicite.

    Ahora cree una base de datos para su instalación de Mahara. Utilice el siguiente comando, reemplazando maharadbel nombre que prefiera para su nueva base de datos y maharael nuevo usuario que acaba de crear:

    1. createdb -O mahara -EUTF8 maharadb

    Ahora puedes salir del postgresusuario:

    1. exit

    Nota: Se recomienda utilizar Postgres para la base de datos de Mahara, pero si decide utilizar MySQL, deberá configurar un nuevo usuario y una nueva base de datos para Mahara. Para ello, inicie sesión en su cuenta raíz de MySQL con el siguiente comando:

    1. mysql -u root -p

    Proporcione su contraseña de root de MySQL para obtener acceso. Ahora cree su base de datos Mahara. Reemplácela maharadbcon otro nombre:

    1. create database maharadb character set UTF8;

    A continuación, cree un nuevo usuario MySQL para Mahara, establezca una contraseña y otórguele acceso a su maharadbbase de datos. Recuerde proporcionar una contraseña segura en lugar de passwordy reemplazarla mahara por el nombre de usuario que desee:

    1. grant all on maharadb .* to 'mahara '@'localhost' identified by 'password';

    Ya ha creado una base de datos para Mahara y ha creado un rol. Ahora puede instalar y configurar Mahara.

    Paso 2: Descarga de Mahara

    Ahora que tiene una base de datos creada y configurada para Mahara, descarguemos Mahara. Puede descargar una compilación estándar desde el servidor de Mahara y puede encontrar la compilación más reciente de Mahara aquí.

    Una vez que tenga un .tar.gzenlace a la última versión estable, descárguelo con el wgetcomando. Asegúrese de reemplazarlo /19.10/19.10.2/+download/mahara-19.10.2.tar.gzpor la versión que seleccionó:

    1. wget https://launchpad.net/mahara/19.10/19.10.2/+download/mahara-19.10.2.tar.gz

    Esto descargará un archivo comprimido denominado . Extraiga el archivo comprimido para crear la estructura de directorio de Mahara:mahara-19.10.2.tar.gz

    1. tar xzvf mahara-19.10.2.tar.gz
    2. ls

    El lscomando comprueba la extracción. Ahora verá el nuevo directorio:mahara-19.10.2

    Outputmahara-19.10.2.tar.gz mahara-19.10.2

    Copiemos Mahara a . debe coincidir con el directorio que creó durante el paso de configuración del host virtual en la sección Requisitos previos ./var/www/mahara.your_domainmahara.your_domain

    Nota: Mahara debe instalarse en un directorio vacío. Si ya tiene archivos aquí, considere cambiarlos DocumentRooty utilizar un nuevo directorio.

    Ahora copie el directorio Mahara:

    1. sudo cp -a mahara-19.10.2/. /var/www/mahara.your_domain/

    El -amodificador garantiza que el sistema copie los permisos de archivo junto con los archivos y carpetas. El .final del archivo de origen garantiza que todo lo que se encuentre en el directorio de origen, incluidos los archivos ocultos, se copie en el directorio de destino.

    Mahara requiere extensiones PHP adicionales para funcionar correctamente.

    Ejecute los siguientes comandos para instalar todas las dependencias necesarias:

    1. sudo apt update
    2. sudo apt install php-gd php-pgsql php-xmlrpc php-xml php-curl php-mbstring

    Escriba ylas instrucciones que aparecen para finalizar la instalación.

    Has instalado Mahara en tu servidor. A continuación, crearás el directorio dataroot.

    Paso 3: Creación del directorio Dataroot

    Ahora que tiene configurado el código de Mahara, vamos a crear un directorio raíz de datos. Aquí es donde Mahara escribirá los archivos cargados, así como otros archivos que necesita para ejecutarse. Por lo tanto, el servidor web debe poder escribir en él.

    El directorio dataroot también debe estar fuera del directorio donde tienes el código de Mahara. Debes evitar tenerlo dentro de tu public_htmldirectorio.

    Vamos a crear el directorio en /var/maharadata:

    1. sudo mkdir /var/maharadata

    Actualice la propiedad con chown:

    1. sudo chown -R www-data:www-data /var/maharadata

    Esto permite que el servidor web escriba en el directorio. Ahora podemos terminar de configurar Mahara.

    Paso 4: Configuración del archivo de configuración de Mahara

    En este paso, realizarás algunos ajustes finales al config.phparchivo de Mahara. Estos ajustes conectarán tu base de datos y cifrarán tu contraseña.

    Cambiar al directorio de códigos de Mahara:

    1. cd /var/www/mahara.your_domain/htdocs

    Crea tu config.phparchivo copiando el config-dist.phparchivo en el htdocsdirectorio.

    Cambia de directorio y copia el archivo:

    1. cp config-dist.php config.php

    Ahora abre config.phpusando nanotu editor de texto preferido:

    1. nano config.php

    Localice la siguiente sección en el archivo y realice los cambios necesarios. Déjela $cfg-dbtypecomo postgresestá a menos que esté usando MySQL, en cuyo caso cámbiela a mysql. Cambie maharadb, mahara, y dbpasswordpara que coincidan con los valores que utilizó en el Paso 1 para el nombre de la base de datos, el usuario y la contraseña, respectivamente:

    ./htdocs/config.php

    ...$cfg-dbtype   = 'postgres';$cfg-dbhost   = 'localhost';$cfg-dbport   = null; // Change if you are using a non-standard port number for your database$cfg-dbname   = 'maharadb';$cfg-dbuser   = 'mahara';$cfg-dbpass   = 'dbpassword';...

    En el mismo archivo, localice la siguiente sección:

    /var/www/mahara/htdocs/config.php

    ...$cfg-dataroot = '/path/to/uploaddir';...

    Cámbielo para que apunte al directorio raíz de datos de Mahara como lo configuró en el Paso 3 :

    /var/www/mahara/htdocs/config.php

    ...$cfg-dataroot = '/var/maharadata';...

    Por último, vamos a actualizar passwordsaltmaincon una cadena secreta aleatoria. Esto encripta las contraseñas de usuario almacenadas. Busque y descomente la siguiente línea:

    /var/www/mahara/htdocs/config.php

    ...// $cfg-passwordsaltmain = 'some long random string here with lots of characters';...

    Puede utilizar la randfunción OpenSSL para generar una cadena aleatoria que utilizará como cadena de sal secreta. Abra una nueva terminal, conéctese a su servidor nuevamente y ejecute el siguiente comando para generar esta cadena:

    1. openssl rand -base64 32

    La -base64 32opción garantiza una cadena codificada en Base64 de 32 caracteres de longitud. Actualice el valor de passwordsaltmaina your_generated_salt:

    /var/www/mahara/htdocs/config.php

    ...$cfg-passwordsaltmain = 'your_generated_salt';...

    Advertencia: Una vez configurada, no debe perder esta cadena o deberá restablecer todas las contraseñas de usuario. Es una buena práctica mantener una copia de seguridad segura de su config.phparchivo

    Nota: es posible que desees configurarlo productionmodecomo falso cuando uses Mahara como sitio de desarrollo o prueba. Si lo configuras como falso, se habilitará la visualización en pantalla de advertencias y mensajes de error para facilitar las pruebas.

    Guarde y cierre el archivo.

    Con Mahara configurado, está listo para servir Mahara utilizando el servidor web Apache.

    Paso 5: Configuración de Apache

    En los requisitos previos, configuraste un dominio y lo apuntaste a este servidor. También instalaste Apache y configuraste HTTPS con Let's Encrypt. Ahora, usaremos Apache para brindar servicio a Mahara.

    Si su archivo de configuración de host virtual se llama, mahara.your_domain.confLet's Encrypt creó un nuevo archivo de configuración llamado mahara.your_domain-le-ssl.confque maneja las solicitudes HTTPS para su dominio.

    Abra ese archivo. Asegúrese de reemplazarlo mahara.your_domaincon el nombre real de su archivo:

    1. sudo nano /etc/apache2/sites-available/mahara.your_domain-le-ssl.conf

    El archivo se verá similar a esto:

    /etc/apache2/sites-available/su_dominio-le-ssl.conf

    ...IfModule mod_ssl.cVirtualHost *:443        ServerAdmin webmaster@localhost        ServerName mahara.your_domain        DocumentRoot /var/www/mahara.your_domain        ErrorLog ${APACHE_LOG_DIR}/error.log        CustomLog ${APACHE_LOG_DIR}/access.log combinedSSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.conf/VirtualHost/IfModule...

    La ServerNamedirectiva define el dominio base que debe coincidir con esta definición de host virtual. Este también debe ser el nombre de dominio que eligió proteger con un certificado SSL en la sección Requisitos previos .

    Nota: Su configuración de Apache no debe contener ningún archivo ServerAliases. Mahara espera que se acceda a través de una URL . Si utiliza un alias de servidor, experimentará problemas como tener que iniciar sesión dos veces y romper las funciones de inicio de sesión único (SSO).

    Sin embargo, si por alguna razón necesita un alias, puede configurar una segunda directiva VirtualHost además de la anterior.

    Realice las siguientes adiciones al archivo:

    /etc/apache2/sites-available/su_dominio-le-ssl.conf

    ...IfModule mod_ssl.cVirtualHost *:443        ServerAdmin webmaster@localhost        ServerName mahara.your_domain        DocumentRoot /var/www/mahara.your_domain/htdocs        Directory /            Options FollowSymLinks            AllowOverride None        /Directory        Directory /var/www/your_domain/htdocs            Options Indexes FollowSymLinks MultiViews            AllowOverride None            Order allow,deny            allow from all        /Directory        ErrorLog ${APACHE_LOG_DIR}/error.log        CustomLog ${APACHE_LOG_DIR}/access.log combinedSSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pemInclude /etc/letsencrypt/options-ssl-apache.conf/VirtualHost/IfModule...

    Primero, actualiza el DocumentRootpara incluirlo /htdocs. Luego, agrega dos bloques nuevos.

    El Directory /bloque hace referencia a la raíz del sistema de archivos. Especifica directivas que se aplican a todos los archivos y directorios en cualquier lugar del servidor. Especificar directivas para este bloque nos permite proteger su servidor de intrusiones colocando directivas predeterminadas como AllowOverride None.

    El bloque hace referencia a la raíz del documento de Mahara. Las directivas declaradas aquí anulan las declaradas en el bloque. Estas directivas son los requisitos fundamentales para que una configuración de Apache sirva a Mahara.Directory /var/www/mahara.your_domain/htdocsDirectory /

    Guarde y cierre el archivo.

    Ahora está listo para configurar su servicio PHP.

    Paso 6: Ajuste de la configuración de PHP

    Nuestro último paso es actualizar php.iniel archivo de Apache. Esto cambiará el nivel de detalle de nuestro registro y modificará POSTlos tamaños y los valores máximos de carga.

    Abra el archivo:

    1. sudo nano /etc/php/7.2/apache2/php.ini

    Este es un archivo grande. Repasemos las actualizaciones una por una.

    Encuentre la log_errorslínea y asegúrese de que coincida con el código resaltado:

    /etc/php/7.2/apache2/php.ini

    . . .log_errors = On. . .

    Si se configura log_errorsen Activado, PHP registrará los errores encontrados al ejecutar Mahara para facilitar la depuración.

    Ahora busque la línea que comienza con upload_max_filesize = 2M. Reemplácela 2Mcon 50M:

    7.2^/apache2/php.ini”/etc/php/^7.2^/apache2/php.ini

    . . .upload_max_filesize = 50M. . .

    Esto aumentará el tamaño máximo de archivo de carga a 50 megabytes.

    Ahora busque la línea que comienza con post_max_size = 8M. Reemplácela 8Mcon 100M:

    7.2^/apache2/php.ini”/etc/php/^7.2^/apache2/php.ini

    . . .post_max_size = 100M. . .

    upload_max_filesizerepresenta el tamaño máximo permitido para los archivos publicados, mientras que post_max_sizees el tamaño máximo permitido para todos POSTlos datos del cuerpo. Por lo tanto, siempre querrá que este segundo número sea más alto. Estas configuraciones permitirán que Mahara acepte cargas de archivos en los máximos establecidos.

    Ahora vaya al final del archivo y agregue las siguientes directivas:

    /etc/php/7.2/apache2/php.ini

    ...register_globals = Offmagic_quotes_runtime = Offmagic_quotes_sybase = Offmagic_quotes_gpc = Offallow_call_time_pass_reference = Off

    register_globals = Offdeshabilita register_globals. Habilitarlo tiene implicaciones de seguridad como se destaca en el Manual de PHP.

    magic_quotes_runtimeLa configuración Offimpide que PHP escape automáticamente las comillas con una barra invertida de cualquier función que provenga de una fuente externa ( POST/ GET). magic_quotes_runtime, magic_quotes_sybase, y magic_quotes_gpcestán en desuso.

    allow_call_time_pass_referenceTambién está obsoleto.

    Guarde y cierre el archivo.

    Ahora reinicie Apache:

    1. sudo systemctl restart apache2

    Con esto se completa la configuración del servidor. Ahora está listo para ejecutar el instalador de Mahara e ingresar a su ePortfolio a través de un navegador web.

    Paso 7: Ejecutar el instalador de Mahara

    Con Apache y PHP correctamente configurados, procedamos a finalizar la instalación de Mahara a través de su instalador basado en web.

    En su navegador, navegue hasta el nombre de dominio de su servidor. Aparecerá una pantalla que muestra la información de licencia de Mahara y un botón para continuar con la instalación.

    Haga clic en el botón Instalar Mahara y espere hasta que el instalador termine de realizar todas las instalaciones. Una vez hecho esto, desplácese hacia abajo. Verá una sección que dice Se instaló Mahara correctamente. Continuar . Haga clic en Continuar para continuar.

    Mahara le solicitará que ingrese una nueva contraseña y una dirección de correo electrónico principal. Continúe y envíe el formulario.

    Ya está listo para comenzar a utilizar Mahara. Pero antes de comenzar a explorar su nuevo ePortfolio, es posible que desee configurar algunas funciones finales.

    Configurar correo electrónico

    Para la configuración de producción, asegúrese de que Mahara pueda enviar correos electrónicos. Esto es útil para enviar notificaciones, como correos electrónicos de confirmación, después de que los usuarios se registren en el sitio. Puede especificar un servidor SMTP saliente con configuraciones de administrador. Haga clic en el menú desplegable en la parte superior derecha y elija Configurar sitioOpciones del sitioCorreo electrónico .

    Configurar un trabajo cron

    Por último, considere configurar una tarea cron para que se ejecute htdocs/lib/cron.phpcada minuto. Si no configura esto, verá que los feeds RSS no se actualizarán y que algunas notificaciones por correo electrónico no se enviarán. Continúe e ingrese el siguiente comando. Obtendrá una opción para seleccionar el editor que desee. En este ejemplo, procederemos con el nanoeditor:

    1. sudo crontab -e

    Agregue la siguiente línea al final del archivo reemplazando mahara.your_domaincon el nombre del directorio donde instaló Mahara en el Paso 2 :

    * * * * * php /var/www/mahara.your_domain/htdocs/lib/cron.php

    Con su correo electrónico y su trabajo cron configurados, ahora está listo para usar Mahara.

    Conclusión

    Mahara es una plataforma potente y popular. Es un gran recurso para profesores y alumnos, especialmente en entornos de aprendizaje remoto. Mahara también es popular fuera del ámbito educativo, donde los usuarios crean blogs y herramientas para crear currículums.

    Los usuarios también pueden elegir entre numerosos temas, mientras que los administradores pueden explorar una gran biblioteca de complementos.

    Después de familiarizarse con la interfaz de usuario, considere seguir el artículo Próximos pasos en el sitio web de Mahara para obtener más ideas.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion