# Instalace Moodle

> Tato příručka popisuje, jak probíhá první instalace Moodle. V některých krocích zabíhá trochu do detailů, aby bylo možno pokrýt drobné rozdíly v nastavování různých webových serverů, takže se tento dokument může jevit zbytečně dlouhý a komplikovaný. Není třeba nechávat se odradit - Moodle lze nastavit během několika minut!

> Dopřejte si čas a projděte tento dokument pečlivě - ušetříte si tím množství zbytečné práce později.

> Obsah tohoto dokumentu:

> 1. Požadavky
> 2. Stahování
> 3. Struktura stránek
> 4. Vytvoření datového adresáře
> 5. Vytvoření databáze
> 6. Kontrola nastavení webového serveru
> 7. Úprava config.php
> 8. Administrátorská stránka
> 9. Nastavení cron
> 10. Vytvoření nového kurzu

### 1. Požadavky

> Moodle je vyvíjen převážně v Linuxu pomocí PHP, Apache a MySQL. Je pravidleně testován na PostgreSQL a v prostředí Windows XP a Mac OS X.

> Co potřebujete:

> 1. běžící PHP (verze 4.1.0 nebo vyšší) s následujícími funkcemi (většina dnešních PHP instalací je má všechny):
>    - Knihovna GD s podporou formátů JPG a PNG
>    - Zapnutou zlib knihovnu (pokud chcete zálohovat/obnovovat kurzy na Windows serveru)
>    - Zapnutou podporu sessions
>    - Povoleno nahrávání souborů (file uploading)
>    - Vypnutý Safe Mode (více o problémech s tímto režimem v diskusních fórech na moodle.org
> 2. běžící databázový server: doporučuje se MySQL nebo PostgreSQL. Teoreticky je možno použít též MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 nebo ODBC, ale v těchto případech budete muset ručně nastavovat databázové tabulky.

> Na platformě Windows je nejsnadnější cestou ke splnění těchto požadavků stažení a instalace FoxServ nebo EasyPHP. Tím získáte Apache, PHP i MySQL. Ujistěte se, že máte povolen modul GD - Moodle jinak nebude schopen zpracovávat obrázky. Možná proto budete muset odstranit komentář (;) z následující řádky v souboru php.ini: 'extension=php_gd.dll'. Je též možné, že budete muset opravit adresář session.save_path - namísto standardního "/tmp" použijte nějaký adresář Windows, například "c:/temp".

> Na platformě Mac OS X se doporučuje projekt fink. Jeho stažením získáte snadno udržovatelný balík potřebného software. Nerozumíte-li si s příkazovou řádkou, bude pro vás nejsnadnější cestou k fungujícímu PHP na Mac OS X serveru Marc Liyanage's PHP Apache Module.

> Pracujete-li na Linuxu nebo jiném Unixu, pak asi víte, jak všechny tyto věci rozběhnout. Have a lot of fun... ;-)

### 2. Stahování

> Moodle si můžete stáhnout buď jako zkomprimovaný balík nebo pomocí CVS. Oba způsoby jsou popsány v sekci 'Download' na http://moodle.org/

> Po stažení a rozbalení archívu (popřípadě po získání souborů přes CVS) naleznete adresář nazvaný "moodle" a v něm množství souborů a podadresářů.

> Nyní musíte celý tento adresář umístit (tj. zkopírovat nebo přesunout) na váš server do adresáře s webovými dokumenty (například htdocs), čímž budou vaše stránky viditelné na adrese typu http://vasserver.cz/moodle, nebo se můžete rozhodnout zkopírovat celý obsah přímo do hlavního webového adresáře a stránky tak budou viset na něčem jako http://vasserver.cz.

### 3. Struktura stránek

> Pro orientaci uvádíme stručný přehled obsahu adresáře Moodle:

> > config.php - jediný soubor, který musíte na začátku ručně upravovat
> > version.php - definuje verzi zdrojových kódů Moodle
> > index.php - titulní stránka

> > - admin/ - kód pro správu (administration) celého Moodle serveru
> > - auth/ - zásuvné moduly pro ověřování (authentication) uživatelů
> > - course/ - kód pro zobrazování a správu kurzů
> > - doc/ - nápověda a dokumentace k Moodle (například tato stránka)
> > - files/ - kód pro zobrazování a správu nahraných (uploaded) souborů
> > - lang/ - používané texty v různých jazycích, na každou lokalizaci jeden podadresář
> > - lib/ - knihovny používané jádrem Moodle
> > - login/ - kód pro zpracování přihlášení uživatelů a zřizování nových účtů
> > - mod/ - všechny moduly použitelné v Moodle kurzech
> > - pix/ - grafika používaná na stránkách
> > - theme/ - motivy stránek pro změnu jejich vzhledu
> > - user/ - kód pro zobrazování a správu uživatelů

### 4. Vytvoření datového adresáře

> Moodle bude potřebovat nějaké místo na disku, kam bude ukládat nahrané soubory, jako jsou například studijní materiály či odevzdané úkoly a další dokumenty v kurzech nebo fotografie uživatelů.

> Pro tyto účely vytvořte někde na vašem serveru adresář, do nějž bude Moodle tyto soubory ukládat. Z důvodů větší bezpečnosti je lepší, aby tento adresář NEBYL přístupný přímo přes web. Toho snadno dosáhnete tím, že jej umístíte mimo strukturu webového adresáře. Jinak lze též tento datový adresář ochránit vytvořením souboru nazvaným .htaccess, který bude obsahovat tuto řádku:

> >     deny from all

> Aby mohl Moodle tento adresář používat, ujistěte se, že proces webového serveru (například Apache) má právo zápisu do tohoto adresáře. Na Unixových strojích pro to většinou postačuje nastavit vlastníka tohoto adresáře na něco jako "wwwrun" nebo "apache".

> Na mnoha hostitelských webových serverech budete možná potřebovat omezit přístup dalších uživatelů serveru k souborům (a zabránit jim tak v jejich prohlížení nebo změně) a naopak poskytnout plný přístup pro čtení a zápis komukoliv dalšímu (což umožní webovému serveru přistupovat k vašim souborům). Máte-li problémy s bezpečným nastavením přístupu k vašim datům, promluvte si se správcem vašeho webu.

### 5. Vytvoření databáze

> Musíte vytvořit prázdnou databázi (nazvanou například "moodle") ve vašem databázovém systému, stejně jako zvláštního uživatele (například "moodleuser"), který bude mít k této (a jen této) databázi přístup. Chcete-li, použijte i superuživatele "root", ale toto se nedoporučuje: dojde-li k prozrazení hesla, je ohrožen celý váš databázový systém a ne pouze jedna databáze.

> Ukázka příkazových řádků pro MySQL:

>        # mysql -u root -p

>        > CREATE DATABASE moodle;

>        > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*

>                TO moodleuser@localhost IDENTIFIED BY 'sem_napiste_heslo';

>        > quit

>        # mysqladmin -p reload

> Ukázka příkazových řádků pro PostgreSQL:

>        # su - postgres

>        > psql -c "create user moodleuser createdb;" template1

>        > psql -c "create database moodle;" -U moodleuser template1

>        > psql -c "alter user moodleuser nocreatedb;" template1

> (Pro správu databází MySQL lze doporučit phpMyAdmin).

> Od verze 1.0.8 Moodle podporuje předpony (prefixes) v názvech tabulek, takže můžete bez problémů sdílet jednu databázi s dalšími aplikacemi.

### 6. Kontrola nastavení vašeho webového serveru

> Nejprve se ujistěte, že váš webový server je nastaven tak, aby používal index.php jako implicitní stránku (možná v kombinaci s index.html, default.htm a tak podobně).

> V Apache se toto dělá pomocí parametru DirectoryIndex v souboru httpd.conf . Může vypadat například takto:

> >     DirectoryIndex index.php index.html index.htm

> Stačí se ujistit, že index.php je na tomto seznamu (a pokud možno co nejvíce vlevo - kvůli výkonu).

> Dále, používáte-li Apache 2, zapněte proměnnou AcceptPathInfo, která povoluje předávat skriptům argumenty ve formě http://server/file.php/arg1/arg2. To je nezbytné, chcete-li užívat relativní odkazy mezi vašimi zdroji. Zároveň to může zvýšit rychlost načítání vašich Moodle stránek. Tuto volbu můžete zapnout přidáním následujích řádek do httpd.conf:

> >     AcceptPathInfo on

> Do třetice Moodle vyžaduje, aby bylo zapnuto několik funkcí PHP. Na většině serverů jsou tyto funkce zapnuty implicitně. Nicméně některé PHP servery (a některé starší verze PHP) mohou mít tyto věci nastaveny odlišně. Ujistěte se proto, zda váš konfigurační soubor PHP (většinou pojmenovaný php.ini) obsahuje:

> >     magic_quotes_gpc = On

> >        magic_quotes_runtime = Off

> >        file_uploads = On

> >        short_open_tag = On

> >        session.auto_start = Off

> >        session.bug_compat_warn = Off

> Nemáte-li na vašem serveru přístup k httpd.conf nebo php.ini, nebo pokud je Moodle na jednom serveru spolu s aplikacemi, které vyžadují jiné nastavení, můžete tato standardní nastavení POTLAČIT.

> K tomu je potřeba vytvořit soubor .htaccess v hlavním adresáři Moodle a do něj napsat tato nastavení. Toto funguje pouze na serveru Apache, pokud má navíc povoleno Overrides.

> >     DirectoryIndex index.php index.html index.htm

> >     <IfDefine APACHE2>

> >          AcceptPathInfo on

> >     </IfDefine>

> >     php_value magic_quotes_gpc On

> >     php_value magic_quotes_runtime Off

> >     php_value file_uploads On

> >     php_value short_open_tag On

> >     php_value session.auto_start Off

> >     php_value session.bug_compat_warn Off

> Zde můžete rovněž nastavit další věci, jako například maximální možnou velikost nahrávaných (tj. na server posílaných) souborů:

> >     php_value upload_max_filesize 2M

> >     php_value post_max_size 2M

> Nejjednodušším způsobem bude asi zkopírovat si připravený soubor lib/htaccess a upravit jej podle vašich potřeb. Sledujte další pokyny v tomto souboru.

### 7. Úprava config.php

> Nyní již můžete upravit hlavní konfigurační soubor config.php pomocí vašeho oblíbeného textového editoru. Tento soubor je používán ostatními skripty v Moodle.

> Začněte tím, že vytvoříte kopii dodaného souboru config-dist.php a nazvěte ji config.php. Tím máte zaručeno, že pozdější aktualizace Moodle na vyšší verzi váš konfigurační soubor nepřepíše.

> Upravte config.php tak, aby souhlasily podrobnosti o použité databázi, kterou jste pro Moodle vytvořili (včetně předpony - prefix - tabulek, to je NUTNÉ při použití PostgreSQL), dále údaje o adrese stránek, umístění instalace v systému souborů a cestě k datovému adresáři. Soubor config.php obsahuje podrobnější instrukce.

> Nadále budeme v tomto dokumentu předpokládat, že vaše instalace Moodle je dostupná na adrese http://napriklad.cz/moodle

### 8. Administrátorská stránka

> Stránka určená pro správu Moodle by se nyní měla zobrazit na adrese http://napriklad.cz/moodle/admin. Nicméně i když si v této fázi budete chtít zobrazit titulní stránku, systém vás sám pošle na stránku správy k dokončení instalace. Při prvním načtení administrátorské stránky budete vybídnuti k souhlasu s licenčními podmínkami GPL (General Public License). Nebudete-li s těmito podmínkami souhlasit, v instalaci nebude možno pokračovat.

> (Moodle se rovněž pokusí poslat vašemu prohlížeči nějaké cookies. Máte-li váš prohlížeč nastavený tak, že si můžete vybrat, zda chcete cookies přijmout nebo ne, pak cookies od Moodle přijmout musíte, jinak vám nebude Moodle správně pracovat.)

> Nyní začne Moodle nastavovat svou databázi a vytvářet v ní potřebné tabulky pro uchovávání svých dat. Nejdříve jsou nastaveny hlavní databázové tabulky. Měli byste vidět množství SQL povelů a za nimi informaci o tom, zda se povel podařilo úspěšně vykonat (pro přehlednost v zelené či červené barvě), tedy něco jako tohle:

> > CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default '', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM

> > SUCCESS

> > ...a tak dále. Na konci pak něco jako: Hlavní databáze byly úspěšně nastaveny.

> Pokud nevidíte tohle, pak musí být někde problém s databází nebo údaji, které jste nastavili v config.php. Zkontrolujte, zda PHP náhodou neběží v omezeném bezpečném režimu "safe mode" (komerční hostitelé často poskytují web právě v tomto režimu). Nastavení PHP můžete snadno zjistit vytvořením malého souboru, který obsahuje <? phpinfo() ?> a na který se podíváte pomocí vašeho prohlížeče. Zkontrolujte ještě jednou celé nastavení a zkuste se znovu vrátit na stránku správy.

> Přesuňte se až na dolní konec stránky a následujte odkaz "Pokračovat".

> Dále uvidíte podobnou stránku, která nastavuje všechny tabulky potřebné pro jednotlivými moduly. Stejně jako předtím, i nyní by všechno mělo projít na zelenou.

> Opět sjeďte až na spodní okraj stránky a stiskněte "Pokračovat".

> Nyní byste měli vidět formulář, ve kterém můžete definovat řadu dalších proměnných, jako například implicitně nabízený jazyk vašich stránek, SMTP hostitele a tak podobně. Nemějte strach z toho, že zde nenastavíte všechno napoprvé správně. Na tuto stránku se můžete kdykoliv později vrátit pomocí administrátorského rozhraní. Sjeďte na konec stránky a stiskněte "Uložit změny".

> Pokud (a pouze pokud) se zaseknete na této nebo další stránce a nemůžete pokračovat, pak má váš server pravděpodobně problém, kterému se říká "buggy referrer". Odstranit jej je snadné: upravte váš config.php a nastavte proměnnou buggy_referrer na true, pak se znovu vraťte na tuto stránku.

> Další stránku tvoří formulář, kde můžete nastavit parametry vašich Moodle stránek, jakými jsou název stránek, jejich popis a podobně. Vyplňte jej (můžete tyto věci měnit i později) a stiskněte "Uložit změny".

> Nakonec budete požádáni o vytvoření hlavního administrátorského účtu pro další přístup ke stránkám správy. Vyplňte podrobnosti o vašem jméně, emailové adrese apod. a klikněte na "Uložit změny". Ne všechna pole jsou povinná, ale pokud nevyplníte některé, které je Moodlem vyžadováno, budete na něj znovu dotázáni.

> > > Pečlivě si zapamatujte uživatelské jméno a heslo, které jste použili pro administrátorský účet. Budete jej v budoucnu potřebovat při přístupu na stránky správy.

> Po úspěšném nastavení budete vráceni na hlavní stránku správy, která obsahuje řadu odkazů uspořádáných do nabídky (tyto položky se vám rovněž objeví na titulní stránce, jste-li přihlášen jako správce). Celá správa Moodle může být řízena z této nabídky, to znamená, že odtud můžete zejména:

> - vytvářet a odstraňovat kurzy
> - vytvářet a upravovat uživatelské účty
> - spravovat účty učitelů
> - měnit nastavení stránek (motiv, název apod.)

### 9. Nastavení cron

> Některé moduly v Moodle vyžadují průběžnou kontrolu plnění svých úloh. Systém například potřebuje zkontrolovat diskusní fóra a odeslat nově vložené příspěvky emailem těm uživatelům, kteří si zřídili jejich odebírání.

> Skript, který má tohle na starosti, je umístěn v adresáři admin a jmenuje se cron.php. Tento skript se však neumí spouštět sám, proto je třeba nastavit mechanismus pravidelného volání tohoto skriptu (například každých pět minut). Tím systém získá něco jako "srdeční tep" a skript může volat další funkce v periodách definovaných jednotlivými moduly.

> Povšimněte si, že stroj volající cron.php nemusí být tentýž, jako ten, na kterém vám běží Moodle.. Je-li vám tedy poskytována webová schránka bez možnosti nastavení služby cron, můžete pravidelné volání vašeho skriptu zřídit na jakémkoliv jiném serveru či dokonce domácím počítači. Hlavní je, aby byl skript cron.php volán asi každých pět minut (nebo tak ňák).

> Nejprve si vyzkoušejte, zda vám funguje ruční volání pomocí vašeho prohlížeče:

> >     http://napriklad.cz/moodle/admin/cron.php

> Nyní potřebujte zařídit, aby se tento skript nějakým způsobem volal automaticky a pravidelně.

> #### Spouštění skriptu z příkazové řádky

> Lze volat stránku z příkazové řádky obdobným způsobem, jako bylo uvedeno v předchozím příkladu. Můžete například použít Unixový prográmek 'wget':

> >     wget -q -O /dev/null http://napriklad.cz/moodle/admin/cron.php

> Všimněte si, že v tomto příkladu je výstup stránky zahozen (resp. přesměrován na /dev/null).

> Stejným způsobem při použití programu 'lynx':

> >     lynx -dump http://napriklad.cz/moodle/admin/cron.php > /dev/null

> Případně můžete použít nezávislou verzi PHP zkompilovanou tak, aby se spouštěla na příkazové řádce. Výhodou tohoto způsobu je, že protokol vašeho webového serveru není zaplňován opakujícími se požadavky na cron.php. Nevýhodou je, že musíte mít přístup k řádkové verzi PHP:

> >     /opt/bin/php /web/moodle/admin/cron.php

> >     (Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php

> #### Automatické spouštění skriptu každých 5 minut

> Na Unixových systémech: Použijte cron. Upravte vaše nastavení cron z příkazové řádky pomocí "crontab -e" a přidejte řádku podobnou této:

> >     */5 * * * * wget -q -O /dev/null http://napriklad.cz/moodle/admin/cron.php

> Na Windows: Nejsnadnější cestou je použít balík moodle-cron-for-windows.zip, který řeší celou věc velice jednoduše. Můžete rovněž vyzkoušet zabudovanou funkci Windows "Naplánované úlohy" (Scheduled Tasks).

### 10. Vytvoření nového kurzu

> Nyní, když vám Moodle zdárně běží, můžete začít vytvářet kurzy.

> Zvolte "Vytvořit nový kurz" z nabídky na stránce Správa (popřípadě administrátorský odkaz na hlavní stránce).

> Vyplňte formulář, pozornost věnujte zejména položce uspořádání kurzu. V této fázi se nemusíte příliš starat o podrobnosti, všechna nastavení kurzu mohou být později upravena přiřazeným vyučujícím.

> Stiskněte "Uložit změny" a ocitnete se na další stránce, kde k vytvořenému kurzu přiřazujte učitele. K dispozici jsou vám pouze již existující uživatelé. Chcete-li založit nový učitelský účet, požádejte příslušného učitele, aby si jej na vašich stránkách zřídil sám (podle pokynů na přihlašovací stránce) nebo mu jej založte ručně z nabídky "Přidat nového uživatele" na stránce Správa.

> Je-li vše hotovo, je kurz připraven k dalším úpravám. Od této chvíle je přístupný z nabídky "Kurzy" na hlavní stránce.

> Viz též "Příručku učitele", kde naleznete další podrobnosti týkající se výstavby kurzu.

Moodle Dokumentace

Česká verze: $Id$