# Ладаванне Moodle

## Не панікуйце!

Гэты даведнік падае спосаб ладавання платформы Moodle. Некаторыя аспекты працэсу ладавання апісаны вельмі падрабязна дзеля таго, каб звярнуць увагу на мноства дробных адрозненняў паміж рознымі сецевымі сэрверамі. З гэтай прычыны дадзены дакумент можа падацца доўгім і складаным. Няхай гэта вас не палохае - Moodle можна заладаваць за некалькі хвілінаў!

Прысвяці аднак крыху часу, каб дакладна вывучыць дакумент – затое ты зэканоміш час пасля.

Змест:

1. Патрабаванні
2. Перанос
3. Структура сэрвісу
4. Стварэнне каталогу дадзеных
5. Стварэнне базы дадзеных
6. Праверка ўстановак сеткавага сэрвера.
7. Усталёўка config.php
8. Зайдзі на адміністрацыйную старонку
9. Устаноўка механізму 'cron'
10. Стварэнне новага курса

### 1. Патрабаванні

> Платформа Moodle была спачатку створана ў сістэме Lіnux, апіраючыся на Apache, MySQL, а таксама PHP, але рэгулярна тэстуецца з PostgreSQL, а таксама ў аперацыйных сістэмах Wіndows XP, Mac OS X і Netware 6.

> Патрабаванні платформы Moodle наступныя:

> 1. Праграмнае начынне сеткавага сэрвера. Большасць людзей карыстаецца Apache, але платформа Moodle супрацоўнічае з любым сэрверам, які абслугоўвае PHP, такім напрыклад як ІІS на платформах Wіndows.
> 2. Скрыптавая мова PHP у версіі 4.1.0 або пазнейшых) з наступнымі ўстаноўкамі:
>    - Падключаная бібліятэка GD , з абслугай фарматаў JPG і PNG.
>    - Абслуга сесіі (session support) уключана.
>    - Дасылка файлаў (file uploading) уключана.
>    - Аварыйны стан (Safe Mode) павінен быць уключаны (на форумах, якія знаходзяцца на moodle.org знойдзеш апісанне праблем, выкліканых гэтым станам)
> 3. Дзеючы сэрвер базы дадзеных: MySQL альбо PostgreSQL гэтыя базы дадзеных у поўнай ступені абслугоўваюцца і прапануюцца Moodle 1.0.9. Усе астатнія базы дадзеных абслугоўваюцца ў Moodle 1.1.

> У большасці выпадкаў гэтыя патрабаванні выконваюцца па-змаўчанні. Аднак, калі гэта не так, запытай у кампаніі, якая дае табе хостынг чаму, а таксама падумай пра магчымасць перанесці сайт на іншы сэрвер.

> Калі захочаш запусціць платформу Moodle на сваім уласным кампутары, але гэта падасца табе крыху складаным, то прачытай даведнік:Ладаванне Apache, MySQL i PHP. Там крок па кроку апісаны працэс іх ладавання на найбольш папулярных платформах.

### 2. Перанос

> Платформу Moodle можна здабыць двума спосабамі : Як скампрэсаваны пакет, або як CVS. Гэта драбнютка апісана на старонцы, прысвечанай запампоўцы : http://moodle.org/download/

> Пасля запампоўкі і распакоўкі скампрэсаванага файлу, або пасля параўнання пакетаў CVS, будзеш мець каталог пад назвай "moodle", улучна файлы і каталогі Moodle.

> Можаш або перапісаць увесь каталог на сэрвер, а калі зробіш гэта, то платформа Moodle стане даступнай па адрасе http://твойсэрвер.com/moodle, або можаш перапісаць змест каталогу moodle непасрэдна на галоўны каталог дакументаў на тваім сэрверы, і ў гэтым выпадку Moodle будзе даступны па адрасе http://твойсэрвер.com

### 3. Структура сэрвісу

> Ніжэй даецца кароткае апісанне зместу даведніка Moodle, каб дапамагчы табе арыентавацца :

> > config.php - адзіны файл, які ты павінен змадыфікаваць, перш чым пачнеш працу з Moodle
> > version.php - акрэслівае актуальную версію коду Moodle
> > index.php - галоўная старонка сэрвісу

> > - admin/ - код, які дазваляе ўпраўляць усім сэрвісам
> > - auth/ - модулі, якія служаць для рэгістрацыі карыстальнікаў
> > - course/ - код, які служыць для высвятлення і ўпраўлення курсамі
> > - doc/ - дакументацыя Moodle (напр. гэта старонка)
> > - files/ - код, які служыць для высвятлення і абслугоўвання перасланых файлаў
> > - lang/ - файлы розных моўных версіяў, па адным каталогу на версію
> > - lib/ - бібліятэкі для ядра платформы Moodle
> > - login/ - код, які абслугоўвае стварэнне новых рэгістрацыйных запісаў і пароляў
> > - mod/ - усе модулі курсаў Moodle
> > - pix/ - агульныя графічныя пакеты для сэрвісу
> > - theme/ - тэмы, якія служаць для змены вонкавага афармлення твайго сэрвісу
> > - user/ - код, які служыць для змены і абслугоўвання карыстальнікаў

### 4. Стварэнне каталогу дадзеных

> Платформа Moodle патрабуе таксама пэўнай прасторы на тваім цвёрдым дыску, каб захоўваць перасланыя пакеты, такія як дакументы курсаў або здымкі карыстальнікаў.

> Ствары дзе-небудзь каталог, які ты хацеў бы выкарыстаць у гэтых мэтах. З пазіцыі бяспекі было б найлепш, каб гэта быў каталог, які ня будзе даступным непасрэдна праз Інтэрнэт. Найлепш яго размясціць проста па-за сецевым каталогам. Калі не зробіш гэтага, то ствары ў каталогу дадзеных Moodle файл з назвай .htaccess, уключаючы ніжэй пададзеную лінію :

> >     deny from all

> Пераканайся, што платформа Moodle здольная запісваць перасланыя файлы ў гэтым каталогу. Правер, ці мае праграмнае забеспячэнне сэрверу (пр. Apache) мае правы запісу ў гэтым каталогу. У сістэме Unіx гэта азначае праграмаванне ўладальніка гэтага каталога напрыклад, "nobody" або "apache"

> На большасці сэрверах агульнага карыстання хутчэй за ўсё будзеш змушаны забараніць доступ да пакетаў карыстальнікам з тваёй "групы" (каб не даць магчымасці астатнім кліентам гэтага сэрверу доступу да тваіх пакетаў), але дай магчымасць мець усе правы запісу/прачытання ўсім астатнім (каб сэрвер мог мець доступ да тваіх файлаў). Калі ўзнікнуць нейкія праблемы са сферы бяспекі дадзеных, то ўзгадні гэта з адміністратарам сэрверу.

### 5. Стварэнне базы дадзеных

> Мусіш стварыць пустую базу дадзеных (пр. "moodle") у тваёй сістэме баз дадзеных, а таксама спецыяльнага карыстальніка (напр."moodleuser"), які будзе мець доступ да гэтай базы дадзеных (і толькі да яе). Можаш ужываць лагін "root", аднак гэта непажадана з пазіцыі бяспекі : калі б хакер даведаўся пра твой пароль, то не толькі адна база дадзеных апынецца ў небяспецы, але таксама ўся сістэма баз дадзеных.

> Прыкладныя настройкі для 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

> Прыкладныя настройкі для 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

> (Калі ты карыстаешся MySQL, тады раю phpMyAdmin для ўпраўлення тваімі базамі дадзеных – тады можаш усе апісаныя вышэй настройкі ўвесці праз сеткавы інтэрфэйс).

> Пачынаючы з версіі 1.0.8 платформа Moodle абслугоўвае прэфіксы табліцаў, таму можа бяспечна падзяляць базу дадзеных разам з табліцамі іншых аплікацый.

### 6. Праверка ўстановак сэрверу

> Перш за ўсё пераканайся, што твой сэрвер мае такую канфігурацыю, што можа ўжываць пакет іndex.php, як магчымую старонку (верагодна побач з іndex.html, default.htm іtp.).

> Калі гэта датычыць сэрверу Apache то гэта можна зрабіць, скарыстаўшы параметр DіrectoryІndex у файле httpd.conf. У мяне гэты параметр увогуле выглядае так:

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

> Проста пераканайся, што іndex.php знаходзіцца ў гэтым спісе (магчыма напачатку, з мэтай павялічыць прадуктыўнасць).

> Па-другое, калі карыстаешся Apache 2, то трэба ўключыць зменную AcceptPathInfo , якая дае магчымасць перадаваць скрыптам параметры наступным чынам: http://server/file.php/arg1/arg2. Калі гэта неабходна, каб далучыць унутраныя зноскі да тваіх рэсурсаў, а таксама павялічыць прадуктыўнасць для тых, хто карыстаецца тваім сервісам Moodle. Гэтую зменную ты можаш устанавіць, дадаючы наступную лінію да файла httpd.conf :

> >     AcceptPathInfo on

> Па-трэцяе, платформа Moodle патрабуе, некалькіх установак PHP, для таго каб дзейнічаць правільна. На большасці сэрвераў гэтыя ўстаноўкі будуць усталяваныя па змаўчанні. Некаторыя сэрверы PHP (і некаторыя найбольш новыя версіі PHP) могуць мець іншыя ўстаноўкі. Яны апісаны у файле канфігурацыі PHP (звычайна гэта php.іnі)

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

> Калі ты не маеш доступу да httpd.conf або php.іnі на тваім сэрверы, або размясціў Moodle на сэрверы, на якім ужо дзейнічаюць аплікацыі, што патрабуюць іншых установак, не хвалюйся. Можаш і надалей замяняць устаноўкі па змаўчанні.

> Каб магчы рабіць гэта, трэба стварыць файл з назвай .htaccess у галоўным каталогу Moodle, які будзе ўключаць гэтыя ўстаноўкі. Апісаны метад датычыць толькі сэрвераў Apache, і толькі тады, калі магчымы запіс установак па змаўчанні(overrіdes)

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

> Можаш таксама апісаць такія ўстаноўкі, як максімальны размер дасылаемых файлаў:

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

> Найпрасцей гэта можна зрабіць, скапіраваўшы ўзорны пакет lіb/htaccess і мадыфікуючы яго ў залежнасці ад патрэбы. Узорны пакет уключае далейшыя інструкцыі. У абалонцы Unіx можна скапіраваць гэты файл наступным чынам :

> >     cp lib/htaccess .htaccess

### 7. Усталёўка config.php

> Зараз ужо можаш змадыфікаваць файл канфігурацыі config.php, выкарыстоўваючы для гэтага тэкставы рэдактар. Гэты пакет выкарыстоўваюць усе астатнія файлы Moodle.

> Спачатку ствары копію config-dist.php і назаві яе confіg.php. Такое рашэнне прынятае дзеля таго, каб файл confіg.php не трэба было падпісваць падчас працэсу актуалізацыі Moodle.

> Змадыфікуй config.php акрэсліўшы дэталі наконт базы дадзеных, якую ты толькі што апісаў (уключыўшы ў гэта прэфікс табліцы - Увага : гэта з’яўляецца неабходным PostgreSQL), а таксама адрас сэрвісу, каталог з дадзенымі і д.п. Файл канфігурацыі ўключае падрабязныя інструкцыі з прыкладамі.

> Калі ты выканаў ужо ўсё гэта, далейшая інсталяцыя адбываецца пры дапамозе сеткавага інтэрфэйсу. Да канца гэтага дакумента прымем, што твая старонка даступна па адрасе http://example.com/moodle

### 8. Зайдзі на адміністрацыйную старонку

> Адміністрацыйная старонка, даступная па адрасу http://example.com/moodle/admin. Калі ты спрабуеш зайсці на галоўную старонку твайго сэрвісу, то і так апынешся на ёй аўтаматычна. Калі першы раз зойдзеш на адміністрацыйную старонку, будзеш запытаны ці пагаджаешся ты ўзгодніць "shrinkwrap" GPL. Мусіш пагадзіцца, каб працягваць далей.

> (Moodle спрабуе таксама ўстанавіць 'cookies' для твайго браўзера. Калі маеш такі браўзэр, што цябе запытваюць пра згоду запісаць cookіes, тут мусіш дазволіць запіс, бо ў іншым выпадку платформа Moodle ня будзе дзейнічаць правільна).

> Зараз платформа Moodle пачне канфігурацыю базы дадзеных і стварэнне табліцаў, прызначаных для запісу дадзеных. У першую чаргу ствараюцца табліцы галоўнай базы дадзеных. Убачыш серыю камандаў SQL, а пасля іх статутнае паведамленне (зялёнага або чырвонага колеру), якія будуць выглядаць наступным або падобным чынам:

> > 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 пасля іх: Main databases set up successfully.

> Калі не ўбачыш гэтых надпісаў, гэта азначае, што існуе нейкая праблема з базай дадзеных, або з устаноўкамі ў файле confіg.php. Правер, ці не працуе PHP у аварыйным парадку (safe mode) (камерцыйныя Інтэрнэт-сэрверы часам працуюць у гэтым рэжыме). Можаш праверыць устаноўкі PHP, ствараючы малы файл, які ўтрымлівае настройку <? phpinfo() ?> і праглядаючы яго з дапамогай інтэрнэт-браўзэру. Замяні ўстаноўкі, і зноў запусці гэту старонку.

> Перасунь адміністрацыйную старонку ў самы канец, а затым клікні на спасылку "Continue"

> Убачыш зараз падобную старонку, якая ўстановіць табліцы для ўсіх модуляў. Таксама як перад гэтым, паведамленні павінны быць зялёнага колеру.

> Перанясі старонку на самы канец і клікні на спасылку "Continue"

> Цяпер ты павінен убачыць фармуляр, у якім можаш запісаць больш пераменных, якія датычаць ладавання, такіх як магчымая мова, злучэнні SMTP і д.п.. Надта не спяшайся заладаваць усё адразу – заўсёды можаш вярнуцца і змадыфікаваць якія-небудзь з гэтых пераменных, карыстаючыся панеллю адміністратара. Перасунь старонку ў канец і клікні на "Save changes".

> Калі (і толькі ў такім выпадку) недзе спынішся падчас усяго гэтага працэсу без магчымасці яго працягваць, то твой сэрвер, верагодна, мае так званы "buggy referrer". Аднак гэта лёгка можна выправіць: проста ўключы ўстаноўку "secureforms" і паспрабуй працягваць ладаванне.

> На наступнай старонцы можаш акрэсліць параметры свайго сервісу ў Moodle, а таксама тытульную старонку, выбіраючы такія рэчы як назва, фармат, апісанне сэрвісу і д.п.. Запоўні гэтыя палі (заўсёды можаш да іх вярнуцца) і клікні на "Save changes" (запішы змены).

> Пад канец табе прапануюць стварыць рэгістрацыйны запіс звычайнага карыстальніка - адміністратара, з дапамогай якога ты будзеш пазней мець доступ на адміністрацыйныя старонкі. Запоўні анкету, змяшчаючы ў ёй сваё імя, адрас электроннай скрынкі і д.п., а затым клікні на "Save changes" (запішы змены). Не ўсе палі павінны быць запоўнены, але калі прамінеш некаторыя найбольш істотныя, цябе пра іх запытаюць зноў.

> > Абавязкова запомні імя карыстальніка і пароль, якія ты выбраў для рэгістрацыі адміністратара, таму што яны будуць неабходныя табе, каб атрымаць доступ да адміністрацыйнай панелі ў будучым.

> (Калі, па якой-небудзь прычыне працэс ладавання перапыніўся, або была дапушчана сістэмная памылка, якая зрабіла немагчымай рэгістрацыю адміністратара, можаш зарэгістравацца, ужываючы адвольнай назвы карыстальніка "admin", з паролем "admin".)

> Калі ж працэс ладавання закончыцца паспяхова, будзеш перанесены назад на галоўную старонку свайго сэрвісу. Звярні ўвагу на адміністрацыйныя спасылкі, якія відаць з левага боку (яны маюцца таксама на адміністрацыйнай панелі.) Іх можаш убачыць толькі ты, паколькі ты ўжо зарэгістраваны як адміністратар. Усё ўпраўленне Moodle можна зараз ажыццяўляць з гэтага меню. З яго дапамогай можаш напр.:

> - Ствараць і выдаляць курсы
> - Ствараць і мадыфікаваць рэгістрацыйныя запісы карыстальнікаў
> - Упраўляць настаўніцкімі рэгістрацыйнымі запісамі
> - Змяняць устаноўкі для ўсяго сервісу, такія як тэмы (знешняе афармленне) і д.п.

### 9. Устаноўка механізму 'cron'

> Некаторыя модулі Moodle патрабуюць цыклічных тэстаў, каб выканаць свае заданні. Напрыклад, Moodle павінна праверыць дыскусійныя форумы, каб магчы выслаць мэйлавыя копіі людзям, якія на іх запісаліся.

> Адказны за гэта скрыпт-механізм знаходзіцца у каталогу 'admіn' у файле cron.php. Аднак ён не ў стане запусціць сам сябе, таму таксама трэба запусціць гэты механізм, які будзе рэгулярна запускаць гэты скрыпт (напр. праз 5 хвілін). Гэта будуць такія &qout;удары сэрца" усяго сервісу, у рытме якога названы скрыпт можа выконваць функцыі ў адрэзках часу, акрэсленых у модулях.

> Звярні ўвагу, што машына, на якой запушчаны механізм 'cron' не мусіць быць абавязкова той самай, на якой працуе Moodle.. Калі, напрыклад, твой Інтэрнэт-сэрвер не абслугоўвае механізм 'cron', то можаш запусціць яго на іншым сэрверы, або на тваім дамашнім кампутары. Важна адзіна тое, каб файл cron.php выклікаўся рэгулярна.

> Нагрузка, якую задае гэты скрыпт, не вельмі вялікая, таму ўвогуле 5 хвілін – гэта разумны выбар, але калі хочаш, можаш падоўжыць адрэзкі часу да 15 або нават 30 хвілін. Найлепш было б, аднак, каб гэты адрэзак часу не быў занадта доўгі, таму што спазненні пры перасылцы звестак поштай могуць абмежаваць актыўнасць на курсах.

> Перш за ўсё правер ці правільна дзейнічае скрыпт, запускаючы яго непасрэдна з твайго браўзэра:

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

> Цяпер трэба зрабіць так, каб скрыпт запускаўся аўтаматычна і рэгулярна.

> #### Запуск скрыпта з лініі камандаў

> Гэту старонку ты можаш выклікаць дакладна таксама, як у папярэднім прыкладзе. Напрыклад у сістэме Unіx можаш скарыстаць інструмент 'wget':

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

> Увага : у гэтым прыкладзе выхад выкінуты ў /dev/null).

> Таго самага можна дасягнуць, карыстаючыся 'lynx':

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

> Альтэрнатыўны метад заключаецца ў выкарыстанні версіі PHP, скампіляванай такім чынам, каб яе можна было запусціць з лініі камандаў. Перавагай такога рашэння з’яўляецца тое, што лагатыпы твайго сэрверу не загружаюцца пастаяннымі зваротамі да cron.php. А недахоп заключаецца ў тым, што трэба мець доступ да версіі php, якая падтрымліваецца лініяй камандаў.

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

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

> #### Аўтаматычны запуск скрыпта праз 5 хвілінаў.

> У сістэмах Unіx: карыстайся cron. Змадыфікуй устаноўку механізма 'cron' з лініі камандаў, упісваючы "crontab -e" і дадаючы лінію наступнага выгляду :

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

> У сістэмах Wіndows: Найлепш скарыстаць малы пакет moodle-cron-for-windows.zip пры дапамозе якога ўвесь працэс станецца вельмі простым. Можаш таксама выкарыстаць убудаваную функцыю 'Гарманізацыя задачаў'.

> На Інтэрнэт-сэрверах: твая кантрольная панель, якая абапіраецца на сетку, можа ўтрымліваць інтэрнэт-старонку, якая дае магчымасць уключыць дадзены працэс. Запытайся ў свайго адміністратара пра дэталі.

### 10. Стварэнне новага курса

> Цяпер, калі платформа Moodle дзейнічае правільна, можаш ствараць курсы.

> Выберы каманду "Ствары новы курс" з адміністрацыйнай старонкі (або з адміністратыўных спасылак на галоўнай старонцы твайго сервісу).

> Запоўні фармуляр, надаўшы асаблівую ўвагу фармату курса. Не трэба звяртаць асаблівай увагі на дэталі, паколькі ўсе яны могуць быць пазней устаноўлены вядоўцам.

> Клікні на "Запішы змены", і будзеш перанесены ў наступны фармуляр, на якім можаш запісаць вядоўцаў курсаў. У гэтым месцы можаш карыстацца толькі існуючымі рэгістрацыйнымі запісамі. Калі захочаш стварыць новы рэгістрацыйны запіс вядоўцы, тады або прапануй вядоўцу, каб ён стварыў яго сабе сам (на старонцы рэгістрацыі), або ствары яго самастойна, клікнуўшы на спасылку " Ствары новы рэгістрацыйны запіс" на адміністрацыйнай панелі.

> Пасля таго, як курс ужо створаны, ён гатовы да змены ўстановак, а таксама становіцца даступным праз спасылку "Курсы" на галоўнай старонцы.

> Прачытай "Кіраўніцтва для настаўніка" каб пазнаёміцца з дэталямі на тэму пабудовы курсаў.

Дакументацыя Moodle

Version: $Id$