Bienvenido(a) a Alcance Libre 12/08/2022, 12:57
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.
Este documento considera que se utilizará de manera estricta el estándar de jerarquía de sistema de archivos y que se utilizará /srv/www en lugar de /var/www como directorio raíz para las carpetas de Moodle.
Considere que la carpeta de datos de Moodle puede llegar a crecer muchísimo y requerir docenas de GB de espacio de almacenamiento. Se recomienda que /srv/www tenga asignada una partición o volumen lógico de al menos 100 GB.
Se recomienda un servidor con al menos 4 GB RAM. Cada página abierta en Moodle representará un consumo de entre 38 a 42 MB de RAM. Sólo 100 usuarios conectados simultáneamente —cada uno accediendo a una sola página a la vez— representarán un consumo de alrededor de 4 GB de RAM.
Si utiliza CentOS 6 o Red Hat™ Enterprise Linux 6 —sin AL-Server o AL-Server-Plus— es importante señalar que la versión de PHP que se incluye sólo permite instalar hasta Moodle 2.3, la cual llegó a sin fin de ciclo de vida en enero de 2014. Con el almacén YUM AL-Server es posible instalar PHP 5.4 y la versión 2.6 de Moodle en paquete RPM, sin embargo esta versión llegó al fin de su ciclo de vida en mayo de 2015. Para poder utilizar Moodle 2.8 y versiones posteriores es necesario utilizar los almacenes YUM AL-Server y AL-Server-Plus que incluyen el requisito de MariaDB 5.5.
Moodle 2.8 en adelante requiere cómo mínimo PHP 5.4.4 y MariaDB™/MySQL™ 5.5.31 o bien PostgreSQL 9.1, por lo que CentOS 7 o Red Hat™ Enterprise Linux 7 cubren perfectamente los requisitos sin almacenes YUM adicionales.
Descargue la configuración del almacén YUM AL-Server:
wget -N https://www.alcancelibre.org/al/server/AL-Server.repo \ |
Si utiliza CentOS 6 o Red Hat™ Enterprise Linux 6 descargue además el almacén YUM AL-Server-Plus:
wget -N https://www.alcancelibre.org/al/server/AL-Server-Plus.repo \ |
Instale, configure y optimice MariaDB™ de acuerdo a como se describe en el documento titulado «Configuración básica de MySQL™ y MariaDB™».
Instale los paquetes php, php-gd, php-intl, php-mbstring, php-mysql, php-soap, php-xml y php-xmlrpc:
yum -y install php php-gd php-intl \ |
Ejecute lo siguiente para aplicar los cambios:
service httpd restart |
Genere el directorio donde se alojará Moodle y su carpeta de datos:
mkdir -p /srv/www/lms/{moodle,moodledata}
|
Asegure que el tipo de contexto de SELinux para el directorio /srv/www/lms/moodlesea httpd_sys_content_t:
chcon -R -t httpd_sys_content_t /srv/www/lms/moodle
|
Asegure que el tipo de contexto de SELinux para el directorio /srv/www/lms/moodledata sea httpd_sys_rw_content_t:
chcon -R -t httpd_sys_rw_content_t /srv/www/lms/moodledata
|
Ejecute semanage con fcontext como argumento, la opción -a, la opción -t con httpd_sys_content_t como argumento y /srv/www/lms/moodle como último argumento para establecer el contexto predeterminado para este último directorio:
semanage fcontext -a -t httpd_sys_content_t /srv/www/lms/moodle
|
Ejecute semanage con fcontext como argumento, la opción -a, la opción -t con httpd_sys_rw_content_t como argumento y /srv/www/lms/moodledata como último argumento para establecer el contexto predeterminado para este último directorio:
semanage fcontext -a -t httpd_sys_rw_content_t /srv/www/lms/moodledata
|
Agregue un usuario que se encargue de administrar el contenido de /srv/www/lms por FTPES o SFTP. Se requiere haber configurado previamente VSFTP con chroot y SSL/TLS o bien OpenSSH con chroot a través de SFTP.
useradd -s /sbin/nologin -G sftpusers -d /srv/www/lms moodleadmin |
Asigne una contraseña a este usuario:
passwd moodleadmin
|
Descargue una versión estable y soportada de Moodle:
wget -N \
http://download.moodle.org/download.php/direct/stable30/moodle-latest-30.tgz \
-P /srv/www/lms/
|
Descomprima el archivo descargado:
tar zxvf /srv/www/lms/moodle-latest-30.tgz \ |
Cambie el propietario de /srv/www/lms/moodle al usuario y grupo moodleadmin:
chown -R moodleadmin:moodleadmin /srv/www/lms/moodle |
Añada listas de control de acceso sobre el directorio /srv/www/lms/moodle que otorguen permisos de lectura, escritura y acceso al usuario apache y lectura y acceso para el grupo apache. Ésto será requerido sólo para realizar la instalación de Moodle o la instalación o actualización de componentes.
setfacl -R -m u:apache:rwX,g:apache:rX /srv/www/lms/moodle
|
Cambie el propietario de /srv/www/lms/moodledata al usuario y grupo apache:
chown -R apache:apache /srv/www/lms/moodledata
|
El contenido de este último directorio sólo debe y puede ser administrado desde la interfaz de Moodle. Este directorio y sus contenidos jamás deben estar disponibles a través de Apache.
Conecte al intérprete de MySQL:
mysql -u root -p |
Genere una base de datos para Moodle:
create database moodle;
grant all on moodle.* to moodleadmin@localhost identified by 'contraseña';
exit;
|
Genere un nuevo archivo de configuración para Moodle en Apache o bien utilice un archivo de configuración existe:
vim /etc/httpd/conf.d/virtuales.conf |
Añada el siguiente contenido:
<VirtualHost 192.168.70.15:80> DocumentRoot /srv/www/lms/moodle ServerName lms.midominio.net ErrorLog logs/lms-error_log CustomLog logs/lms-access_log combined <Directory "/srv/www/lms/moodle"> AllowOverride all php_value upload_max_filesize 128M php_value post_max_size 128M php_value memory_limit 128M php_value max_execution_time 3600 php_flag display_errors Off <IfModule mod_authz_core.c> # Apache 2.4 Require local Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 Allow from all </IfModule> </Directory> </VirtualHost> |
Personalice los valores de las directivas de PHP de acuerdo a sus necesidades. Los valores en el ejemplo son los mínimos recomendados de acuerdo a experiencia personal del autor de este documento.
Aplique los cambios ejecutando lo siguiente:
service httpd reload |
Conecte al servidor DNS si previamente configuró éste para que permita utilizar nsupdate para modificar las zonas.
nsupdate -k /etc/rndc.key |
Ejecute lo siguiente para añadir el registro que resuelva el nombre del anfitrión:
server 127.0.0.1 update add lms.midominio.net. 86400 A 192.168.70.15 send quit |
Conecte con cualquier navegador moderno hacia http://lms.midominio.net/ y complete la instalación. Si lo prefiere, puede realizar la instalación desde el intérprete de mandatos ejecutando lo siguiente:
cd /srv/www/lms/moodle |
La salida y los datos que deberá responder son similares a los siguientes donde ... representa la lista del menú de idiomas y la lista de los procesos realizados durante la instalación que son muy extensos para ser mostrados en este documento:
Moodle 3.0.4 (Build: 20160509) command line installation program
-------------------------------------------------------------------------------
== Available language packs ==
Afrikaans (af)
...
English (en)
English - Pirate (en_ar)
English for kids (en_kids)
English - United States (en_us)
Esperanto (eo)
Español - Internacional (es)
Español - México (es_mx)
Español Venezuela (es_ve)
...
isiZulu (zu)
type value, press Enter to use default value (en)
: es_mx
-------------------------------------------------------------------------------
== Permiso directorios de datos ==
valor del tipo, pulse Enter para utilizar el valor por defecto (2777)
: 2750
-------------------------------------------------------------------------------
== Dirección Web ==
valor del tipo
: http://lms.midominio.net
-------------------------------------------------------------------------------
== Directorio de Datos ==
valor del tipo, pulse Enter para utilizar el valor por defecto
(/srv/www/lms/moodledata)
:
-------------------------------------------------------------------------------
== Seleccione el controlador de la base de datos ==
mysqli
mariadb
pgsql
valor del tipo, pulse Enter para utilizar el valor por defecto (mysqli)
: mariadb
-------------------------------------------------------------------------------
== host de la Base de Datos ==
valor del tipo, pulse Enter para utilizar el valor por defecto (localhost)
:
-------------------------------------------------------------------------------
== Nombre de la base de datos ==
valor del tipo, pulse Enter para utilizar el valor por defecto (moodle)
: moodle
-------------------------------------------------------------------------------
== Prefijo de tablas ==
valor del tipo, pulse Enter para utilizar el valor por defecto (mdl_)
: lmsal_
-------------------------------------------------------------------------------
== Puerto de BasedeDatos ==
valor del tipo, pulse Enter para utilizar el valor por defecto ()
:
-------------------------------------------------------------------------------
== Socket Unix ==
valor del tipo, pulse Enter para utilizar el valor por defecto ()
:
-------------------------------------------------------------------------------
== Usuario de la base de datos ==
valor del tipo, pulse Enter para utilizar el valor por defecto (root)
: moodleadmin
-------------------------------------------------------------------------------
== Contraseña de la base de datos ==
valor del tipo
: contraseña
-------------------------------------------------------------------------------
== Nombre completo del sitio ==
valor del tipo
: Mi Organización
-------------------------------------------------------------------------------
== Nombre corto para el sitio (una palabra) ==
valor del tipo
: miorganizacion
-------------------------------------------------------------------------------
== Nombre_de_usuario de la cuenta del administrador ==
valor del tipo, pulse Enter para utilizar el valor por defecto (admin)
: minombre
-------------------------------------------------------------------------------
== Nueva contraseña de usuario admin ==
valor del tipo
: micontraseña
-------------------------------------------------------------------------------
== Copyright ==
Moodle - Modular Object-Oriented Dynamic Learning Environment
Copyright (C) 1999 en adelante, Martin Dougiamas (http://moodle.com)
Este programa es software libre: usted puede redistribuirlo y /o modificarlo
bajo los términos de la Licencia Pública General GNU (GNU General Public
License) publicada por la Fundación para el Software Libre, ya sea la versión
3 de dicha Licencia, o (a su elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA
GARANTÍA; incluso sin la garantía implícita de COMERCIALIZACIÓN o IDONEIDAD
PARA UN PROPÓSITO PARTICULAR.
Vea la página de información de Licencia de Moodle para más detalles:
http://docs.moodle.org/en/License
¿Ha leído y comprendido los términos y condiciones?
escriba s (sí) o n (no)
: s
-------------------------------------------------------------------------------
== Configurando la base de datos ==
-->Sistema
++ Éxito ++
-->availability_completion
++ Éxito ++
...
-->logstore_legacy
++ Éxito ++
-->logstore_standard
++ Éxito ++
La instalación se completo exitosamente.
|
La instalación desde el intérprete de mandatos es más rápida y conveniente para los administradores de sistemas.
Si realizó la instalación desde el navegador edite el archivo de configuración de Moodle tras concluir todo el procedimiento de instalación:
vi /srv/www/lms/moodle/config.php
|
Localice lo siguiente:
$CFG->directorypermissions = 02777; |
Cambie por:
$CFG->directorypermissions = 02750;
|
Al terminar elimine las listas de control de acceso del directorio /srv/www/lms/moodle.
setfacl -R -b /srv/www/lms/moodle
|
Cambie los permisos del archivo /srv/www/lms/moodle/config.php a sólo lectura y escritura para usuario y sólo lectura para grupo:
chmod 440 /srv/www/lms/moodle/config.php
|
Cambie el propietario del archivo /srv/www/lms/moodle/config.php al usuario moodleadmin y grupo apache:
chown moodleadmin:apache /srv/www/lms/moodle/config.php |
Añada de nuevo las listas de control de acceso el usuario y grupo apache del directorio /srv/www/lms/moodle sólo si requiere instalar o actualizar algún componente de Moodle.
setfacl -R -m u:apache:rwX,g:apache:rX /srv/www/lms/moodle
|
Deje intactos los permisos del directorio /srv/www/lms/moodledata y sus contenidos. Éstos deben mantener permanentemente permisos de lectura, escritura y acceso para el usuario y grupo apache.
Moodle requiere ejecutar con frecuencia un conjunto de operaciones de mantenimiento y procesar la cola de envío de correo electrónico de los foros y las tareas. Genere el archivo /etc/cron.d/00moodle-cron:
vi /etc/cron.d/00moodle-cron |
Añada el siguiente contenido:
*/15 * * * * apache php -f /srv/www/lms/moodle/admin/cli/cron.php > /dev/null
|
Lo anterior hará que cada 15 minutos se ejecute como el usuario apache php -f /srv/www/lms/moodle/admin/cli/cron.php, enviando la salida exitosa al dispositivo nulo.
Reinicie el servido crond para aplicar los cambios.
service crond restart |
Valide el funcionamiento de Moodle accediendo con un navegador hacia http://lms.midominio.net.
Para actualizar Moodle a una versión más reciente se debe seguir el siguiente procedimiento, mismo que implica reemplazar por completo el directorio de moodle utilizando una copia de el archivo config.php y copiando o actualizando los complementos o módulos que se hayan añadido.
Se recomienda hacer primero un respaldo de la base de datos.
mysqldump --opt -umoodleadmin -pcontraseña moodle > respaldo-moodle.sql
|
Acceda al directorio de Moodle:
cd /srv/www/lms/moodle
|
Es importante impedir que haya actividad en la base de datos mientras se realiza la actualización. Ejecute lo siguiente para poner Moodle en modo de mantenimiento.
sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable |
La salida será similar a la siguiente:
|
Salga del directorio:
cd .. |
Es importante destacar que jamás se debe sobre-escribir el directorio de Moodle, particularmente si se ve a actualizar a una versión mayor. Cambie el nombre del directorio actual.
mv moodle moodle-old |
Descargue una versión más reciente de Moodle:
wget -N \
http://download.moodle.org/download.php/direct/stable31/moodle-latest-31.tgz \
-P /srv/www/lms/
|
Descomprima el archivo descargado:
tar zxvf /srv/www/lms/moodle-latest-31.tgz \ |
Asegure que el tipo de contexto de SELinux para el nuevo directorio /srv/www/lms/moodlesea httpd_sys_content_t:
chcon -R -t httpd_sys_content_t /srv/www/lms/moodle
|
Cambie el propietario del nuevo directorio /srv/www/lms/moodle al usuario y grupo moodleadmin:
chown -R moodleadmin:moodleadmin /srv/www/lms/moodle |
Copie el archivo de configuración del viejo Moodle al directorio del nuevo Moodle:
cp -a /srv/www/lms/moodle-old/config.php \ /srv/www/lms/moodle |
Acceda nuevamente al directorio de Moodle:
cd /srv/www/lms/moodle
|
Ejecute lo siguiente para realizar el procesos de actualización de la base de datos:
sudo -u apache /usr/bin/php admin/cli/upgrade.php |
La salida será similar a la siguiente:
|
Pulse la tecla s para responder que Sí.
La extensa salida será similar a la siguiente:
-->Utilería para importar idioma: es_mx
++ El paquete de idioma 'es_mx' se ha instalado exitosamente ++
-->Sistema
++ Éxito ++
-->availability_completion
++ Éxito ++
-->availability_date
++ Éxito ++
-->availability_grade
++ Éxito ++
...
++ Éxito ++
-->logstore_database
++ Éxito ++
-->logstore_legacy
++ Éxito ++
-->logstore_standard
++ Éxito ++
Command line upgrade completed successfully.
|
Permita que termine el procedimiento de actualización.
Desactive el modo de mantenimiento.
sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable |
La salida será similar a la siguiente:
|
Valide el funcionamiento de Moodle accediendo con un navegador hacia http://lms.midominio.net.
Última Edición: 22/07/2016, 21:20| Hits: 14,960