2.5. Instalacja serwera baz danych

2.5.1. MySQL

2.5.1.1. Wstęp

Ta bardzo popularna baza jest dostępna z większością dystrybucji Linuksa. Jeżeli jednak będziesz musiał ją zainstalować samodzielnie, zacznij od ściągnięcia źródeł z www.mysql.com.

2.5.1.2. Instalacja serwera MySQL

Po rozpakowaniu, wejdź do katalogu z naszym MySQL i wydaj kolejno polecenia:

$ ./configure --prefix=/usr/mysql
$ make
$ make install
$ /usr/mysql/bin/mysql_install_db
$ chown mysql -R /usr/mysql/var
$ /usr/mysql/bin/safe_mysqld &
$ /usr/mysql/bin/mysqladmin -u root password nowe_hasło

2.5.1.3. Utworzenie bazy danych

Konieczne to jest jeżeli uruchamiasz LMS po raz PIERWSZY. Jeżeli uaktualniasz LMS z poprzedniej wersji, odpowiednie adnotacje co należy zrobić z bazą danych są w pliku ChangeLog. Tak więc, wejdź do katalogu w którym masz LMS'a i uruchom shell mysql'a:

mysql -u[tutaj wpisz użytkownika z pełnym dostępem do bazy] -p
Enter password:[podaj hasło]
mysql> CREATE DATABASE lms /*!40101 CHARACTER SET utf8 COLLATE utf8_polish_ci */;
mysql> GRANT USAGE ON lms.* TO lms@localhost;
mysql> GRANT select,insert,update,delete,create,alter,drop ON lms.* TO lms@localhost IDENTIFIED BY 'twoje_hasło';
mysql> flush privileges;
mysql> use lms;
mysql> source doc/lms.mysql;

Notatka

Z uwagi na to, że MySQL nawet w wersji 4.1 ma pewne problemy z kodowaniem UTF baza danych LMS może mieć inne kodowanie. W takim wypadku należy założyć bazę w LATIN2 i skorzystać z opcji konfiguracyjnej server_encoding w sekcji [database] pliku lms.ini.

2.5.1.4. Konfiguracja LMS (lms.ini)

Ponieważ MySQL jest domyślną bazą dla LMS'u, konfiguracja ogranicza się do podania w sekcji [database] pliku /etc/lms/lms.ini hasła i użytkownika:

user     = lms
password = hasło_z_pkt.3
server_encoding = latin2 ; jeśli baza nie jest w unicodzie

Po takim zabiegu, o ile LMS'owi uda się nawiązać połączenie do bazy danych, można już bez problemu dostać się do systemu. Jeżeli jednak w bazie danych nie ma żadnego konta użytkownika, jedyną rzeczą jaką zobaczysz będzie formularz dodania użytkownika. Jeżeli podasz prawidłowe dane użytkownika, LMS przeniesie Cię na stronę logowania gdzie od razu będziesz mógł użyć nowo utworzonego konta.

Zatrzymaj się tutaj i dodaj coś do crona, tak dla świętego spokoju:

12 4 3,10,17,21,28 * * /usr/bin/mysqldump -u lms --password=Twoje-super-tajne-hasło \
              --add-drop-table --add-locks lms > backups/lms-auto-"$(date +%s)".sql

Spowoduje to wykonywanie o 4:12 rano, każdego 3, 10, 17, 21 i 28 dnia miesiąca automagicznie zrzutu danych z mysqla.

2.5.2. PostgreSQL

2.5.2.1. Wstęp

LMS jest testowany na PostgreSQL 7.3.4 i nowszych, ale ponieważ żadne skomplikowane właściwości tej bazy nie są wykorzystywane, nie powinno być problemów z innymi wersjami. Jeżeli nie masz zainstalowanego serwera PostgreSQL, najlepszym rozwiązaniem będzie własnoręczna kompilacja ze źródeł dostępnych na stronie www.postgresql.org.

2.5.2.2. Instalacja

Jest to wersja skrócona instalacji, więcej informacji znajdziesz w dokumentacji postgresa. Po ściągnięciu i rozpakowaniu wejdź do katalogu głównego i wpisz kolejno poniższe polecenia.

$ ./configure --enable-locale
$ gmake
$ su
$ gmake install
$ adduser postgres
$ mkdir /usr/pgsql/data
$ chown postgres /usr/pgsql/data
$ su - postgres
$ /usr/pgsql/bin/initdb -D /usr/pgsql/data --locale=pl_PL.UTF-8
$ /usr/pgsql/bin/postmaster -D /usr/pgsql/data >logfile 2>&1 &

2.5.2.3. Utworzenie bazy danych

Mając uruchomiony serwer możesz przystąpić do tworzenia bazy o nazwie 'lms', której właścicielem będzie użytkownik z loginem 'lms'.

$ /usr/pgsql/bin/createuser -d -A -P lms
$ /usr/pgsql/bin/createdb -E UNICODE -U lms lms
$ /usr/pgsql/bin/psql -d lms -U lms -f /lms/doc/lms.pgsql

Notatka

Kodowanie UNICODE jest prawidłowo obsługiwane dla znaków spoza zakresu ASCII dopiero od wersji 8.0 PostgreSQLa. Na wcześniejszych wersjach należy założyć bazę w LATIN2 i skorzystać z opcji konfiguracyjnej server_encoding w sekcji [database] pliku lms.ini.

2.5.2.4. Konfiguracja LMS (lms.ini)

Dla systemu LMS domyślnym serwerem baz danych jest MySQL, dlatego w sekcji [database] pliku /etc/lms/lms.ini należy ustawić następujące opcje:

type     = postgres
user     = lms
password = hasło_podane_przy_tworzeniu_użytkownika_lms

Notatka

Hasło jest wymagane w zależności od konfiguracji autentykacji użytkowników postgresa w /usr/pgsql/data/pg_hba.conf. Domyślnie hasło nie jest wymagane.

Po takim zabiegu, o ile LMS'owi uda się nawiązać połączenie do bazy danych, można już bez problemu dostać się do systemu. Jeżeli jednak w bazie danych nie ma żadnego konta użytkownika, jedyną rzeczą jaką zobaczysz będzie formularz dodania użytkownika.

Zatrzymaj się tutaj i dodaj coś do crona, tak dla świętego spokoju:

12 4 3,10,17,21,28 * * /usr/bin/pg_dump -U lms --clean  \
            	    lms --file=backups/lms-auto-"$(date +%s)".sql