Instalacja Moodle

Tylko nie panikuj!

Ten tutorial pokazuje jak zainstalowac Moodle osobom robiącym to po raz pierwszy. Niektore z podpunktow tutoriala są stosunkowo rozbudowane gdyż opisują niemal wszystkie możliwe konfiguracje serwerow, toteż dokument wyglada na długi i skomplikowany. Nie ma jednak powodu do zmartwienia gdyż tak naprawde cała instalacja Moodla zajmuje tylko kilkanaście minut!

Jeśli masz trudności, po prostu przeczytaj ten dokument uważnie. Zawiera on rozwiązania najczęściej spotykanych problemów. Jeśli to nie pomoże, zawsze możesz poszukać pomocy w dziale Moodle Help (po angielsku)

Kolejną możliwością jest skontaktowanie się z firmą oferującą webhosting ( przykladowe firmy ) która będzie w stanie zainstalować i skonfigurować Moodle dla twoich potrzeb. Pozwoli Ci to skupić się na stronie dydaktycznej.

 

Spis treści:

  1. Wymagania
  2. Ściąganie i kopiowanie potrzebnych plików
  3. Struktura Moodle
  4. Uruchomienie skryptu instalacyjnego tworzącego plik create.php
  5. Kontynuowanie instalacji na stronie administratora
  6. Konfigurowanie cron'a
  7. Tworzenie nowego kursu

 

1. Wymagania

Moodle był tworzony z myślą o pracy pod kontrolą Linuksa z serwerem Apache, MySQL oraz PHP (platformę tą określa się czasami skrótem LAMP), jednak sprawdza się on równie dobrze współpracując z PostgreSQL pod kontrolą Windows XP, Mac OS X oraz Netware 6.

Wymagania Moodle są następujące:

  1. Oprogramowanie serwera WWW. Większość użytkowników używa Apache'a, lecz Moodle powinien pracować równie dobrze pod kontrolą dowolnego serwera obsługującego PHP np. IIS na platformie Windows.
  2. Język skryptowyPHP ( wersja 4.1.0 lub nowsza). PHP 5.0 jest obsługiwane od wersji 1.4 Moodle.
  3. Działający serwer bazodanowy: MySQL lub PostgreSQL są w pełni obsługiwane i zalecane do współpracy z Moodle.

Większość dostawców usług webhostingowych domyślnie wspiera te technologie. Jeżeli jednak twój dostawca ich nie oferuje - dowiedz się, dlaczego i ewentualnie rozważ zmianę dostawcy.

Jeśli chcesz uruchomić Moodle na własnym komputerze, lecz nie wiesz jak się za to zabrać, zerknij na tutorial , zawiera on kilka instrukcji, które krok po kroku tłumaczą jak dokonać instalacji na kilku najpopularniejszych platformach.Instalacja Apache, MySQL i PHP. (po angielsku)

 

2. Ściąganie i kopiowanie potrzebnych plików.

Są dwa sposoby aby wejść w posiadanie pakietu Moodle: pobrać je w formie skompresowanego archiwum lub poprzez CVS. Dokładniejsze informacje na ten temat, jak i same pliki znajdują się na stronie: http://moodle.org/download/

Po ściągnięciu i rozpakowaniu lub zweryfikowaniu plików poprzez CVS ujrzysz katalog o nazwie Moodle, zawierający sporą liczbę plików i podkatalogów.

Jedną z możliwości jest załadowanie całego katalogu na twój docelowy serwer WWW, w tym przypadku twoja strona startowa będzie miała adres http://twojserwerWWW.com/moodle. Drugą możliwością jest załadowanie zawartości katalogu Moodle do katalogu głównego serwera wtedy adres przybierze postać http://twojserwerWWW.com

Jeśli ściągałeś Moodle na swój komputer i usiłujesz go załadować na serwer to lepiej jest to zrobić jeszcze w formie pojedynczego skompresowanego pliku, który następnie rozpakujesz już na serwerze. Nawet panele typu Cpanel pozwalają zdalnie rozpakować Moodle używając np. File Managera.

 

3. Struktura Moodle.

Możesz bez obaw pominąć czytanie tego podpunktu, jest to jednak skrócony opis struktury Moodle, który może Ci pomóc w orientacji.

config.php - zawiera podstawowe ustawienia, powstaje dopiero po zakończeniu procesu instalacji.
install.php - skrypt, który uruchamiasz aby rozpocząć instalacje i utworzyć plik config.php
version.php - określa bieżącą wersje Moodle
index.php - jest stroną główną twojego serwisu Moodle

 

4.Uruchom skypt install.php aby utworzyć config.php

Aby uruchomić skrypt instalujący (install.php), spróbuj wpisać adres twojego serwisu Moodle lub uzyskaj dostęp do skryptu w sposób bezpośredni tj. poprzez wpisanie w przeglądarce adresu http://twojserwerWWW/install.php

(skrypt instalujący spróbuje stworzyć odpowiedni plik cookie . Jeśli otrzymasz ostrzeżenie - upewnij się że twoja przeglądarka akceptuje cookie!)

Moodle sprawdzi czy konfiguracja serwera spełnia jego wymagania i poprowadzi Cię przez poprzez resztę procesu instalacji której wynikiem będzie utworzenie pliku config.php. Po zakończeniu całego procesu Moodle spróbuje zapisać ten plik we właściwym miejscu, jeśli próba się nie powiedzie możesz użyć przycisku aby ściągnąć ów plik i ręcznie umieścić go na serwerze.

Podczas instalacji, skrypt instalacyjny przetestuje twój serwer pod kątem wszelkich niezgodności z Moodle. Jeśli tylko napotka jakieś problemy będzie starał się doradzić jak je rozwiązać i dla większości spotykanych problemów rady te są wystarczające. Jeśli ten mechanizm okazał się niewystarczający przeczytaj poniższe informacje na temat najczęstszych przyczyn takich problemów.

4.1 Główne ustawienia serwera WWW

Po pierwsze upewnij się że twój serwer jest skonfigurowany do używania pliku index.php jako strony głownej (być może będzie należało dodać jego nazwe przed index.html, default.htm itp.)

W serwerze WWW Apache za tą opcje odpowiada parametr DirectoryIndex w pliku httpd.conf. Przeważnie ma on postać:

DirectoryIndex index.php index.html index.htm 

Upewnij się że index.php jest na liście (zaleca się ze względów wydajności aby był na początku listy)

Po drugie jeśli używasz Apache 2, powinieneś wyłączyć zmienną AcceptPathInfo, który zezwala skryptom przetwarzać argumenty takie jak np. http://server/file.php/arg1/arg2. Bardzo ważną kwestią jest umożliwienie korzystania ze względnych lików pomiędzy twoimi zasobami, poza tym powoduje to wzrost prędkości korzystania z twojego serwisu. Możesz włączyć tą opcje poprzez dodanie odpowiedniej linii do pliku httpd.conf:

AcceptPathInfo on 

Po trzecie, Moodle wymaga aby PHP było skonfigurowane w odpowiedni sposób. Większość serwerów jest skonfigurowana domyślnie w odpowiedni sposób. Jednakże, ustawienia niektórych serwerów (działająch np. na jednej z poprzednich wersji PHP) mogą się różnić. Ustawienia te zawarte są w pliku konfiguracyjnym PHP (php.ini):

magic_quotes_gpc = 1    (zalecane lecz nie wymagane)
magic_quotes_runtime = 0    (wymagane)
file_uploads = 1
session.auto_start = 0
session.bug_compat_warn = 0
  

eśli nie masz dostępu do httpd.conf lub php.ini na swoim serwerze, lub inne aplikacje wymagają takich a nie innych ustawień, które nie są odpowiednie dla Moodle, jest na to sposób - możesz wymusić pracę przy innych ustawieniach dla określonego katalogu.

Aby tego dokonać, musisz utworzyć plik o nazwie .htaccess w katalogu głównym Moodle który będzie zawierał odpowiednie linie. Taki zabieg działa tylko na serwerach Apache i tylko gdy stosowanie tego typu plików jest dozwolone przez konfiguracje Apache.

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 session.auto_start 0
php_flag session.bug_compat_warn 0

Możesz także zdefiniować maksymalny rozmiar transferowanych na serwer plików:

LimitRequestBody 0
php_value upload_max_filesize 2M
php_value post_max_size 2M
     

Najprościej tego dokonać kopiując przykładowy plik z katalogu lib/htaccess po czym edytując go według własnych potrzeb. Zawiera on dalsze instrukcje. W systemie Unix używamy do tego polecenia:

cp lib/htaccess .htaccess

 

4.2 Tworzenie bazy danych

Na początek musisz stworzyć pustą bazę danych (o przykładowej nazwie Moodle) wraz ze specjalnym użytkownikiem (np. o nazwie moodleuser), który ma dostęp do tej bazy i tylko do niej. Możesz użyć do tego celu root'a jeśli chcesz przetestować serwer, jednak nie jest to zalecane ze względów bezpieczeństwa dla systemu mającego normalnie funkcjonować. Konsekwencje mogą być poważne gdyż wystarczy że hacker złamie hasło do jednej bazy a twój cały system bazodanowy będzie zagrożony.

Jeśli korzystasz z usługi webhostingu, najprawdopodobniej posiadasz dostęp do panelu administrującego twoją bazą danych.

System Cpanel jest jednym z najpopularniejszych w tej kategorii:

  1. Kliknij na ikonie MySQL Databases
  2. Wpisz ,,moodle'' w polu baza danych i zatwierdź klikając Add Database.
  3. Wpisz nazwę użytkownika i hasło (oryginalne, więc nie takie samo jakiego używasz np. do odbierania poczty) w odpowiednie pola i kliknij add user
  4. Teraz kliknij przycisk Add user to database aby nadać wszytkie ("ALL") prawa dostepu do nowej bazy danych.
  5. Zwróć uwagę że zarówno nazwa użytkownika jak i samej bazy może być poprzedzona nazwą twojego konta w Cplanelu. Gdy będziesz wpisywał te nazwy podczas instalacji Moodle - użyj pełnych nazw.

Jeśli masz dostęp do linii poleceń (shell'a) możesz wykonać powyższe operacje używając następujących poleceń:

Przykładowe komendy pod Unix'em dla bazy MySQL:

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

Przykładowe komendy pod Unix'em dla bazy 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

 

4.3 Tworzenie katalogu na dane

Moodle będzie także potrzebował pewnej ilości wolnej przestrzeni na dysku serwera aby mieć gdzie składować ładowne już po instalacji pliki (pliki kursów, graficzne itp.)

Skrypt instalujący będzie próbował utworzyć go automatycznie, jednak jeśli próba ta zakończy się niepowodzeniem - będziesz musiał utworzyć go ręcznie.

Ze względów bezpieczeństwa najlepiej żeby ten folder nie był dostępny poprzez www. Najprostszą metodą spełnienia tego warunku jest umieszczenie go poza głównym katalogiem WWW (np. public, public_html itp). Jeśli koniecznie musisz umieścić go wewnątrz postaraj się go zabezpieczyć poprzez plik .htaccess zawierający następującą linię:

deny from all

Aby upewnić się, że Moodle jest w stanie zapisywać ładowane na serwer pliki w tym katalogu, sprawdź czy oprogramowanie serwera WWW (np. Apache) ma prawo odczytu, zapisu i uruchamiania plików w tymże katalogu.

Na komputerach z systemem Unix, oznacza to ustawienie właściciela katalogu na "nobody" lub "apache", i nadanie takiemu uzytkownikowi określonych wcześniej praw.

Jeśli całą operacje wykonujemy przez Cpanel, możemy skorzystać z "File Managera", w którym po odszukaniu folderu wybieramy opcje "Change permissions". Na większości serwerów hostingowych, prawdopodobnie będziesz musiał ograniczyć dostęp do wszystkich plików dla twojej grupy (aby zapobiec sytuacji w której inni użytkownicy serwera będą w stanie podglądać i zmieniać twoje pliki), lecz ustaw wszystkie prawa odczytu i zapisu dla każdego innego (co pozwoli na dostęp serwera WWW do twoich plików).

Jeśli masz problemy z tymi ustawieniami porozmawiaj ze swoim administratorem. Dość często serwery mają skonfigurowane PHP z opcją "Safe Mode" co może spowodować że tylko administrator będzie mógł prawidłowo utworzyć ten katalog.

5. Go to the admin page to continue configuration

Po tym jak w poprzednim kroku utworzyliśmy podstawowy plik conig.php, wszelkie próby dostępu do strony głównej będą owocowały załadowaniem strony administracyjnej celem dokończenia instalacji.

Gdy za pierwszym razem załadujesz stronę administracyjną, będzie ona wyświetlała treść licencji GPL w formie ,,shrinkwarp" (czyli jej zatwierdzenie jest równoznaczne z jej podpisaniem). Musisz zaakceptować umowę przed dalszą instalacją.

Teraz Moodle zacznie konfigurować twoją bazę i tworzyć tabele do przechowywania danych. Na początku tworzone są główne tabele. Jeśli proces odbywa się prawidłowo powinieneś ujrzeć na ekranie kilka instrukcji SQL zakończonych wiadomościami o ich poprawnym lub niepoprawnym wykonaniu (na zielono i czerwono):

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

...i tak dalej, zakończonych komunikatem:Main databases set up successfully.

Jeśli ten komunikat się nie pojawi, to musi to być spowodowane problemem z bazą danych lub ustawieniami zawartymi w php.ini. Sprawdź czy PHP nie jest w ograniczonym trybie o nazwie ,,Safe Mode"(PHP na komercyjnych serwerach jest często skonfigurowany do pracy w tym trybie bezpieczeństwa). Możesz sprawdzić ustawienia zmiennych PHP tworząc mały plik zawierający linie <?php phpinfo() ?> a następnie oglądając wygenerowane przez niego rezultaty w swojej przeglądarce. Sprawdź wszystkie z nich i spróbuj powtórnie wyświetlić stronę.

Przewiń ekran do samego dołu, po czym kliknij w link ,,Continue".

Powinieneś teraz zobaczyć formularz gdzie możesz zdefiniować pozostałe zmienne takie jak domyślny język, serwery SMTP itd. Nie musisz ustawiać wszystkiego teraz - będziesz mógł w dowolnej chwili wrócić do tych ustawień korzystając z interfejsu administratora. Wartości domyślne zostały tak dobrane aby zapewnić elastyczność i bezpieczeństwo działania na większości serwerów. Przewiń zawartość ekranu w dół a następnie zatwierdź zmiany klikając ,,Save changes''.

Jeśli w tym momencie(ale tylko w tym wypadku) nie możesz kontynuować, może to oznaczać że na twoim serwerze występuje tak zwany błąd "buggy refer". Można w prosty sposób go rozwiązać wyłączając opcję o nazwie "secureforms". Po zmianie opcji spróbuj ponownie.

Następnie zobaczysz kolejne strony wyświetlające mnóstwo komunikatów. Dotyczą one pozostałych tabel Moodle. Tak jak poprzednio wszystkie powinny być koloru zielonego.

Przewiń ekran w dół i zaakceptuj klikając ,,Continue''.

Następna strona zawiera formularz w którym możesz zdefiniować parametry strony głównej Moodle takie jak jej nazwa, formatowanie, opis itd. Uzupełnij go, (chociaż możesz dokonać zmiany tych ustawień kiedy indziej) i naciśnij "Save changes".

Teraz zostaniesz proszony o utworzenie głównego administratora systemu, który później będzie miał dostęp do stron administracyjnych. Wypełnij pola dotyczące twoich danych (imie nazwisko, emiail itp.) i kliknij "Save changes". Nie wszystkie pola są wymagane, jednak jeśli pominiesz któreś z wymaganych zostaniesz o tym powiadomiony.

Upewnij się że dobrze pamiętasz nazwę użytkownika oraz hasło które wybrałeś dla konta administratora, będą one niezbędne przy uzyskiwaniu dostępu do stron administracyjnych.

(Jeżeli z jakiegokolwiek powodu proces instalacji został nieoczekiwanie przerwany, poprzez zakłócenia pracy sieci lub zawieszenie komputera, co spowodowało niemożność zalogowania się na konto administratora, przeważnie będziesz mógł się zalogować "awaryjnie" używając nazwy użytkownika admin wraz z hasłem admin.)

Jeśli wszystko przebiegło pomyślnie to zostaniesz przełączony na stronę główną twojego nowego serwisu Moodle! Zauważ że linki służące do zarządzania serwisem znajdujące się po lewej stronie ekranu (linki te pojawiają się także na specjalnej oddzielnej stronie administracyjnej) są widoczne tylko dla Ciebie ponieważ jesteś zalogowany jako adminstrator. Wszystkie twoje przyszłe działania administracyjne będą mogły być wykonywane za pomocą tego menu. Np.

Lecz instalacja nie jest jeszcze ukończona! Jest jeszcze jedna ważna rzecz do zrobienia (patrz następny podpunkt).

 

6. Konfigurowanie cron'a -- WAŻNE !

Niektóre spośród modułów Moodle wymagają cyklicznego wykonywania pewnych operacji. Na ten przykład Moodle musi sprawdzać fora dyskusyjne aby móc rozesłać kopie nowych postów ludziom którzy subskrybują dany temat.

Skrypt który jest za to odpowiedzialny znajduje się w katalogu admin, nazywa się cron.php. Jednakże nie może on się uruchamiać samoczynnie, więc musisz ustawić mechanizm który będzie uruchamiał ten skrypt regularnie(np. co pięć lub dziesięć minut). To zapewni pewien rytm według którego będą mogły być wykonywane funkcje w odstępach zdefiniowanych w każdym z modułów. Taki mechanizm znany jest pod nazwą cron service.

Zwróć uwagę na to że serwer obsługujący ta usługę nie musi być tym samym serwerem na którym zainstalowałeś Moodle. Na przykład, jeśli twój serwer WWW nie oferuje cron'a, możesz zdecydować się na uruchomienie cron'a na innym serwerze lub nawet na swoim domowym komputerze. Liczy się tylko to aby plik cron.php był uruchamiany regularnie.

Skrypt ten nie obciąża nadmiernie serwera, więc wywoływanie go co 5 min wydaje się odpowiednią decyzją. Jeśli jednak jesteś zmartwiony tak częstym jego uruchamianiem możesz zmienić tą wartość na 15 lub 30 minut. Dobrze jest jednak nie ustawiać zbyt dużych wartości aby nie spowolnić aktywności niektórych kursów.

Po pierwsze, przetestuj czy skrypt zadziała gdy wywołasz go bezpośrednio z twojej przeglądarki:

http://przykladowy.com/moodle/admin/cron.php

Teraz, musisz sprawić aby skrypt był wykonywany automatycznie i regularnie.

W systemie Windows

Najłatwiej jest użyć niewielkiego programu moodle-cron-for-windows.zip w który doskonale sprawdzi się w tej funkcji. Wystarczy go odpowiednio zainstalować i można o nim zapomnieć.

Na serwerze WWW

Jeśli możesz administrować swoim kontem na serwerze WWW za pomocą systemu Cplanel, odnajdź przycisk o nawie "Cron jobs". Za pomocą tej opcji możesz umieścić kilka komend Unix'a które znajdziesz ponieżej.

Używając linii poleceń w systemie Unix

Istnieje kilka różnych komend za pomocą których możesz wykonać nasze zadanie. Może się okazać że nie wszystkie z nich są dostępne na danym serwerze.

Na przykład, możesz użyć unix'owego narzędzia ,,wget'':

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

Jak widać w tym przykładzie wynik komendy jest wyrzucany (kierowany do /dev/null).

Ta sama operacja za pomocą lynx'a:

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

Zamiast powyższych metod możesz skorzystać z odpowiedniej wersji PHP, skompilowanej do uruchamiania z linii komend. Zaletą takiego rozwiązania jest to że logi twojego serwera nie są zaśmiecane ciągłymi wywołaniami cron.php. Wadą jest to że musisz posiadać dostęp do wersji PHP działającego z linii komend.

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

    

Użycie programu contrab (Unix)

To co oferuje sytstem Cpanel jest niczym innym jak uniksowym narzędziem o nazwie crontab. Jeśli masz dostęp do linii poleceń możesz samodzielnie ustawić crontab używając polecenia:

crontab -e

i dodając jedną z poniższych komend :

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

Przeważnie polecenie crontab uruchomi edytor "VI". W tymże edytorze aby wpisać tekst należy najpierw wcisnąć ,,i'', aby wyjść z trybu pisania naciskamy Esc. Zapisujemy plik i opuszczamy program pisząc ,,:wq''. Jeśli chcemy wyjść bez zachowania zmian - wpisujemy ,,:q!'' (bez cudzysłowów).

 

7. Tworzenie nowego kursu

Teraz gdy Moodle pracuje prawidłowo, możesz przejść do tworzenia nowego kursu.

Wybierz "Create a new course" ze strony administracyjnej (lub skorzystaj z linków administracyjnych po lewej stronie ekranu).

Wypełnij formularz, zwracając szczególna uwagę na format kursu. Na razie nie musisz się jeszcze martwić o szczegóły - wszystko później będzie mogło być zmienione przez nauczyciela. Zwróć uwagę na małe żółte ikonki pomocy które są niemal wszędzie aby zapewnić kontekstową pomoc w każdym momencie pracy.

Na koniec należy zatwierdzić zmiany klikając "Save changes" po czym ukarze się strona na której będziesz mógł przydzielić nauczycieli/prowadzących do danego kursu. Tutaj możesz dodać jednynie istniejących już użytkowników - jeśli chcesz utworzyć nowe konto nauczyciela musisz poprosić danego nauczyciela o stworzenie sobie konta lub samemu je mu utworzyć.

Jeśli wszystko już gotowe, możemy przystąpić do właściwego tworzenia kursu. Kurs staje się dostępny ze strony głównej po kliknięciu w ,,Courses''.

Zajrzyj do "Instrukcji dla nauczycieli" for more details on course-building.

 

Przyjemnego Moodle'owana !

Jeśli Moodle przypadł Ci do gustu, proszę rozważ udzielenie pomocy materialnej w pokryciu naszych kosztów!

 

Moodle Documentation(translated by kwaczorek007@wp.pl)

Version: $Id: install.html,v 1.26 2005/05/17 04:13:29 martinlanghoff Exp(2005/06/21 07:24:29) $