## Instalacja Moodle

Przewodnik ten opisuje sposób instalowania platformy Moodle. Niektóre aspekty procesu instalacji są opisane bardzo szczegółowo, aby zaznaczyć wiele drobnych różnic pomiędzy różnymi serwerami sieciowym. Z tego też powodu dokument ten może się wydać długim i skomplikowanym. Nie daj się jednak zniechęcić - Moodle możne zainstalować w kilka minut!

Poświęć trochę czasu na dokładne przyjrzenie się temu dokumentowi - zaoszczędzi Ci to później sporo czasu.

Spis treści:

1. Wymagania
2. Ściąganie
3. Struktura serwisu
4. Tworzenie katalogu na dane
5. Tworzenie bazy danych
6. Sprawdzanie ustawień serwera sieciowego.
7. Edycja config.php
8. Wejdź na stronę administracyjną
9. Ustawienia mechanizmu 'cron'
10. Tworzenie nowego kursu

### 1. Wymagania

> Platforma Moodle była pierwotnie utworzona w systemie Linux, w oparciu o Apache, MySQL, oraz PHP, ale jest regularnie testowana z PostgreSQL, a także w systemach operacyjnych Windows XP, Mac OS X, oraz Netware 6.

> Wymagania platformy Moodle są następujące:

> 1. Oprogramowanie serwera sieciowego. Większość ludzi korzysta z Apache, ale platforma Moodle powinna współpracować z dowolnym serwerem obsługującym PHP, takim jak np. IIS na platformach Windows.
> 2. Język skryptowy PHP (w wersji 4.1.0 lub późniejszej), z następującymi ustawieniami:
>    - Włączona biblioteka GD , z obsługą formatów JPG i PNG.
>    - Obsługa Sesji (session support) włączona.
>    - Przesyłanie plików (file uploading) włączone
>    - Tryb awaryjny (Safe Mode) musi być wyłączony (na forach znajdujących się na moodle.org znajdziesz opis problemów powodowanych przez ten tryb)
> 3. Działający serwer bazy danych: MySQL albo PostgreSQL to bazy danych w pełni obsługiwane i zalecane przez Moodle 1.0.9. Wszystkie pozostałe bazy danych będą obsługiwane w Moodle 1.1.

> W większości wypadków wymagania te są spełnione domyślnie. Jeśli jednak jest inaczej, to spytaj dostawcę twojego hosta dlaczego, oraz rozważ możliwość przeniesienia się w inne miejsce.

> Jeśli chciałbyś uruchomić platformę Moodle na swoim własnym komputerze, a wydaje Ci się to odrobinę skomplikowane, to przeczytaj przewodnik Instalacja Apache, MySQL i PHP. Opisano tam krok po kroku proces ich instalacji na najbardziej popularnych platformach.

### 2. Ściąganie

> Platformę Moodle można zdobyć na dwa sposoby : Jako skompresowany plik, albo jako CVS. Omówiono to dokładnie na stronie poświęconej ściąganiu : http://moodle.org/download/

> Po ściągnięciu i rozpakowaniu skompresowanego pliku, albo po porównaniu plików poprzez CVS, będziesz posiadał katalog o nazwie "moodle", zawierający pliki i katalogi z Moodle.

> Możesz albo przegrać cały katalog na serwer, a jeśli tak zrobisz, to platforma Moodle będzie dostępna pod adresem http://twójserwer.com/moodle, albo przegrać zawartość katalogu moodle bezpośrednio na główny katalog dokumentów na twoim serwerze i w tym wypadku Moodle będzie osiągalne pod adresem http://twójserwer.com

### 3. Struktura serwisu

> Poniżej podano krótki opis zawartości folderu Moodle, aby pomóc Ci w orientacji :

> > config.php - Jedyny plik, który musisz zmodyfikować, zanim rozpoczniesz pracę z Moodle
> > version.php - Definiuje aktualną wersję kodu Moodle
> > index.php - główna strona serwisu

> > - admin/ - kod pozwalający na administrację całego serwisu
> > - auth/ - moduły służące do uwierzytelniania użytkowników
> > - course/ - kod służący do wyświetlania i zarządzania kursami
> > - doc/ - dokumentacja Moodle (np. ta strona)
> > - files/ - kod służący do wyświetlania i obsługi przesłanych plików
> > - lang/ - Pliki różnych wersji językowych, po jednym katalogu na wersję
> > - lib/ - biblioteki dla jądra platformy Moodle
> > - login/ - kod obsługujący tworzenie nowych kont i proces logowania
> > - mod/ - wszystkie moduły kursów Moodle
> > - pix/ - ogólne pliki graficzne dla serwisu
> > - theme/ - tematy, służące do zmiany wyglądu twojego serwisu
> > - user/ - kod służący do wyświetlania i obsługi użytkowników

### 4. Tworzenie katalogu na dane

> Platforma Moodle wymaga także pewnej przestrzeni na Twoim twardym dysku, aby przechowywać przesłane pliki, takie jak dokumenty kursów, czy zdjęcia użytkowników.

> Utwórz gdzieś katalog, który zamierzasz przeznaczyć na ten cel. Ze względów bezpieczeństwa najlepiej by było, gdyby był to katalog, który nie jest bezpośrednio dostępny poprzez internet. Najłatwiej to osiągnąć umieszczając go po prostu poza katalogiem sieciowym. Jeśli tego nie zrobisz, to zamieść w katalogu na dane Moodle plik o nazwie .htaccess, zawierający poniższą linię :

> >     deny from all

> Upewnij się, że platforma Moodle będzie mogła zapisywać przesłane pliki w tym katalogu. Sprawdź, czy oprogramowanie serwera (np. Apache) ma uprawnienie do zapisu w tym katalogu. W systemie Unix oznacza to ustawienie właściciela tego katalogu na przykładowo "nobody" lub "apache"

> Na większości współdzielonych serwisów hostów będziesz prawdopodobnie musiał zabronić dostępu do plików użytkownikom z Twojej "grupy" (aby uniemożliwić pozostałym klientom tego hosta dostęp do Twoich plików), ale umożliw pełne uprawnienia do zapisu/odczytu wszystkim pozostałym (aby serwer mógł mieć dostęp do Twoich plików). Porozmawiaj z administratorem serwera, jeśli masz problemy z zakresu bezpieczeństwa danych.

### 5. Tworzenie bazy danych

> Musisz utworzyć pustą bazę danych (np. "moodle") w twoim systemie baz danych, a także specjalnego użytkownika (np."moodleuser"), który będzie miał dostęp do tej bazy danych (i tylko do niej). Mógłbyś użyć konta "root", ale jest to niewskazane ze względów bezpieczeństwa : jeśli haker odkrył by twoje hasło, to nie tylko jedna baza danych będzie zagrożona, ale cały system baz danych także.

> Przykładowe polecenia dla MySQL:

>        # mysql -u root -p
>        > CREATE DATABASE moodle;
>        > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
>                TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
>        > quit
>        # mysqladmin -p reload

> Przykładowe polecenia dla 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

> (Jeśli korzystasz z MySQL to polecam phpMyAdmin do zarządzania twoimi bazami danych - możesz wtedy wszystkie opisane powyżej polecenia wprowadzić poprzez interfejs sieciowy).

> Od wersji 1.0.8 platforma Moodle obsługuje prefiksy tabel, więc może bezpiecznie współdzielić bazę danych razem z tabelami innych aplikacji.

### 6. Sprawdzanie ustawień serwera

> Po pierwsze upewnij się że twój serwer jest skonfigurowany tak, by używać pliku index.php, jako domyślnej strony (prawdopodobnie obok index.html, default.htm itp.).

> W przypadku serwera Apache można to zrobić wykorzystując parametr DirectoryIndex w pliku httpd.conf. U mnie parametr ten wygląda no ogół tak :

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

> Po prostu upewnij się, że index.php znajduje się na tej liście (możliwie blisko początku, w celu zwiększenia wydajności).

> Po drugie, jeśli korzystasz z Apache 2, to powinieneś włączyć zmienną AcceptPathInfo , która umożliwia przekazywanie skryptom parametrów w następujący sposób : http://server/file.php/arg1/arg2. Jest to niezbędne, aby umożliwić wewnętrzne odnośniki do Twoich zasobów, a także zwiększa wydajność dla osób korzystających z twojego serwisu Moodle. Zmienną tą możesz ustawić poprzez dodanie następującej linii do pliku httpd.conf :

> >     AcceptPathInfo on

> Po trzecie platforma Moodle wymaga, paru ustawień PHP, aby działać prawidłowo. Na większości serwerów będą to ustawienia domyślne. Niektóre serwery PHP (i niektóre najnowsze wersje PHP) mogą mieć inne ustawienia. Są one zdefiniowane w pliku konfiguracyjnym PHP (na ogół jest to php.ini)

> >     magic_quotes_gpc = 1
> >     magic_quotes_runtime = 0
> >     file_uploads = 1
> >     short_open_tag = 1
> >     session.auto_start = 0
> >     session.bug_compat_warn = 0

> Jeśli nie masz dostępu do httpd.conf lub php.ini na twoim serwerze, albo umieściłeś Moodle na serwerze, na którym działają już aplikacje wymagające innych ustawień nie przejmuj się. Niżesz nadal zastępować ustawienia domyślne

> Aby to zrobić musisz utworzyć plik o nazwie .htaccess w katalogu głównym Moodle, który będzie zawierał te ustawienia. Opisana metoda dotyczy tylko serwerów Apache, i tylko wtedy, kiedy umożliwione jest nadpisywanie ustawień domyślnych (overrides)

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

> >     <IfDefine APACHE2>
> >          AcceptPathInfo on
> >     </IfDefine>

> >     php_flag magic_quotes_gpc 1
> >     php_flag magic_quotes_runtime 0
> >     php_flag file_uploads 1
> >     php_flag short_open_tag 1
> >     php_flag session.auto_start 0
> >     php_flag session.bug_compat_warn 0

> Możesz także zdefiniować takie ustawienia jak maksymalny rozmiar przesłanych plików :

> >     LimitRequestBody 0
> >     php_value upload_max_filesize 2M
> >     php_value post_max_size 2M

> Najprościej można to zrobić kopiując plik przykładowy lib/htaccess i modyfikując go w zależności od potrzeb. Plik przykładowy zawiera dalsze instrukcje. W powłoce Unix kopiuje się ów plik następująco :

> >     cp lib/htaccess .htaccess

### 7. Edycja config.php

> Teraz możesz już zmodyfikować plik konfiguracyjny config.php, wykorzystując do tego edytor tekstowy. Plik ten jest wykorzystywany przez wszystkie pozostałe pliki Moodle.

> Na początek utwórz kopię pliku config-dist.php i nazwij ją config.php. Przyjęto taki rozwiązanie, aby plik config.php nie był nadpisywany podczas procesu uaktualniania Moodle.

> Zmodyfikuj config.php określając szczegóły na temat bazy danych, którą dopiero co zdefiniowałeś (włączając w to prefiks tabeli - Uwaga : jest to niezbędne w przypadku PostgreSQL), a także adres serwisu, katalog z danymi itp. Plik konfiguracyjny zawiera szczegółowe instrukcje wraz z przykładami.

> Gdy to już zrobiłeś reszta instalacji odbywa się za pośrednictwem interfejsu sieciowego. Do końca tego dokumentu przyjmiemy, że twoja strona dostępna jest pod adresem http://example.com/moodle

### 8. Wejdź na stronę administracyjną

> Strona administracyjna powinna być dostępna pod adresem http://example.com/moodle/admin. Jeśli spróbujesz wejść na główną stronę twojego serwisu, to i tak powinieneś zostać automatycznie na nią przeniesiony. Za pierwszym razem gdy wejdziesz na stronę administracyjną zostaniesz poproszony o zgodę na uzgodnienia "shrinkwrap" GPL. Musisz się zgodzić, aby móc kontynuować.

> (Moodle spróbuje także ustawić kilka 'cookies' dla twojej przeglądarki. Jeśli posiadasz przeglądarkę skonfigurowaną tak, że jesteś pytany o zgodę na zapisanie cookies, tu musisz zezwolić na ich zapis, gdyż w przeciwnym wypadku platforma Moodle nie będzie działała prawidłowo).

> Teraz platforma Moodle rozpocznie konfigurację bazy danych i tworzenie tabel przeznaczonych na zapis danych. W pierwszej kolejności tworzone są tabele głównej bazy danych. Powinieneś zobaczyć serię komend SQL, a po nich wiadomość statusową (w kolorze zielonym lub czerwonym), które będą wyglądać w następujący lub podobny sposób :

> > 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

> > ...itd, a po nich: Main databases set up successfully.

> Jeśli nie ujrzysz tych napisów, to oznacza to, iż był jakiś problem z bazą danych, albo ustawieniami w pliku config.php. Sprawdź, czy PHP nie pracuje w trybie awaryjnym (safe mode) (hosty komercyjne pracują czasami w tym trybie). Możesz sprawdzić ustawienia PHP tworząc mały plik zawierający polecenie <? phpinfo() ?> i oglądając go z poziomu przeglądarki internetowej. Zmień ustawienia, i ponownie uruchom tą stronę.

> Przewiń stronę administracyjną na sam koniec, a następnie kliknij na odnośnik "Continue"

> Zobaczysz teraz podobną stronę, która ustawi tabele wymagane przez wszystkie moduły Moodle. Tak jak poprzednio komunikaty powinny być wyświetlane na zielono.

> Przewiń stronę na sam koniec i kliknij na odnośnik "Continue"

> Powinieneś teraz ujrzeć formularz, w którym możesz określić więcej zmiennych dotyczących instalacji, takich jak domyślny język, hosty SMTP itd. Nie przejmuj się zbytnio ustawianiem wszystkiego teraz - zawsze możesz tu wrócić i zmodyfikować wartości tych zmiennych korzystając z panelu administracyjnego. Przewiń stronę do końca i kliknij na "Save changes".

> Jeśli (i tylko wtedy gdy) utkniesz gdzieś podczas tego całego procesu, bez możliwości kontynuacji, to twój serwer ma najprawdopodobniej problem zwany "buggy referrer". Łatwo go jednak naprawić: po prostu wyłącz ustawienie "secureforms" i spróbuj kontynuować instalację.

> Na następnej stronie możesz zdefiniować parametry swojego serwisu w Moodle, a także stronę tytułową wybierając takie rzeczy jak nazwa, format, opis serwisu itp. Wypełnij te pola (możesz do nich zawsze wrócić) i kliknij na "Save changes" (zapisz zmiany).

> Na koniec zostaniesz poproszony o utworzenie konta nadrzędnego użytkownika - administratora, za pomocą którego będziesz miał później dostęp do stron administracyjnych. Wypełnij formularz, umieszczając w nim swoje imię, adres e-mail itp. a następnie kliknij na "Save changes" (zapisz zmiany). Nie wszystkie pola muszą zostać wypełnione, ale jeśli pominiesz któreś z istotniejszych, zostaniesz o nie ponownie zapytany.

> > > > > > Koniecznie zapamiętaj nazwę użytkownika i hasło, które wybrałeś dla konta administratora, jako że będą one niezbędne aby uzyskać dostęp do panelu administracyjnego w przyszłości.

> (Jeśli z jakiejkolwiek przyczyny proces instalacji został przerwany, albo wystąpił błąd systemowy, który uniemożliwia zalogowanie się na konto administratora, możesz zazwyczaj zalogować się używając domyślnej nazwy użytkownika "admin", z hasłem "admin".)

> Gdy proces instalacji zakończy się powodzeniem, zostaniesz przeniesiony z powrotem na stronę główną swojego serwisu. Zwróć uwagę, na odnośniki administracyjne widoczne po lewej stronie (te opcje dostępne są też w panelu administracyjnym). Są ona widoczne tylko dla Ciebie, ponieważ jesteś zalogowany jako administrator. Całą administracja Moodle może być teraz wykonywana z tego menu. Możesz za jego pomocą np:

> - tworzyć i usuwać kursy
> - tworzyć i modyfikować konta użytkowników
> - zarządzać kontami nauczycielskimi
> - zmieniać ustawienia dla całego serwisu, takie jak temat itp.

### 9. Ustawienia mechanizmu 'cron'

> Niektóre moduły Moodle wymagają cyklicznych testów, aby wykonywać swoje zadania. Na przykład Moodle musi sprawdzać fora dyskusyjne, aby móc wysłać kopie postów osobom zapisanym na nie.

> Skrypt za to odpowiedzialny znajduje się w katalogu 'admin' w pliku cron.php. Nie jest on jednak w stanie uruchomić sam siebie, dlatego też musisz uruchomić mechanizm, który będzie regularnie uruchamiać ten skrypt (np. co pięć minut). Będzie to takie &qout;bicie serca" całego serwisu, w rytm którego wspomniany skrypt może wykonywać funkcje w odstępach czasu zdefiniowanych w modułach.

> Zwróć uwagę, że maszyna na której uruchomiony jest mechanizm 'cron' nie musi być tą samą maszyną, na której pracuje Moodle. Jeśli przykładowo twój host nie obsługuje mechanizmu 'cron', to możesz uruchomić go na innym serwerze, albo na twoim komputerze w domu. Ważne jest jedynie, aby plik cron.php był wywoływany regularnie.

> Obciążenie wprowadzane przez ten skrypt nie jest zbyt duże, więc 5 minut jest na ogół rozsądnym wyborem, ale jeśli chcesz możesz wydłużyć odstępy do piętnastu czy nawet trzydziestu minut. Najlepiej by było jednak, gdyby ten odcinek czasu nie był też zbyt długi, jako że opóźnienia w przesyłaniu wiadomości pocztą mogą ograniczyć aktywność na kursach.

> Po pierwsze sprawdź, czy skrypt działa prawidłowo, poprzez uruchomienie go bezpośrednio z twojej przeglądarki :

> >     http://example.com/moodle/admin/cron.php

> Teraz musisz spowodować, aby skrypt był uruchamiany automatycznie i regularnie.

> #### Uruchamianie skryptu z linii poleceń

> Możesz wywoływać tą stronę dokładnie tak jak to pokazano w poprzednim przykładzie. Przykładowo w systemie Unix możesz skorzystać z narzędzia 'wget':

> >     wget -q -O /dev/null http://example.com/moodle/admin/cron.php

> Uwaga : w tym przykładzie wyjście jest wyrzucane (do /dev/null).

> To samo można osiągnąć korzystając z 'lynx':

> >     lynx -dump http://example.com/moodle/admin/cron.php > /dev/null

> Alternatywna metoda polega na wykorzystaniu wersji PHP, skompilowanej tak, aby można ją było uruchamiać z linii poleceń. Zaletą tego rozwiązania jest to, iż logi twojego serwera nie są zapychane ciągłymi odwołaniami do cron.php. Wadą jest to, że musiałbyś mieć dostęp do wersji php opartej na linii poleceń.

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

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

> #### Automatyczne uruchamianie skryptu co pięć minut

> W systemach Unix: Korzystaj z cron. Zmodyfikuj ustawienia mechanizmu 'cron' z linii poleceń, wpisując "crontab -e" i dodając linię następującej postaci :

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

> W systemach Windows: Najłatwiej jest skorzystać z małego pakietu moodle-cron-for-windows.zip który powoduje, że cała sprawa staje się bardzo prosta. Możesz także zainteresować się wbudowaną funkcją Windows 'Harmonogram zadań'.

> Na hostach sieciowych: Twój oparty na sieci panel kontrolny może posiadać stronę internetową umożliwiającą włączenie tego procesu. Zapytaj swojego administratora w celu uzyskania szczegółów.

### 10. Tworzenie nowego kursu

> Teraz gdy platforma Moodle działa już prawidłowo możesz utworzyć kursy.

> Wybierz opcję "Utwórz nowy kurs" ze strony administracyjnej (albo z odnośników administracyjnych na stronie głównej twojego serwisu).

> Wypełnij formularz, przykładając szczególną uwagę do formatu kursu. Nie musisz się zbytnio przejmować detalami, gdyż wszystkie one mogą zostać później ustalone przez prowadzącego.

> Kliknij na "Zapisz zmiany", a zostaniesz przeniesiony do następnego formularza, na którym możesz przyporządkować prowadzących do kursów. W tym miejscu możesz korzystać jedynie z już istniejących kont. Jeśli chcesz utworzyć nowe konto prowadzącego, to albo poproś prowadzącego, aby utworzył je sobie sam (na stronie logowania), albo utwórz je sam, klikając na odnośnik " Utwórz nowe konto" na panelu administracyjnym.

> Gdy kurs został utworzony, jest gotowy do zmiany ustawień, oraz staje się dostępny poprzez odnośnik "Kursy" na stronie głównej.

> Przeczytaj "Podręcznik prowadzącego" aby zapoznać się ze szczegółami na temat budowy kursów.

Dokumentacja Moodle

Version: $Id$