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.
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 && < 5.3 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
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)
Należy upewnić się że poniżej wymienione moduły zostały aktywowane w apache:
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 <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
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/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
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
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
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