Moodle

De SergiTurWiki

Share/Save/Bookmark
Dreceres ràpides: navegació, cerca
Aquesta wiki forma part dels materials d'un curs
Curs: IniciacioMoodle
Fitxers: IntroduccioMoodle.pdf (IntroduccioMoodle.odp),

InstalacioMoodle.pdf (InstalacioMoodle.odp),ELearningTimeLine.pdf,

GestioUsuarisICursos.pdf (GestioUsuarisICursos.odp),

MoodleComCMS.pdf (MoodleComCMS.odp),

MoodleComLMS.pdf (MoodleComLMS.odp),

MoodleComLMS2.pdf (MoodleComLMS2.odp),videotutorials, Moodle com a plataforma educativa de centre

Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/DissenyXarxaLocalLinux/moodle/sessio7/Apache/videotutorials_instal_lacio_Moodle_i_Mediawiki/
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas


Contingut

Instal·lació a Debian

Per instal·lar a Debian com a paquet de repositori he tingut que activar unstable e instal·lar d-aqui la versió 1.6.1+ de Moodle. Per usar aquestes versions de moodle i no tenir problemes amb el nou sistema basat en unicode i les llengües vaig tenir que augmentar la versió de mysql d'un servidor Debian basat en stable.

Instal·lació a Ubuntu

A Ubuntu normal la instal·lació és similar però cal instal·lar també el paquet php5-mysql:

sudo apt-get install mysql-server-5.0 php5-mysql

Un cop tenim la base de dades podem instal·lar moodle:

 sudo apt-get install moodle

Instal·lació a Ubuntu Server

Consulteu també l'article Ubuntu Server.

NOTA: La versió 8.10 d'Ubuntu (i de fet també altres versions anteriors), permeten instal·lar un LAMP durant la 
instal·lació del sistema operatiu. Aleshores no cal instal·lar mysql-server-5.0.

Moodle nomes necessita tenir una base de dades instal·lada. De moment suporta mysql i postgresql. Podem instal·lar mysql:

 sudo apt-get install mysql-server-5.0

Un cop tenim la base de dades podem instal·lar moodle:

 sudo apt-get install moodle

S'instal·laran totes les dependències. Si al instal·lar ubuntu server hem instal·lat un servidor LAMP no caldra ni apache, ni mysql ni php.

Instal·lació manual 1

Consulteu Aplicacions_web_LOE/Sessió_sobre_LMS._Moodle#Instal.C2.B7laci.C3.B3_de_Moodle

Instal·lació manual 2

Primer cal seguir els passos per a instal·lar Ubuntu Server. Un cop tenim el sistema operatiu necessitem obtenir una còpia de Moodle. Podem descarregar Moodle des de la web:

http://download.moodle.org/

Tal com diu la pàgina la versió recomanada per a noves instal·lacions és:

Latest Stable Build

Que és la primera que apareix. Tenim dos opcions de descàrrega, un fitxer tar.gz o un fitxer zip. Feu click a l'enllaç download de la versió tar.gz:

http://download.moodle.org/download.php/stable19/moodle-weekly-19.tgz

I s'iniciarà la descàrrega. En el cas que vulgueu baixar el fitxer a un servidor que no tingui entorn gràfic i no pogueu accedir a un navegador web, podeu utilitzar wget:

$ wget http://download.moodle.org/download.php/stable19/moodle-weekly-19.tgz

Aquesta adreça la obteniu a la pàgina anterior a l'enllaç

"click here to download manually"

Un cop s'ha descarregat el descomprimim amb:

$ tar xvzf moodle-weekly-19.tgz 

I ens generarà una carpeta anomenada moodle. Movem aquesta carpeta a /var/www:

$ sudo mv moodle /var/www

I li canviem els permisos a superusuari:

$ sudo chown -R root:root /var/www/moodle

Ara configurem Apache. Anem a la carpeta /etc/apache2/sites-available:

$ cd /etc/apache2/sites-available

I creem un fitxer. Podem utilitzar l'editor de text joe, si no el tenim l'instal·lem amb:

$ sudo apt-get install joe

Creem un fitxer per a la configuració de moodle:

$ sudo joe moodle

I li enganxeu el següent text:

Alias /moodle /var/www/moodle

<DirectoryMatch /var/www/moodle/>

Options +FollowSymLinks
AllowOverride None

AcceptPathInfo on

order deny,allow
deny from all
#allow from 127.0.0.0/255.0.0.0
allow from all

<IfModule mod_php5.c>
  	php_flag magic_quotes_gpc On 
	php_flag magic_quotes_runtime Off
	php_flag file_uploads On
	php_flag short_open_tag On
	php_flag session.auto_start Off
	php_flag session.bug_compat_warn Off

	php_value upload_max_filesize 200M
	php_value post_max_size 200M
</IfModule>
 
<IfModule mod_dir.c>
	DirectoryIndex index.php
</IfModule>

</DirectoryMatch>

Guardeu el fitxer amb Ctrl+k+x. Ara cal activar el nou lloc web amb:

$ sudo a2ensite moodle

I tornar a iniciar Apache

$ sudo /etc/init.d/apache2 restart

Ara cal crear una carpeta per guardar les dades de moodle. La crearem a /var/lib/moodledata:

$ sudo mkdir /var/lib/moodledata
 

Canviem els permisos i els propietaris de la carpeta

$ sudo chown -R nobody:www-data /var/lib/moodledata
$ sudo chmod -R 0770 /var/lib/moodledata

També es necessari crear una base de dades MySQL i crear un usuari que tingui permisos d'accés a aquesta base de dades:

$ sudo mysql -u root -p

Ara comproveu amb:

mysql> SHOW DATABASES;

Que no existeix una base de dades anomenada moodle i la creem:

mysql> CREATE DATABASE moodle;
Query OK, 1 row affected (0.00 sec)

La fem UTF8:

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

Ara creem un usuari que tingui permissos:

 IMPORTANT: Cal modificar yourpassword per una paraula de pas que desitgeu i el mateix succeïx amb l'usuari (canvieu 
moodleuser per l'usuari que desitgeu). Enrecordeu-vos d'aquests valors perquè els necessitareu durant la instal·ació.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,
   -> DROP,INDEX,ALTER ON moodle.*
   -> TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
 Query OK, 0 rows affected (0.01 sec)

Ja hem acabat amb la base de dades. Per sortir:

mysql> quit;

Ara cal instal·lar uns paquets extres necessaris per a Moodle:

$ sudo apt-get install php5-gd php5-curl php5-xmlrpc

I tornem a iniciar Apache:

$ sudo /etc/init.d/apache2 restart

Ara anem a l'adreça:

http://IP_DEL_SERVIDOR/moodle

I executem l'assistent d'instal·lació de Moodle.

Assistent d'instal·lació de Moodle

Vegem-ne les captures de pantalla:

El primer és escollir l'idioma de la instal·lació:

Imatge:MoodleInstalacio0000.png

NOTA: a qui només escollim l'idioma de l'instal·lador. L'idioma de Moodle és diferent.

La següent pantalla és fa una comprovació de si tenim instal·lat tot lo necessari per tal que funcioni Moodle:

Imatge:MoodleInstalacio000.png

Tot seguit ens pregunta quina serà la URL del servidor Moodle i a on esta la carpeta de dades:

Imatge:MoodleInstalacio00.png

Tal i com hem decidit anteriorment la carpeta de dades és /var/lib/moodledata.

NOTA: Adapteu l'exemple a les vostre necessitats. Per exemple, molt possiblement voldreu utilitzar la url http://localhost/moodle en comptes de http://localhost/moodle2

Ara venen les dades d'accés a la base de dades. Aquí haurem de posar les valors d'usuari i paraula de pas que hem escollit anteriorment i el nom de la base de dades:

Imatge:MoodleInstalacio0.png

El següent pas comprova els mòduls de PHP que hi ha disponible i si en falta algun de necessari per a Moodle:

Imatge:MoodleInstalacio.png

En el nostre cas falta XMLRPC, que es pot instal·lar amb:

$ sudo apt-get install php5-xmlrpc
$ sudo /etc/init.d/apache2 restart

El següent pas us permet descarregar el paquet d'idioma. En el nostre cas descarregarem el paquet d'idioma català:

Imatge:MoodleInstalacio2.png

Al final genera el contingut d'un fitxer anomenat 'config.php. Moodle intentarà copiar aquest fitxer a la carpeta que correspongui però és molt possible que per qüestions de permisos no ho pugui fer. Aleshores copieu vosaltres mateixos aquest contingut i el poseu a un fitxer config.php que ha d'estar a la carpeta /var/www/moodle o /usr/share/moodle depenent de on hàgiu instal·lat Moodle:

$ sudo joe /usr/share/moodle/config.php

Imatge:MoodleInstalacio3.png

I afegiu el text i guardeu amb Ctrl+k+x.

IMPORTANT: No afegiu cap espai ni cap caràcter extra al final del fitxer! Pot provocar el error de PHP "header already sent"

Ara heu d'acceptar la llicència GPL:

Imatge:MoodleInstalacio4.png

I seleccioneu la opció Operació no interactiva:

Imatge:MoodleInstalacio5.png

Es posarà a crear taules de la base de dades...

Finalment la última pantalla és per a configurar l'usuari d'administració:

Imatge:MoodleInstalacio6.png

Des de fa algunes versions de Moodle a l'usuari administrador de l'obliga a utilitzar una paraula de pas potent. Us pot aparèixer un error en vermell com:

La contrasenya ha de contenir almenys 1 majúscula/es.
La contrasenya ha de contenir almenys 1 caràcter/s no alfanumèric/s.

No ens queda més remei que pensar una paraula de pas més potent.

Finalment li heu de posar un nom al vostre Moodle:

Imatge:MoodleInstalacio7.png

Ja teniu Moodle instal·lat.

Recursos:

Qüestions a tenir en compte

Instal·lar el suport per als idiomes

Activar els captchas si utilitzem autosubscripció

Paths del sistema

Consulteu:

Configuració remota

Un cop instal·lat moodle com a paquet hem de configurar moodle a l'adreça

 http://localhost/moodle

IMPORTANT: Cal fer notar que moodle espera ser configurat desde localhost. Com ubuntu server no porta entorn gràfic no podem executar un navegador. Per tant ho haurem de configurar remotament i caldra modificar el fitxer /etc/apache2/conf.d/moodle

 Alias /moodle /usr/share/moodle/
 
 <DirectoryMatch /usr/share/moodle/>
 
 Options +FollowSymLinks
 AllowOverride None
 
 order deny,allow
 deny from all
 #allow from 127.0.0.0/255.0.0.0
 allow from all
 
 <IfModule mod_php4.c>
   php_flag magic_quotes_gpc On
   php_flag magic_quotes_runtime Off
   php_flag file_uploads On
   php_flag short_open_tag On
   php_flag session.auto_start Off
   php_flag session.bug_compat_warn Off
   
   php_value upload_max_filesize 100M
   php_value post_max_size 100M
 </IfModule>
 
 <IfModule mod_dir.c>
       DirectoryIndex index.php
 </IfModule>
 
 </DirectoryMatch>

Com podeu observar cal canviar la linía allow form all per permetre l'accés a moodle desde remot. També he augmentat el tamany màxim de fitxer (ja que tinc copies de seguretat de moodle que vull restaurar que ocupen bastant més que 2M).

Al fitxer /etc/moodle/config.php cal modificar la variable wwwwroot per evitar errors al executar la configuració.Per exemple

 $CFG->wwwroot = 'http://192.168.0.252/moodle';

o el nom DNS que correspongui a la màquina.

Cal recordar que si fem canvis a les configuracions d'apache (fitxer apache.conf de moodle) cal que reiniciem el servei d'apache per aplicar els canvis:

 sudo /etc/init.d/apache2 restart

Integració amb ldap (skolelinux)

Mesures ANTISPAM

Recursos:

Open ID

La gent de Canonical ha promocionat el desenvolupament d'un plugin/mòdul de Moodle per a poder utilitzar OpenID.

Els passos a seguir són:

Descarregar la última versió del mòdul al vostre servidor:

$ cd
$ wget http://launchpad.net/moodle-openid/trunk/2.0/+download/moodle-openid-rev27.zip

Podeu consultar la última versió al launchpad:

https://launchpad.net/moodle-openid/+download

Ara descomprimiu el mòdul:

$ sudo unzip moodle-openid-rev27.zip 

Per instal·lar cal seguir el README:

$ cd moodle-openid
$ joe README 

Els passos a seguir són copiar diverses carpetes al vostre Moodle. Suposant que teniu el Moodle a /usr/share/moodle:

$  sudo cp -r ~/moodle-openid/lib/openid /usr/share/moodle/lib
$  sudo cp -r ~/moodle-openid/auth/openid /usr/share/moodle/auth
$  sudo cp -r ~/moodle-openid/blocks/openid /usr/share/moodle/blocks
$  sudo cp -r ~/moodle-openid/lang/en_utf8_local /usr/share/moodle/lang

NOTA: Canvieu /home/sergi pel path absolut de la vostra HOME

Ara cal anar a la web del vostre Moodle

Site Administration > Notifications

I deixeu que us generi les taules necessàries a la base de dades.

Ara aneu a:

Administration > Users > Authentication

I activeu el mòdul de OpenID fent clic al ull tancat. Podeu gestionar les preferències del mòdul des de aquí.

Tingueu en compte que ara hi ha un bloc nou de Moodle per a OpenID.

Moodle Network

Consulteu Moodle Network.

Afegir cron a instal·lacions manuals

$ cat /etc/cron.d/moodle
# Regular cron jobs for the moodle package
*/5 * * * * www-data [ -f /usr/share/moodle/admin/cron.php ] && /usr/bin/php -f /usr/share/moodle/admin/cron.php > /dev/null

Consulteu també l'article Cron.


Copiar la base de dades

Consulteu:

mysqldump

Resol·lució de problemes. Troubleshooting

No permet actualitzar la imatge d'usuari (avatar) al pèrfil

Cal activar gd a / ► Administració / ► Servidor/ ► Camins del sistema. També cal instal·lar gd per a php:

$ sudo apt-get install php5-gd

Moodle no descàrrega correctament fitxers i no detecta el CSS

Al fitxer config.php al final hi ha un missatge que posa:

// MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,
// RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS ON THE NEXT LINE.
?>

Tal com diu, podem tenir problemes si posem text (encara que siguin espais o salts de línia) després de ?>.

Això és degut a que si posem contingut al final del fitxer, aquest contingut ja forma part de la resposta. Moodle, per descarregar fitxers, modifica capçaleres HTTP, i aquestes només es poden modificar si encara no s'ha enviat cap contingut per HTTP.

Podeu trobar errors com:

[Fri Mar 13 08:23:57 2009] [error] [client 10.1.116.95] Headers were already sent in file: /var/www/moodle/config.php on line 25, referer:  
http://10.1.99.84/moodle/

Al fitxer: /var/log/apache2/error.log.

Aquest fitxer es troba a l'arrel de la instal·lació de Moodle. Per exemple.

  • Instal·lació manual de Moodle: /var/www/moodle/config.php
  • Instal·lació des dels repositoris: /usr/share/moodle/config.php

Com configurar un servidor Moodle darrera d'un proxy

Al bloc d'administració, aneu a l'apartatServidor/HTTP i poseu el proxy als camps de text

  • Ordinador intermediari (proxyhost)
  • Port intermediari (proxyport)

Per exemple, amb el proxy de l'IES Copèrnic:


  • Ordinador intermediari (proxyhost): 192.168.11.1
  • Port intermediari (proxyport): 800

També val la pena que configureu l'accés al proxy des de la línia de comandes. Consulteu:

Configuració_de_clients_proxy

Consultar la versió de Moodle

Al bloc d'administració, aneu a l'apartatServidor/Entorn.

Unfortunately cookies are currently not enabled in your browser

Consulteu:

http://tracker.moodle.org/browse/MDL-17564

Backup fail. An error occurred while copying the zip file to the course directory

Creant backups a un servidor moodle em trobava amb el següent error>

    *  Creating temporary structures
   * Deleting old data
   * Creating XML file
         o Writing header
         o Writing general info
         o Writing course data
               + Course info
               + Sections
         o Writing users info
         o Writing categories and questions
         o Writing scales info
         o Writing groups info
         o Writing events info
         o Writing modules info
               + Assignments
               + Choices
               + Forums
               + Student Notes
               + Quizzes
               + Resources
               + Surveys
               + Chats
               + Workshops
               + Exercises
               + Glossaries
               + Dialogues
               + Labels
               + Lessons
               + Scorms
               + Wikis
   * Copying user files
   * Copying course files
   * Zipping backup
   * Copying zip file
   An error occurred while copying the zip file to the course directory

Vaig trobar la solució als de moodle. Cal installar zip i unzip:

$ sudo apt-get install zip unzip

També cal definir els paths correctament. Amb l'usuari admin cal anar a l'apartat Camins del sistema:

http://MYMOODLE.or/moodle/admin/settings.php?section=systempaths

I indicar el path de les eines zip i unzip:

El path el podeu consultar amb l'ordre whereis:

$ whereis zip
zip: /usr/bin/zip /usr/share/man/man1/zip.1.gz
$ whereis unzip
unzip: /usr/bin/unzip /usr/share/man/man1/unzip.1.gz

Error a Ubuntu Server Gutsy. /var/lib/update-notifier/user.d/moodle-reconfigure-required

Al fer un upgrade de Moodle en una Ubuntu Server, al passar de Feisty a Gutsy:

$ sudo dpkg-reconfigure moodle
cp: cannot create regular file `/var/lib/update-notifier/user.d/moodle-reconfigure-required': No such file or directory

El problema és que a Ubuntu server no hi ha update-notifier!!!. Per solventar l'error podem editar el fitxer:

/var/lib/dpkg/info/moodle.postinst


A la línia 242 podem comentar la sentència if :

#if test -d $uund; then
#    cp -f /usr/share/moodle/moodle-reconfigure-required.update-notifier \
#          /var/lib/update-notifier/user.d/moodle-reconfigure-required   
#fi

Fallen les restauracions en cursos molt llargs

Cal mirar les variables de php i apache que configuren els valors màxims d'uploads...

Però també pot ser un error amb suhosin:

> sudo tail -f /var/log/apache2/error_log
[Tue Jan 19 17:36:36 2010] [notice] mod_python: using mutex_directory /tmp 
[Tue Jan 19 17:36:36 2010] [notice] Apache/2.2.4 (Linux/SUSE) PHP/5.2.4 with Suhosin-Patch mod_python/3.3.1 Python/2.5.1 mod_mono/1.2.5 mod_perl/2.0.3 Perl/v5.8.8  
configured -- resuming normal operations 
[Tue Jan 19 17:36:57 2010] [error] [clie nt 193.152.163.193] ALERT - configured POST variable limit exceeded - dropped variable 'restore_resource_instance_154' (attacker  
'193.152.163.193', file '/srv/www/htdocs/moodle/backup/restore.php'), referer: http://www.iesebre.com/moodle/backup/restore.php 
[Tue Jan 19 17:38:53 2010] [notice] caught SIGTERM, shutting down
[Tue Jan 19 17:38:53 2010] [warn] (22)Invalid argument: Failed to destroy the '/tmp/mod_mono_dashboard_XXGLOBAL_1' shared memory dashboard
[Tue Jan 19 17:38:55 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Tue Jan 19 17:38:55 2010] [notice] mod_python: using mutex_directory /tmp 
[Tue Jan 19 17:38:55 2010] [notice] Apache/2.2.4 (Linux/SUSE) PHP/5.2.4 with Suhosin-Patch mod_python/3.3.1 Python/2.5.1 mod_mono/1.2.5 mod_perl/2.0.3 Perl/v5.8.8  
configured -- resuming normal operations 
[Tue Jan 19 17:39:03 2010] [error] [client 193.152.163.193] ALERT - configured POST variable limit exceeded - dropped variable 'restore_resource_instance_154' (attacker  
'193.152.163.193', file '/srv/www/htdocs/moodle/backup/restore.php'), referer: http://www.iesebre.com/moodle/backup/restore.php
[Tue Jan 19 17:42:11 2010] [error] [client 213.176.161.200] File does not exist: /home/ocastell/public_html/Xarxes_i_Linux, referer: http://www.lafarga.cat/node/512
Well, I've performed one default install of Suhosin in my test environment and I've been able to reproduce the problem. In Suhosin logs I get:
   * ALERT - script tried to increase memory_limit to ... (this is just one notice)
   * ALERT - configured POST variable limit exceeded - dropped variable .... (this cause the restore to break)

So I've simply modified this settings:

suhosin.memory_limit = 201326592
suhosin.post.max_vars = 400
suhosin.request.max_vars = 400

Vegeu també

Enllaços externs

IES Nicolau Copèrnic