# Инсталиране на Moodle

## Не се плашете!

> Това ръководство обяснява как да инсталирате Moodle за пръв път. Някои от стъпките са описани в големи детайли, в опит да се обхванат болшинството от възможните настройки на web сървърите. Поради това, този документ може да изглежда дълъг и сложен. Не се плашете! Веднъж разберете ли как става, можете да инстлирате Moodle за няколко минути.

> Ако имате проблем, моля ви, прочетете този документ много внимателно - тук е дадено решение за най-често срещаните проблеми. Ако това не помогне, можете да търсите помощ от Moodle Help.

> Друга възможност е да се свържете с фирма, предлагаща web хостинг, която да поеме изцяло поддръжката на Moodle, така че да можете да игнорирате този документ и директно да се посветите на обучение!

> Съдържание:

> 1. Изисквания
> 2. Изтегляне и копиране на файловете
> 3. Структура на сайта
> 4. Изпълнение на инсталационния скрипт и създаване на config.php
>    - Проверка на настройките на web сървъра
>    - Създаване на база данни
>    - Създаване на директория за данни
> 5. Настройка от страницата за администриране
> 6. Настройване на cron
> 7. Създаване на нов курс

### 1. Изисквания

> При разработването на Moodle, основно се използват Apache, MySQL и PHP, работещи на Linux (тази комбинация е много популярна и също така се нарича LAMP платформа), но редовно се провеждат тестове с PostgreSQL, както и за работа с операционните системи: Windows XP, Mac OS X и Netware 6.

> Изискванията на Moodle са както следва:

> 1. софтуер за Web сървър. Повечето хора използват Apache, но Moodle би трябвало да работи чудесно с всеки web сървър, който поддържа PHP, като IIS на Windows платформа, например.
> 2. скриптовият език PHP (версия 4.1.0 или по-нова). PHP 5 се поддържа от Moodle 1.4 (и по-новите версии).
> 3. работещ сървър за база данни: MySQL и PostgreSQL се поддържат напълно и се препоръчват за работа с Moodle.

> Повечето услуги за web хостинг предлагат всичко това по подразбиране. Ако сте абонирани при някой от малкото доставчици на web хостинг услуги, които не предлагат подобни възможности, поинтересувайте се защо е така и обмислете дали да не реализирате начинанието си другаде.

> Ако искате да пуснете Moodle на собствения си компютър и намирате всичко това за обезсърчително, можете да погледнете нашето ръководство "Инсталиране на Apache, MySQL и PHP". В него са дадени инструкции как стъпка по стъпка да инсталирате всичко това на най-популярните платформи.

### 2. Изтегляне и копиране на файловете

> Има два начина да се сдобиете с Moodle - като компресиран архив или чрез CVS. Подробни обяснения са публикувани на страницата за изтегляне: http://moodle.org/download/.

> След като изтеглите и разопаковате архива, или изтеглите файловете по CVS, ще разполагате с директория, наречена "moodle", която съдържа доста голям брой файлове и папки.

> Можете или да поставите цялата папка в директорията за документи на вашия web сървър (в който случай вашият сайт ще бъде разположен на http://yourwebserver.com/moodle), или можете да копирате съдържанието на папката направо в главната директорията за документи на web сървъра (сайтът ще бъде разположен на http://yourwebserver.com).

> Ако първо изтегляте Moodle на своя компютър, а после го качвате на вашия web сайт, обикновенно е по-добре да качите целият архив като един файл, а после да го разпакетирате на сървъра. Дори интерфейсите от рода на Cpanel позволяват декомпресиране на архиви чрез "File Manager".

### 3. Структура на сайта

> Съвсем спокойно можете да прескочите този раздел. Тук е дадено обобщено съдържанието на папката на Moodle, за да ви помогне при ориентацията:

> > config.php | - | съдържа основните настройки. Този файл не идва заедно с Moodle - трябва вие да го създадете.
> > install.php | - | скриптът, който да създаде config.php
> > version.php | - | дефинира текущата версия на кода на Moodle
> > index.php | - | заглавната страница на вашия сайт

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

### 4. Изпълнение на инсталационния скрипт и създаване на config.php

> За да изпълните инсталационния скрипт (install.php), просто опитайте да заредите адреса на сайта във web браузър, или директно го извикайте (напр.: http://yourserver/install.php).

> (Инсталаторът ще се опита да запише бисквитка за сесията (session cookie). Ако получите предупреждение за това, задължително приемете бисквитката!)

> Moodle ще открие, че е нужно конфигуриране и ще ви преведе през няколко екрана, с помощта на които да създадете нов конфигурационен файл, наречен config.php. В края на процеса, Moodle ще се опита да запише файла на мястото му. Ако не успее, ще можете да изтеглите файла от инсталатора и да качите изтегления config.php в главната директория на Moodle на сървъра.

> Междувременно, инсталаторът ще провери обкръжението на сървъра ви и може ви даде някои предложения за отстраняване на проблеми. Най-често, тези предложения са достатъчни, но ако все пак нещата не потръгнат, четете надолу за някои от честите спънки.

> ### 4.1 Общи настройки на web сървъра

> > Най-напред се уверете, че web сървъра ви е настроен да използва index.php като страница по подразбиране (най-вероятно в допълнение към index.html, default.htm и т.н.).

> > При Apache, това се прави във файла httpd.conf чрез параматъра DirectoryIndex. Моят обикновенно изглежда така:

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

> > Само се уверете, че index.php е в списъка (и по възможност да е на по предна позиция, за да постигнете по-голяма ефективност).

> > Второ, ако използвате Apache 2, трябва да включите променливата AcceptPathInfo, която позволява скриптовете да получават аргументи от вида: http://server/file.php/arg1/arg2. Това е важно, тъй като позволява използването на относителни връзки между ресурсите и тка осигурява по-добро бързодействие за потребителите на вашия Moodle сайт. Можете да активирате тази настройка, като вкючите този ред във вашия httpd.conf файл.

> > >     AcceptPathInfo on

> > Трето, Moodle изисква да бъдат направени известен борй PHP настройки, за да може да работи. На много сървъри, тези настройки ще са вече направени. Все пак, някои PHP сървъри (както и някои от по-новите версии на PHP) може да са настроени по различен начин. Всички настройки се правят в конфигурационния файл на PHP (обикновенно е наречен php.ini). Настройките са:

> > >     magic_quotes_gpc = 1    (препоръчитено, но не задължително)
> > >     magic_quotes_runtime = 0    (задължително)
> > >     file_uploads = 1
> > >     session.auto_start = 0
> > >     session.bug_compat_warn = 0

> > Ако нямате достъп до httpd.conf или php.ini за вашия сървър, или сте инсталирали Moodle на един и същ сървър с приложения, които изискват други настройки, не се притеснявайте - често можете да предефинирате настройките по подразбиране.

> > За да направите това, трябва да създадете файл, наречен .htaccess в главната директория на Moodle. Този файл трябва да съдържа редове, подобни на тези по-долу. Този метод работи на Apache сървъри и то само когато е активирана опцията '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 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

> > Най-лесно е да копирате шаблона от lib/htaccess и да го редактирате според нуждите си. (Във този файл се съдържат по-подробни инструкции.) С командния интерпретатор на Unix, например, това се постига така:

> > >     cp lib/htaccess .htaccess

> ### 4.2 Създаване на база данни

> > Нужно е да създадете празна база данни (напр. "moodle"), както и специален потребител (напр. "moodleuser"), който да има достъп до тази база данни (и то само до нея). Ако искате, за тестови цели, можете да използвате и потребителя "root", но това не се препоръчва за реална система: ако хакери успеят да открият паролата, цялата ви система за бази данни ще бъде застрашена, вместо да бъде застрашена само една база данни.

> > Ако използвате някаква web хостинг услуга, най-вероятно разполагате с контролен панел от който можете да създадете базата данни.

> > Системата Cpanel е една от най-популярните сред доставчиците на услуги за web хостинг. За да създадете база данни със Cpanel,

> > 1. Щракнете на иконката "MySQL Databases".
> > 2. Напишете "moodle" в полето за база данни и щракнете на "Add Database".
> > 3. Въведете име и парола (не от онези, които използвате ина други места) в съответноте полета и натиснете "Add User".
> > 4. Сега използвайте бутона "Add User to Database", за да дадете на новосъздадения потребител пълни ("ALL") права над новата база данни.
> > 5. Отбележете, че пред потребителското име и името на базата данни, може да е добавено и вашето потребителско име за систеата Cpanel. Когато въвеждате инждате тази информация в инсталатора на Moodle, използвайте пълните имена.

> > ААко имте достъп до командния ред на Unix, можете да постигнете същото, чрез команди.

> > Ето примерни команди за 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

> ### 4.3 Създаване на директория за данни

> > Освен всичко останало, Moodle ще се нуждае и от известно място на твърдия диск (или дискове) на сървъра ви, където да съхранява качените файлове (като например курсови документи или снимки на потребителите).

> > Инсталаторът на Moodle ще прави всичко възможно, за да създаде тази директория. Ако не успее, ще трябва вие да създадете тази директория ръчно.

> > От гледна точка на сигурността, най-добре е тази директория да НЕ е достъпна за посетителите. Най-лесния начин е да я създадете ИЗВЪН директорията за документи на web сървъра, но ако това е невъзможно, ограничете достъпа до нея, като създадете в нея файл, наречен .htaccess, който да съдържа следния ред:

> > >     deny from all

> > За да разрешите на Moodle да съхранява файлове в тази директория, уверете се, че web сървъра ви (напр. Apache) има права за четене, запис и изпълнение в тази директория.

> > За Unix машини, това означава да настроите собственика на директорията да бъде "nobody" или "apache" и да му дадете пълни права (rwx).

> > Във Cpanel можете да използвате "File Manager", за да откриете папката, след което да щракнете върху нея и да изберете "Change Permissions". При поделени сървъри, вероятно ще трябва да ограничите всички права за достъп до вашата група (за да не могат останалите собственици на web сайтове да преглеждат и променят вашите файлове), като дадете пълен достъп за четене/запис на всички останали (това ще даде на web сървъра достъп до файловете ви).

> > Ако срещнете затруднения при обезопасяването, свържете се с администратора на сървъра ви. В частност, при някои сървъри, използващи една възможност на PHP, наречена "Safe Mode", може да е наложително администратора да ви създаде тази директория.

### 5. Настройка от страницата за администриране

> След като вече сте създали config.php, ако се опитате да заредите сайта, ще бъдете препратени на страницата за администриране на системата, където да довършите настройката на системата.

> Когато за пръв път заредите тази страница, ще ви бъде показано кратка бележка за GPL лиценза, с която трябва да се съгласите.

> След това, 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

> ..и т.н. Най-накрая трябва да видите: Main databases set up successfully.

> > Ако не видите последното съобщение, най-веоятно е възникнал проблем с базата данни или с настройките в config.php. Уверете се, че PHP не е в режим "Safe Mode" (при комерсиалните web сървъри този режим понякога е включен). Можете да разгледате променливите на PHP като създадете малък файл, съдържащ <?php phpinfo() ?> и заредите този файл в браузъра. След като направите необходимите корекции, опитайте отново.

> Отидете в дъното на страницата и щракнете върху връзката "Напред" .

> Сега трябва да виждате формуляр, в който да настроите още някои променливи, като например: език по подразбиране, SMTP сървъри и т.н. Не е нужно да настройвате всичко това веднага - винаги можете да редактирате тези стойности, като използвате интерфейса за администриране на Moodle. Стойностите по подразбиране са така избрани, че да са подходящи и безопасни за повечето сайтове. Когато приключите с настройките, отидете най-отдолу и щракнете върху "Запис на промените".

> > Ако (и само ако) откриете, че не можете да продължите (много е вероятно сървъра ви да има проблема, който наричам "buggy referrer"), можете да направите следното: изключете ползването на "secureforms" и опитайте да продължите.

> След това ще видите още страници със съобщения за изпълнението на различни заявки - създават се таблиците за различните модули на Moodle. Како и преди, всички съобщения трябва да са зелени.

> Отидете в края на страницата и щракнете върху връзката "Напред".

> Следва страница с формуляр, в който можете да настроите параметрите на вашия сайт и заглавната му страница (като например: име, описание и т.под.). Попълнете полетата (винаги можете да ги промените) и натиснете "Запис на промените".

> Най-накрая, че бъдете помолени да създадете потребител, който да бъде главен администратор на сайта и който ще има достъп до страниците за администриране на системата. Попълнете детайлите (вашето име, електронен адрес и т.н.) и щракнете върху "Запис на промените". Не всички полета са задължителни, но ако пропуснете някое от задължителните, ще ви бъде напомнено.

> > > > > > Запомнете името и паролата за този профил, тъй като ще ви трябват за бъдещото администриране на системата.

> > (Ако поради някаква причина инсталацията е прекъсната или възникне системна грешка, която ви пречи да влезете, използвайки администраторския профил, обикновенно можете да влезете, използвайки името и паролата по подразбиране - потребителско име "admin" и парола "admin".)

> Ведниж преминали успешно през всички тези стъпки, ще бъдете върнати на началната страниц на сайта ви. Забележете, че в ляво имате меню за администриране на системата (всички елементи от това меню са достъпни и на страницата за администриране на Moodle). Това меню е достъпно само за вас, защото вие сте влезнали в системата като администратор. От това меню можете да извършвате всички бъдещи административни действия, като например:

> - създаване и изтриване на курсове
> - Създаване и редактиране на потребителски профили
> - администриране профилите на преподавателите
> - промяна на глобалните настройки на сайта (теми, езици и т.под.)

> Но инсталацията не свършва до тук! Остава още една много важна задача - уверете се в раздела по-долу.

### 6. Настройване на cron -- ВАЖНО!

> Някои модули на Moodle изискват периодични проверки за изпълнението на задачи. Например, Moodle периодично трябва да проверява форумите, за да изпрати по пощата копия на постингите до абониралите се потребители.

> Скриптът, който изпълнява тази задача, се намира в директория admin и се нарича cron.php. Той, разбира се, не може да се стартира сам, така че се налага да настроите някакъв механизъм, който периодично да стартира скрипта (например на всеки пет или десет минути). Това осигурява възможност за изпълнение на различни функции от различни модули, изпълнявани с различна честота. Този вид механизъм е познат като услугата cron.

> Моля, отбележете, че не е нужно машината, на която работи cron, да е същата, на която работи Moodle. Например, ако имате ограничен набор услуги за вашия web хостинг, който не включва cron, можете да изпълнявате cron на друг сървър или дори на домашния си компютър (ако имате постоянна връзка с мрежата и компютъра ви е включен непрекъснато). Единственото, което има значение е cron.php да бъде изпълняван периодично.

> Самият скрипт не е много натоварващ, така че можете спокойно да го изпълнявате на всеки 5 минути, но ако сте притеснени от този срок, можете да увеличите периода между стартиранията му. Можете да зададете период от 15 или дори 30 минути. Най-добре е периода да не е твърде голям, тъй като забавянето на изходящата поща би могло да забави работата на курсовете.

> Най-напред се уверете, че скриптът работи, като го извикате директно от браузъра си:

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

> След това трябва да направите така, че скриптът да се изпълнява автоматично през определен интервал от време.

> За Windows системи

> > Най-лесния начин е да използвате този малък пакет: moodle-cron-for-windows.zip. Той инсталира една допълнителна услуга в Windows. Просто го стартирайте и забравете за него!

> В случай, че използвате услуга за web хостинг

> > Контролният панел мпоже да съдържа страница, от която да може да се настройва cron. Потребителите на Cpanel, например, трябва да търсят бутон, наречен "Cron jobs". След като го щракнат, те могат да зададат същите команди, както при UNIX системите (описни по-долу).

> #### Ако имате достъп до команден ред на Unix

> > Съществуват различни програми, които можете да използвате, за да извикате скрипта cron.php от команден ред. Вероятно не всички от изброените програми са налични на вашия сървър.

> > Например, ако имате Unix инструмент от рода на '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

> #### Използване на UNIX програмата crontab

> > Това, което Cpanel прави, е да осигури интерфейс за Unix програма, наречена crontab. Ако имате достъп до команден ред, можете да настроите crontab и сами, като използвате командата:

> > >     crontab -e

> > След това можете да добавите някоя от горните команди. Това става така:

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

> > Обикновенно, командата "crontab" ще зареди редактора 'vi'. За да превключите в режим на вмъкване, натиснете "i", след което можете да наберете горния ред и да излезете от режима на вмъкване, като натиснете ESC. За да съхраните промените и да излезете от програмата, напишете ":wq", а за да излезете без да съхранявате промените, напишете ":q!" (без кавичките, разбира се).

### 7. Създаване на нов курс

> Сега, след като Moodle работи нормално, можете да се опитате да създадете нов курс и да експерименторате с него.

> Изберете "Създаване на нов курс" в страницата за администриране (или използвайте администраторското меню на началната страница).

> Попълете формуляра, като обърнете специално внимание на формата на курса. На този етап не е нужно да се притеснявате излишно за детайлите, тъй като всичко може да бъде променено по-късно от преподавателя. Отбележете и малките жълти иконки, чрез които имате достъп до помощна информация за различните елементи.

> Натиснете "Запис на промените" и ще видите нов формуляр, от който можете да назначите преподавател за курса. От този формуляр имате достъп само до съществуващите профили. Ако искате да създадете нов профил на преподавател или помолете преподавателя да си създаде сам профил, или вие създайте профила, използвайки "Добавяне на нов поребител" от страницата за администриране.

> Веднъж, направили това, вашият курс е готов да бъде запълнен със съдържание и е достъпен чрез връзката "Курсове" на началната страница.

> За по-нататъшни указания, относно създаването на курсове, вижте "Ръководството на преподавателя".

> Приятна работа и ползотворно обучение!

> Ако харесвате Moodle, моля ви, обмислете възможността да направите дарение, за да ни помогнете да покрием разходите си!

Документация на Moodle

Версия: $Id$