----------------------------------------------------------------------
                    LAN Managment System 1.1.2b
----------------------------------------------------------------------
                    Krtki podrcznik instalacji
----------------------------------------------------------------------
Witaj.  Zanim  zaczniesz instalowa LMS w swojej sieci, powi prosz
kilka  minut  na przeczytanie tego tekstu. Zminimalizuje to do minimum
ble  porodowe  jakie moesz odczuwa podczas instalacji LMS. Tak wic
zaparz  sobie  kawy lub signij bo butelk ze swoim ulubionym napojem,
usid wygodnie i rozpocznij lektur.

0. Intro - czyli co bdzie Ci potrzebne.

Po pierwsze: serwer WWW.

Generalnie,  LMS  wymaga  PHP, wic jakikolwiek serwer WWW obsugujcy
interpreter  PHP.  Oczywicie  preferowany  to  Apache  1.3.26  (czyli
tymczasowo  najnowszy), ale na starszych nie powinno by najmniejszych
problemw.

Po drugie: interpreter PHP.

Tutaj  wymagania  s  troch  wysze. Wielce prawdopodobne jest i LMS
pjdzie  na kadym PHP 4.2.x ktre bdzie miao obsug sesji, wyrae
regularnych  i  mysql'a.  W  praktyce nawet nie chciao mi si bawi w
sprawdzanie  ze starszymi interpreterami ni PHP-4.2.3. Prawdopodobnie
po  zrobieniu kilku maych przerbek LMS pracowaby take z PHP-4.1.x,
ale  wybaczcie,  ja  wystarczajco duo czasu powiciem na to by LMS
wogle powsta. Reszta naley do was :)

Po trzecie: serwer baz danych MySQL lub PostgreSQL

Cao  projektu  bya  pisana  z  wykorzystaniem  MySQL od 3.23.53 do
3.23.57,  ale na nieduo starszych wersjach nie powinno by problemw.
Jeli  chodzi  o  PostgreSQL  to nie polecamy wersji wczeniejszych od
7.2.3.

Po czwarte: perl i moduy do niego.

- perl waciwy i jego podstawowe moduy (POSIX, GetOpt::Long);
- Net::SMTP;
- Config::IniFiles;
- DBI;
- DBD-mysql (dla mysql'a);
- DBD-pg (dls postgres'a);

I  tyle  by  byo  na  temat  wymaga  samego  LMS'a.  Na koniec co do
dystrybucji - LMS zosta odpalony na:

- PLD 1.0 Ra (od 2.2.20 do 2.2.25 i od 2.4.18 do 2.4.20-5), PHP/4.2.3,
  MySQL  od  3.23.53  do  3.23.56,  PostgresSQL 7.2.3 (LMS by gwnie
  rozwijany  na  tej  dystrybucji  przez  co  cay  LMS  moe zawiera
  zboczenia charakterystyczne dla PLD)
- PLD 1.0 Ra + PostgreSQL
- PLD  1.99  Ac  (pre-ac  od Averne) - kernel 2.4.20, PHP/4.3.1, MySQL
  4.0.12, perl-5.8.0-0.32
- Debianie 3.0 Woody
- Windowsie z najnowszym EasyPHP
- Slackware 8.1 (2.4.20), Apache 1.3.27, PHP 4.2.3, MySQL 3.23.53
- Slackware 8.1 (2.4.20SMP), Apache/1.3.27, PHP/4.3.1, MySQL 3.23.55
- RedHat 8.0
- FreeBSD 4.7-RELEASE, mysql 3.23.57, Apache/2.0.47 (z portsw do 4.7)

I  prawdopodobnie pjdzie na czymkolwiek (wcznie z lodwk) o ile to
co  bdzie  potrafio  zgry  MySQL'a i serwer WWW z PHP. Bd take
wdziczny  kademu  o  przesanie info o konfiguracji o ile uda mu si
LMS'a  odpali.  Odwied  stron  domow  LMS'a (http://lms.rulez.pl).
Dowiesz  si tam jak si zapisa na list mailingow oraz wiele innych
zasobw ktre mog by przydatne.

1. Possijmy co.

Nie,  to  nie  porno  film.  eby  LMS'a  chcie  trzeba go mie. A e
{$chcie  eq  $mc}  wic cignijmy LMS'a. Jako e w momencie pisania
tego tekstu LMS nie zosta jeszcze ukoczony, opisz jak pobra wersj
z CVS'a.

Przez  WWW,  korzystajc  z  interfejsu viewCVS mona pobra LMS'a pod
adresem:

http://cvs.rulez.pl/viewcvs.cgi/lms/lms.tar.gz?tarball=1

Uywajc CVS'a, wykona z shella komend:

cvs -d :pserver:cvs@cvs.rulez.pl:/home/cvsroot get lms

Po  cigniciu (i ewentualnym rozpakowaniu) naley LMS'a przenie do
katalogu   docelowego,   np.   do   /var/www/htdocs/   ewentualnie  do
/home/httpd/html.  Czynnoci  tej  nie  bd  opisywa gdy jeeli nie
potrafisz wykona takiej bzdury to wogle sobie daruj.

2. Setting UP :)

Oki,  jestemy  w katalogu LMS'a i teraz przydaoby si go przygotowa
do  pracy.  Zacznijmy od docignicia biblioteki Smarty i umieszczenia
jej  w  odpowiednim  miejscu,  tj  w katalogu lib. Ta czynno wyglda
mniej wicej tak:

cd lib
wget http://smarty.php.net/distributions/Smarty-2.5.0.tar.gz
tar -xzf Smarty-2.5.0.tar.gz
mv Smarty-2.5.0/libs Smarty

Pozostaje  nam  stworzy  w  katalogu  z LMS podkatalogi templates_c i
backups  (o  ile  go  nie  ma, bo bardzo niewykluczone e pewien pacan
pakujcy  LMS'a  zapomni  go  doda)  oraz zmieni jego waciciela na
uytkownika  z  ktrego  uruchominy  jest  serwer  www  (np. http albo
apache).

****UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA*****

PAMITAJ  E  JEELI ZOSTAWISZ PODKATALOG BACKUPS W PODKATALOGU LMS'a,
DO  TWOICH  BACKUPW BDZIE MONA SI DOBRA BEZ ADNEJ AUTORYZACJI!!!
Najlepiej  ustawi katalog z backupami np. na /var/backup/lms lub co,
gdzie serwer WWW nie ma dostpu!!!

****UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA***UWAGA*****

Voila.   Nastpnie   przygotowujemy  serwer  baz  danych.  Szczegowe
informacje  znajdziesz  w  plikach  INSTALL.mysql  i  INSTALL.pgsql  -
wybierz waciwy dla siebie.

3. Postinstalacja.

Zamy  e  chcemy  prost  sie, prywatn, na kernelu 2.2, na jednym
serwerze  gdzie jest wszystko i tak w miar bez komplikacji. Mamy ju
uruchomiony  interface,  wszystko  chodzi  i  wogle  cacy,  ale teraz
kwestia  jak  to zgra z serwerem. Oki. Niezbdne skrypty perlowe s w
katalogu bin tarbala z LMS. Kolejno te skrypty to:

lms-cutoff      - skrypcik, ktry zmienia status komputerw
lms-payments    - skrypcik, ktry obcia kadego uytkownika
                  okrelon wedug taryfy sum w okrelonym w bazie
                  dniu.
lms-mgc         - magiczny generator czegokolwiek - czyli co, co
                  potrafi nam skonfigurowa cokolwiek co chcemy.
lms-notify      - skrypt wysyajcy upomnienia do uyszkodnikw, e
                  zalegaj z opatami.

Wszystkie  skrypty  poza  lms-mgc  (z  racji rnego dziaania parsera
plikw  ini  PHP i perla) korzystaj z /etc/lms/lms.ini. lms-mgc czyta
/etc/lms/lms-mgc.ini.

Skopiujmy  te skrypty do /usr/sbin aby byy atwo dostpne i zacznijmy
je instalowa.

Aby co miesic z uytkownikw bya zdzierana jaka kasa, naley doda
lms-payments do crona. Przykadowa linijka wyglda tak:

0 0 * * *       /usr/sbin/lms-payments

Zapis  ten  spowoduje  e  codziennie  o  pnocy  lms sprawdzi ktrzy
uytkownicy   maj   danego   dnia   zapaci  i  ich  obciy  opat
abonamentow  w  wysokoci  przewidzianej  przez  taryf  w jakiej si
znajduje.

Kolejny  etap  integracji  LMS'a  z  Dziaem  Nkania  Uytkownikw to
wysyanie powiadomie, czyli lms-notify:

0 0 8 * *       /usr/sbin/lms-notify

Czyli  smego  kadego  miesica  wylemy  przypominienie o tym, e s
jakie  zalegoci  (czyli  aktualne  saldo  usera jest poniej zera).
Temat  wiadomoci  oraz  ciek  do  pliku  tekstowego  ustawiamy   w
/etc/lms/lms.ini. Przydatna bdzie opcja debug ktra zaspamuje naszego
mailboxa  zamiast  uytkownikw.  Przykadowy  template  maila  jest w
sample/mailtemplate.txt.  Dzia  Nkania  moe  p.t. luserowi przysa
pewne informacje zawarte w lmsie, ich peny wykaz znajduje si w pliku
sample/test.txt,  moe  to  by  np  aktualna  taryfa, stan konta, czy
wycig  z  ostatnich  operacji. Dodatkowo mona ustawi kilka(nacie?)
szablonw  maili,  tak  e  pierwszy  to  'naliczono abonament', drugi
'proba  o uregulowanie wpaty'. N-ty to 'za 24h zostaniesz odcity od
sieci'. Np:

0 0 10 * * /usr/sbin/lms-notify -D conf/tekst_1.txt
0 0 15 * * /usr/sbin/lms-notify -D conf/tekst_2.txt
0 0 20 * * /usr/sbin/lms-notify -D conf/tekst_3.txt

Trzeci i ostatni etap to odcinanie userw poniej danego limitu:

0 0 10 * *       /usr/sbin/lms-cutoff

Limit ustawiamy w lms.ini jak zwykle.

Okej.   Teraz  generowanie  configw.  Od  tego  suy  lms-mgc.  Jego
konfiguracja  jest  zawia.  Tak wic wrmy do podstawowego zadania -
zrobienia tylko firewalla (i to prostego) dla linuksa 2.2.

Teraz,   dodajmy   now   sekcj  mgc  do  lms-mgc.ini,  nazywajc  j
'ipchains', oraz stwrzmy w tej sekcji prost maskarad per adres IP z
lanu:

[mgc:ipchains]

outfile                 = /etc/rc.d/rc.masq
outfile_perm            = 700
header                  = #!/bin/sh\n/sbin/ipchains -F\n/sbin/ipchains -X\n/sbin/ipchains -P forward DENY
grantednode_priv        = /sbin/ipchains -A forward -s %IP -j MASQ
post_exec               = /etc/rc.d/rc.masq

Dopiszmy take do sekcji gwnej mgc informacj eby mgc uruchamia t
sekcj:

[mgc]

instances               = ipchains

Teraz   prba  odpalenia  lms-mgc  powinna  zaowocowa  wygenerowaniem
/etc/rc.d/rc.masq, oraz jego odpaleniem.

Mamy  dwie  moliwoci  wprowadzenia  w  ycie tego generatorka - albo
przez  cron,  albo  z  poziomu lms'a (tak! synny nigdy nie dziaajcy
reload  (tm)).  Pierwsze,  powinno  by atwe i napewno tego tutaj nie
opisz.  Druga metoda wymaga paru kombinacji. Niestety, jedyne wyjcie
by  umoliwi  odpalenie  lms-mgc  to dopisanie uytkownika do sudo, a
nastpnie wpisy w sekcji [phpui] lms.ini:

reload_type             = exec
reload_execcmd          = sudo /usr/sbin/lms-mgc

Tak  wic  wszystko powinno dziaa. Wecie take na poprawk, i cay
projekt  mimo  tylu  miesicy pisania dopiero od kilku tygodni nabiera
normalnej  formy,  ale  miejmy nadziej i szybko stanie si stabilnym
rozwizenim dla sieci osiedlowych i maych ISP.

$Id: INSTALL,v 1.36 2003/08/22 00:24:29 lukasz Exp $
