Moodle
De SergiTurWiki
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ó:
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:
Tot seguit ens pregunta quina serà la URL del servidor Moodle i a on esta la carpeta de dades:
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:
El següent pas comprova els mòduls de PHP que hi ha disponible i si en falta algun de necessari per a Moodle:
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à:
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
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:
I seleccioneu la opció Operació no interactiva:
Es posarà a crear taules de la base de dades...
Finalment la última pantalla és per a configurar l'usuari d'administració:
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:
Ja teniu Moodle instal·lat.
Recursos:
- http://docs.moodle.org/es/Instalaci%C3%B3n_de_moodle
- http://docs.moodle.org/en/Installing_Moodle#Download_and_copy_files_into_place
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)
- LDAP commands usage examples
- LDAP nightmare Part II
- http://xarxantoni.net:8080/mediawiki/index.php/Autenticaci%C3%B3_usuaris._LDAP%2C_correu_electr%C3%B2nic...#Exemple_de_configuraci.C3.B3_de_l.27escenari._Etic
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











