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 # >= 9.3 
apache2 # >= 2.2 && <= 2.4
php5 # = 5.4
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 do pobrania z [http://support.edokumenty.eu/download/linux/ download]
# rozpakować i wejść do katalogu katalogu w którym znajduje 
# się skrypt install.sh.

# Zend Optimizer
./bin/optimizer.sh

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  (w różnych dystrybucjach różnie się może nazywać użytkownik serwera np. Fedora, Gentoo - apache, PLD - http)
usermod -aG edokumenty www-data (dla RedHat należy dodać polecenie usermod)

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.php engine

# Aliasy dla domyślnych systemów
<IfModule mod_alias.c>
    Alias /edokumenty /home/edokumenty/public_html
</IfModule>

# Handler dla plików php
<FilesMatch "(.+[.]inc$|.+[.]php$|engine)">
    SetHandler application/x-httpd-php
</FilesMatch>

# Domyślny katalog dla redirect                       
<Directory /home/*/public_html/>
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride Options
    Order allow,deny
    allow from all
</Directory>

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. Plik najczęściej jest w katalogu: /etc/php5/apache2/php.ini. Warto zwrócić uwagę aby php-cli czyli konsolowe miało tą samą konfigurację (znajduje się w pliku /etc/php5/cli/php.ini).

default_charset = UTF-8
memory_limit = 96M
upload_max_filesize = 32M
post_max_size = 32M
mbstring.internal_encoding = UTF-8
enable_dl = On
error_log = /var/log/php_error.log
allow_call_time_pass_reference = On

Następnie musimy utworzyć ten plik i dać uprawnienia do zapisu procesowi serwera:

touch /var/log/php_error.log
chown www-data:www-data /var/log/php_error.log

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. Tam zostaną utworzone katalogi na pliki użytkowników (files, repos, repository). Po zakończeniu instalacji odbierzemy te prawa.

UWAGA! Zakładamy że użytkownik serwera (np. www-data) należy dodatkowo do grupy edokumenty co można sprawdzić poleceniem id www-data

$id www-data
uid=33(www-data) gid=33(www-data) grupy=33(www-data),1006(edokumenty)

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

Polecane 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

W tym momencie system jest gotowy do instalacji aplikacji edokumenty. Opisana jest ona tutaj ale zaczynamy od punktu 3.

Po wykonaniu instalacji systemu należy zabrać uprawnienia do tych katalogów, którym przyznano na czas instalacji prawo zapisu dla serwera.

chmod g-w ~edokumenty
chmod g-w ~edokumenty/public_html/apps/edokumenty