= Instalacja na dowolnym systemie Linux =
Instalacja systemu może być wykonana w zasadzie na dowolnym systemie Linux/Unix na którym jesteśmy w stanie dostarczyć wymagane przez system pakiety. Poniżej opisany został proces instalacji krok po kroku.
== 1. Instalacja wymaganych pakietów ==
Poniżej została zamieszczona odpowiednia lista, można jej użyć to stworzenia własnego skryptu instalacyjnego. W przypadku pakietów Postgres oraz PHP należy zwrócić uwagę na to aby były we właściwych wersjach (opisane w komentarzu).
{{{
#Base tools
ssh
vim
fonty
mc
nmap
ngrep
sed
wget
gzip
adduser
useradd
bzip2
unzip
rsync
less
# System tools
sudo
iptables
cron
iproute
tcpdump
# Additional tools
apt-show-versions
gcc
g++
cpp
make
# Backup tools
mkisofs
hdparm
dvd+rw-tools
mt-st
smbfs
autofs
# Processing tools
imagemagick
gs-common
html2ps
latex2rtf
antiword
gnuhtml2latex
# Services
postgresql # >= 8.3
apache2
php5 # >= 5.2.6
php5-cli
php-pear
php5-pgsql
php5-imap
php5-dev # zawiera narzędzia developerskie php m.in. plik phpize
php5-gd
php5-sybase
php5-odbc
subversion
openssl
ssl-cert # lub inny pakiet z certyfikatami dla apache
# Pakiety PEAR, mogą być wyższe niż wskazane
pear channel-update pear.php.net
pear install Console_Getopt
pear install Auth_SASL
pear install Mail_Mime
pear install Net_SMTP
pear install Crypt_Rc4
pear install Date
pear install HTTP_Request
pear install Mail
pear install Mail_Mime
pear install Mail_MimeDecode
pear install Net_SMTP
pear install Net_Socket
pear install Net_URL
pear install SOAP-0.11.0
pear install OLE-0.6.1
pear install Spreadsheet_Excel_Writer-0.9.1
pear install Mail_Queue
pear install HTML_Template_Flexy
# Instalacja dodatkowych modułów, których może nie być w pakietach
# Aby zainstalować należy użyć paczki ed-lenny-installer.tar.gz,
# rozpakować i wejść do katalogu katalogu w którym znajduje
# się skrypt install.sh.
# Zend Optimizer
./bin/optimizer.sh
# Rozszerzenie POP3 dla php
./bin/pop3.sh
cp conf/pop3.ini /etc/php5/conf.d/
}}}
== 2. Zakladanie kont i konfiguracja grup dla edokumenty ==
Dla poprawnego i bezpiecznego działania systemu wymagane jest założenie odpowiednich kont i grup systemowych. Przyjęliśmy że możliwość zapisu dla serwera będzie realizowana w oparciu o grupę edokumenty do której dopisywany jest użytkownik serwera (np. www-data, apache, http).
{{{
adduser --ingroup users edokumenty
groupadd edokumenty
adduser edokumenty -g edokumenty
adduser www-data -g edokumenty
}}}
== 3. Konfiguracja Apache ==
Należy upewnić się że poniżej wymienione moduły zostały aktywowane w apache:
* php5
* ssl
* rewrite
* userdir
* vhost_alias
Następnie należy skonfigurować serwer w odpowiednim pliku konfiguracyjnym dla danego środowiska. Zalecane miejsce na system to katalog ''home/edokumenty'', można jednak wybrać inny katalog na instalację ważne by wówczas odpowiednio skonfigurować tą lokalizację:
{{{
ServerAdmin admins@betasoft.pl
ServerSignature Off
DocumentRoot /home/edokumenty/public_html
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml engine
# Aliasy dla domyślnych systemów
Alias /edokumenty /home/edokumenty/public_html
# Handler dla plików php
SetHandler application/x-httpd-php
# Domyślny katalog dla redirect
Options -Indexes FollowSymLinks MultiViews
AllowOverride Options
Order allow,deny
allow from all
}}}
Dodatkowo należy umożliwić większy limit dla żądań HTTP
{{{
echo "LimitRequestFieldSize 16384" >> /etc/apache2/apache2.conf
}}}
== 4. Konfiguracja PHP ==
Oto przykładowy skrypt zmieniający odpowiednie ustawienia w php.ini.
Warto zwrócić uwagę aby PHP consolowe (może mieć osobną konfigurację) również posiadało te ustawienia.
default_charset = UTF-8
memory_limit = 96M
upload_max_filesize = 32M
post_max_size = 32M
mbstring.internal_encoding = UTF-8
enable_dl = On
== 5. Konfiguracja PostgreSQL 8.3 ==
W pliku postgresql.conf:
{{{
default_with_oids = on
}}}
W pliku pg_hba.conf dodajemy poniższą linijkę, lub w dowolny inny sposób zapewniamy możliwość łączenia się przez socket z bazą edokumenty bez hasła.
{{{
local edokumenty all trust
}}}
Tworzymy użytkowników (wszystkie pytania przy tworzeniu odpowiadamy NIE - N) i bazę danych i dodajemy język plpgsql
{{{
sudo -u postgres createuser http
sudo -u postgres createuser edokumenty
sudo -u postgres createdb -E UTF8 edokumenty -O edokumenty
sudo -u postgres createlang -d edokumenty plpgsql
}}}
== 6. Utworzenie public_html i pozostałych katalogów ==
Należy utworzyć wymagane katalogi oraz umożliwić zapis do nich TYLKO na czas instalacji procesowi serwera
{{{
cd $INSTALL_DIR
chgrp edokumenty ~edokumenty
chmod g+w ~edokumenty
mkdir -p ~edokumenty/public_html/apps/edokumenty
chgrp edokumenty ~edokumenty/public_html/apps/edokumenty
chmod g+w ~edokumenty/public_html/apps/edokumenty
cp lib/engine ~edokumenty/public_html/
chown edokumenty:users -R ~edokumenty/public_html
}}}
== 7. Konfiguracja domyślnego backupu ==
Polecene jest ustawienie domyślnych skryptów do crona (można je znaleźć w paczce instalatora dla Debian). Skrypty zrucają bazę danych i pliki używane przez system. Najczęściej polecamy aby podmontować pod katalog /mnt/backup jakiś dodatkowy dysk (może być zewnętrzny). Więcej o backapach znajdziesz w odpowiedniej sekcji wiki.
{{{
./bin/mk_backup_dirs.sh
cd $INSTALL_DIR
cp lib/backup/backup_db /etc/cron.daily/
cp lib/backup/backup_repos /etc/cron.daily/
cp conf/exclude.conf /etc/backup
cp conf/backup.conf /etc/backup
}}}