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