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/local/mysql
$ make
$ make install
$ /usr/local/mysql/bin/mysql_install_db
$ chown mysql -R /usr/local/mysql/var
$ /usr/local/mysql/bin/safe_mysqld &
$ /usr/local/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. 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 CHARACTER SET utf8 COLLATE utf8_polish_ci;
mysql> GRANT USAGE ON lms.* TO lms@localhost;
mysql> GRANT ALL ON lms.* TO lms@localhost IDENTIFIED BY 'twoje_hasło';
mysql> flush privileges;
mysql> use lms;
mysql> source doc/lms.mysql;

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

W PHP dostępne są dwa rozszerzenia do obsługi bazy MySQL (mysql i mysqli). LMS obsługuje oba, możesz wybrać, ktego chcesz użyć ustawiając odpowiednio opcję type w sekcji [database].

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 8.2.x i nowszych, możesz mieć problemy korzystając ze starszych wersji. Jeżeli nie masz zainstalowanego serwera PostgreSQL, możesz np. własnoręcznie skompilować go 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/local/pgsql/data
$ chown postgres /usr/local/pgsql/data
$ su - postgres
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --locale=pl_PL.UTF-8
$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &

Ostrzeżenie

Dotyczy wersji <= 9.1.x: Wymagane jest dodanie wpisu w postgresql.conf: custom_variable_classes = 'lms'

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/local/pgsql/bin/createuser -DPRS lms
$ /usr/local/pgsql/bin/createdb -E UNICODE -O lms lms
$ /usr/local/pgsql/bin/psql -d lms -U lms -f /lms/doc/lms.pgsql

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/local/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 \
                       --file=backups/lms-auto-"$(date +%s)".sql