Cómo instalar y configurar Mahara en Ubuntu 18.04

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
sudo
y 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_domain
como ejemplo. - Un host virtual configurado para el dominio mediante la
ServerName
directiva. 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 postgres
usuario:
- sudo -i -u postgres
El -i
conmutador proporciona un shell interactivo, mientras que sudo
el uso con el -u
conmutador permite cambiar de usuario.
Ahora crea un usuario de Postgres; asegúrate de reemplazarlo mahara
con tu nombre de usuario preferido:
- createuser -SRDP mahara
Postgres le solicitará que ingrese Enter password for a new role:
. role
Aquí 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 maharadb
el nombre que prefiera para su nueva base de datos y mahara
el nuevo usuario que acaba de crear:
- createdb -O mahara -EUTF8 maharadb
Ahora puedes salir del postgres
usuario:
- 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:
- mysql -u root -p
Proporcione su contraseña de root de MySQL para obtener acceso. Ahora cree su base de datos Mahara. Reemplácela maharadb
con otro nombre:
- 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 maharadb
base de datos. Recuerde proporcionar una contraseña segura en lugar de password
y reemplazarla mahara
por el nombre de usuario que desee:
- 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.gz
enlace a la última versión estable, descárguelo con el wget
comando. Asegúrese de reemplazarlo /19.10/19.10.2/+download/mahara-19.10.2.tar.gz
por la versión que seleccionó:
- 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
- tar xzvf mahara-19.10.2.tar.gz
- ls
El ls
comando 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_domain
mahara.your_domain
Nota: Mahara debe instalarse en un directorio vacío. Si ya tiene archivos aquí, considere cambiarlos DocumentRoot
y utilizar un nuevo directorio.
Ahora copie el directorio Mahara:
- sudo cp -a mahara-19.10.2/. /var/www/mahara.your_domain/
El -a
modificador 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:
- sudo apt update
- sudo apt install php-gd php-pgsql php-xmlrpc php-xml php-curl php-mbstring
Escriba y
las 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_html
directorio.
Vamos a crear el directorio en /var/maharadata
:
- sudo mkdir /var/maharadata
Actualice la propiedad con chown
:
- 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.php
archivo de Mahara. Estos ajustes conectarán tu base de datos y cifrarán tu contraseña.
Cambiar al directorio de códigos de Mahara:
- cd /var/www/mahara.your_domain/htdocs
Crea tu config.php
archivo copiando el config-dist.php
archivo en el htdocs
directorio.
Cambia de directorio y copia el archivo:
- cp config-dist.php config.php
Ahora abre config.php
usando nano
tu editor de texto preferido:
- nano config.php
Localice la siguiente sección en el archivo y realice los cambios necesarios. Déjela $cfg-dbtype
como postgres
está a menos que esté usando MySQL, en cuyo caso cámbiela a mysql
. Cambie maharadb
, mahara
, y dbpassword
para 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 passwordsaltmain
con 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 rand
funció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:
- openssl rand -base64 32
La -base64 32
opción garantiza una cadena codificada en Base64 de 32 caracteres de longitud. Actualice el valor de passwordsaltmain
a 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.php
archivo
Nota: es posible que desees configurarlo productionmode
como 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.conf
Let's Encrypt creó un nuevo archivo de configuración llamado mahara.your_domain-le-ssl.conf
que maneja las solicitudes HTTPS para su dominio.
Abra ese archivo. Asegúrese de reemplazarlo mahara.your_domain
con el nombre real de su archivo:
- 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 ServerName
directiva 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 DocumentRoot
para 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/htdocs
Directory /
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.ini
el archivo de Apache. Esto cambiará el nivel de detalle de nuestro registro y modificará POST
los tamaños y los valores máximos de carga.
Abra el archivo:
- sudo nano /etc/php/7.2/apache2/php.ini
Este es un archivo grande. Repasemos las actualizaciones una por una.
Encuentre la log_errors
lí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_errors
en 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 2M
con 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 8M
con 100M
:
7.2^/apache2/php.ini”/etc/php/^7.2^/apache2/php.ini
. . .post_max_size = 100M. . .
upload_max_filesize
representa el tamaño máximo permitido para los archivos publicados, mientras que post_max_size
es el tamaño máximo permitido para todos POST
los 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 = Off
deshabilita register_globals
. Habilitarlo tiene implicaciones de seguridad como se destaca en el Manual de PHP.
magic_quotes_runtime
La configuración Off
impide 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_gpc
están en desuso.
allow_call_time_pass_reference
También está obsoleto.
Guarde y cierre el archivo.
Ahora reinicie Apache:
- 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 sitio – Opciones del sitio – Correo electrónico .
Configurar un trabajo cron
Por último, considere configurar una tarea cron para que se ejecute htdocs/lib/cron.php
cada 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 nano
editor:
- sudo crontab -e
Agregue la siguiente línea al final del archivo reemplazando mahara.your_domain
con 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.
Deja una respuesta