Na této stránce najdete odpovědi na některé nejčastěji kladené dotazy týkající se instalace Moodlu. Pokud jste se drželi pokynů pro instalaci, a přesto jste se dostali do problémů, pak je tato stránka určena právě vám...
Jestliže zde odpověď na svou otázku nenajdete, vyzkoušejte kurz Using Moodle na moodle.org. Začněte prohledáním diskusních fór, protože je možné, že stejný problém, jako je ten váš, již někdo řešil. Pokud nenajdete nic, co by vám pomohlo, můžete svou otázku poslat do příslušného fóra – obvykle vám někdo pomůže.
Jestliže jste bezvýsledně vyzkoušeli více různých řešení, a váš server je umístěn za firewallem, je vhodné pozměnit nastavení firewallu a vyzkoušet, zda neblokuje některou z vyžadovaných funkcí nebo nezbytnou komunikaci. Firewally způsobují v kombinaci s Moodlem problémy jen velmi zřídka, v důsledku nevhodné konfigurace jsou však v některých případech zodpovědné za sníženou funkčnost Moodlu.
Kliknutím na otázku z tohoto seznamu se dostanete přímo k příslušné odpovědi:
Mám nainstalováno PHP? Jakou verzi?
Neustále se mi zobrazuje chybové hlášení: Headers already sent.
Neustále se mi zobrazuje chybové hlášení: Failed opening required '/web/moodle/lib/setup.php'.
Zobrazují se mi chybová hlášení ohledně session_start.
Když se pokusím přidat studijní materiál, obdržím chybové hlášení.
Během úvodního nastavování nejsem vyzván k vytvoření správcovského účtu.
Nemohu se vůbec přihlásit - zůstanu na přihlašovací obrazovce a systém mě nepustí dál.
Jak mohu zálohovat celou instalaci Moodlu?
Proč se v Moodlu nezobrazuje správně čas a datum?
Z fóra mi nejsou zasílany e-mailové kopie příspěvků.
Například: Not Found: The requested URL /moodle/file.php/2/myfile.jpg was not found on this server.
Webový server musí být nakonfigurován tak, aby část URL za názvem skriptu bylo možno přímo předat skriptu. Na serverech Apache 1.x jde obvykle o standardní nastavení, na serverech Apache 2.x je tato možnost standardně zakázána. Funkci zapnete tím, že do souboru httpd.conf nebo .htaccess ve vašem lokálním adresáři přidáte tento řádek (více v návodu k instalaci):
AcceptPathInfo on
Upozornění: tato možnost platí POUZE pro servery Apache verze 2.x.
Pokud nepoužíváte Apache verze 2 a přesto máte tento problém (i když je to velice nepravděpodobné), můžete použít níže popsané náhradní řešení. Jeho nevýhodou bude mírné snížení výkonu pro uživatele a také a ztráta možnosti používat v HTML materiálech relativní odkazy.
Nastavení náhradního řešení: přihlaste se jako správce, přejděte na stránku Nastavení, v ní na odkaz Proměnné a změňte nastavení "slasharguments". Nyní byste měli mít možnost přistupovat k vloženým souborům.
Vytvořte kdekoliv na serveru nový soubor info.php, který bude obsahovat následující text, a poté zadejte jeho URL do prohlížeče:
<?PHP phpinfo() ?>
Jestliže se nic nestane, PHP nainstalováno nemáte. Informace o tom, odkud ho můžete stáhnout, najdete v návodu k instalaci Moodlu.
Zkontrolujte proměnnou dirroot v souboru config.php. Musíte použít úplnou absolutní cestu, jako např.:
$CFG->dirroot = "d:\inetpub\sites\www.yoursite.com\web\moodle";
Pro platformu Redhat Linux viz Redhat Linux
Jestliže se vám objevují chybová hlášení jako například
Parse error: parse error, unexpected T_VARIABLE in c:\program
files\easyphp\www\moodle\config.php on line 94
Fatal error: Call to undefined function: get_string() in c:\program files\easyphp\www\moodle\mod\resource\lib.php
on line 11
...je pravděpodobné, že jste vynechali středník nebo koncové uvozovky na některém řádku v souboru config.php (před řádkem 94).
Jiným důvodem může být, že jste soubor config.php editovali v programu, jako je například Word, a pak jste jej uložili jako webovou stránku ve formátu HTML místo jako prostý text.
Jestliže se vám objevují chybová hlášení jako např.
Warning: Cannot add header information - headers already sent by (output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php on line 1322
Warning: Cannot add header information - headers already sent by (output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php on line 1323
Warning: Cannot add header information - headers already sent by (output started at /webs/moodle/config.php:87) in /webs/moodle/login/index.php on line 54
...máte prázdné řádky nebo mezery za koncovým řetězcem ?> v souboru config.php. Způsobují to některé editory (jako např. Poznámkový blok ve Windows). Zkuste proto jiný editor a v něm tyto prázdné řádky nebo mezery odstraňte.
V souboru config.php musí proměnná dirroot obsahovat úplnou cestu z kořenového adresáře pevného disku vašeho serveru.
Někdy uživatelé používají pouze cestu ze svého domovského adresáře nebo relativní cestu z výchozího adresáře webového serveru.
Problémy s apostrofy jsou způsobeny nesprávným nastavením "magic quotes". Moodle požaduje následující nastavení (které je obvykle výchozí):
magic_quotes_gpc = On
magic_quotes_runtime = Off
Více najdete v sekci o konfiguraci webového serveru v návodu k instalaci Moodlu.
Jestliže se vám objevují chybová hlášení jako např.
Warning: session_start() [function.session-start]: open(/tmp\sess_d40f380d37d431fc1516e9a895ad9ce0, O_RDWR) failed: No such file or directory (2) in G:\web\moodle\lib\setup.php on line 123
Warning: session_start() [function.session-start]: open(/tmp\sess_d40f380d37d431fc1516e9a895ad9ce0, O_RDWR) failed: No such file or directory (2) in G:\web\moodle\lib\setup.php on line 123
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at G:\web\moodle\lib\setup.php:1) in G:\web\moodle\lib\setup.php on line 123
... je to tím, že PHP nemůže uložit na server (do adresáře /tmp) soubory relace (session). Obvykle je to způsobeno tím, že na serveru takový adresář nemáte. Obvykle to nastává u serverů s Windows.
Řešením je upravit nastavení PHP tak, aby odkazovalo na existující adresář. V souboru php.ini nastavte
session.save_path = C:\temp
... anebo v souboru .htaccess
php_value session.save_path "/home/moodle/sessions"
Jestliže se vám v Moodlu 1.0.9 objevují hlášení
Please fix your settings in config.php:
You have: $CFG->dirroot = "/home/users/fred/public_html/moodle"; but it should be: $CFG->dirroot = ""; |
...pak jste narazili na drobnou chybu, která se projevuje jen na některých serverech. Jedná se o problém algoritmu pro vyhledávání chyb, nikoliv zadané cesty. K jeho odstranění vyhledejte řádek 66 v souboru admin/index.php
if ($dirroot != $CFG->dirroot) {
a změňte ho na
if (!empty($dirroot) and $dirroot != $CFG->dirroot) {
Zkontrolujte, zda URL v nastavení $CFG->wwwroot je naprosto shodné s tím, které používáte k přístupu na stránky.
Používáte-li server Apache, je velmi pravděpodobné, že nastavení $CFG->wwwroot v souboru config.php je jiné než URL, které používáte k přístupu na stránky. Můžete také zkusit vypnout "secureforms" v správcovském nastavení.
Toto je známá chyba Moodlu až do verze 1.0.9. V hlavním kódu v CVS a ve verzi 1.1 je již odstraněna.
Netýká se všech uživatelů. Objevuje se pouze v případě, že máte při instalaci Moodlu ve svém prohlížeči cookie s názvem "user" "admin" nebo "teacher", které pocházejí z jiného programu instalovaného na témže serveru.
Rychlá oprava spočívá ve vymazání cookies z prohlížeče ještě před začátkem instalace, použití jiného prohlížeče, nebo v úpravě souboru moodle/admin/user.php v těchto úvodních řádcích:
unset($user);
unset($admin);
unset($teacher);
Po provedení některé z výše uvedených změn by stálo za úvahu vymazat všechny tabulky z databáze a nainstalovat vše znovu.
Nejčastější příčinou této chyby je, že váš vlastní počítač (ne server Moodlu) má firewall, který odstraňuje některé informace týkající se prohlížeče. Zde je několik návodů, jak upravit firewally firmy Norton.
Správce serveru může také vyřešit tento problém za všechny uživatele tím, že upraví konfigurační stránku Moodlu a změní nastavení proměnné "secureforms" na "No".
Jinou možnou příčinou tohoto problému může být to, že na vašem serveru nejsou správně nastaveny relace (sessons). Můžete to vyzkoušet tak, že spustíte skript na http://yourserver/moodle/lib/session-test.php.
Potřebujete vytvořit dvě zálohy: zálohu databáze a zálohu vložených souborů. Skripty Moodlu jsou méně důležité; bude-li potřeba, můžete si je znovu nahrát.
Zálohování lze provést mnoha způsoby. Zde je náčrtek krátkého skriptu, který můžete pro zálohování databáze spustit v Unixu (je vhodné spouštět takový skript každý den prostřednictvím cronu).
cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername --password=mypassword -C -Q -e -a mydatabasename > moodle-database.sql
gzip moodle-database.sql
Pro vložené soubory můžete pravidelně použít rsync, který zkopíruje na jiný stroj pouze soubory, u kterých došlo ke změně:
rsync -auvtz --delete -e ssh mysshusername@example.com:/my/server/directory /my/backup/directory/
Pro každý jazyk je třeba nastavit příslušný kód jazyka (takzvané locale), který zajišťuje správné zobrazování času a data. Jazykové balíčky obsahují standardní kód daného jazyka, na serverech s Windows však někdy nefungují.
Správný kód jazyka pro Windows najdete na těchto dvou stránkách: Language codes a Country/region codes (např. "esp_esp" pro španělštinu).
Nový kód jazyka lze vložit na správcovské stránce Nastavení -> Proměnné; zde vložený kód má přednost před kódem uvedeným v aktuálním jazykovém balíčku.
Chcete-li, aby Moodle automaticky zasílal e-maily z modulů Fórum, Poznámky, Úkol aj., pak musíte správně nastavit cron. Skript spouštěný cronem provádí množství operací, jako je vyčištění systému od starých nepotvrzených uživatelských účtů, odstraňování studentů se zrušeným účtem z kurzů a podobně.
V podstatě potřebujete vytvořit proces, který bude pravidelně spouštět skript http://yoursite/admin/cron.php. Podrobnosti najdete v sekci týkající se cronu v návodu k instalaci.
Tip: Vyzkoušejte standardní nastavení nabízené na stránce Nastavení -> Proměnné. Proměnnou smtphost nechte prázdnou. Toto nastaqvení by mělo uspokojivě fungovat u většiny uživatelů.
Zašlete nám další FAQ/ČKD (včetně odpovědi!)
Díky Johnu Eyreovi za pomoc při správě této stránky.