Aktualizacja systemy Debian 7 Wheezy do Debian 8 Jessie

Debian 7 (Wheezy) Debian 8 (Jessie)
Domyślne PostgreSQL 9.1 . 9.4
PHP 5.4 . 5.6
Opcjonalne PostgreSQL 9.5 . 9.6
PHP 5.4 . 5.6

Support dla Debian oraz PHP
Support dla Debian 8 https://wiki.debian.org/LTS/
Support dla PHP http://php.net/supported-versions.php

WAŻNE! W związku z tym, iż PHP 5.6 jest bardzo restrykcyjny w sprawie weryfikacji jednostki wydającej certyfikat dla serwerów poczty. W przypadku nie zaufanego źródła konieczne jest zmiana połączenia na nie szyfrowane.

Poniższa instrukcja przedstawia sposób aktualizacji systemu operacyjnego Linux. Aktualizacja systemu jest przeprowadzana w celu podniesienia wersji PHP do wersji 5.6, instalacji PostgreSQL oraz aktualizacji Apache do wersji 2.4. Należy pamiętać, ze po instalacji będziemy posiadali w systemie dwa działające silniki PostgreSQL, jeden nasz obecny działający na porcie 5432 oraz nowy na porcie 5433.

Po upgrade systemu należy pamiętać o podmianie ZendGuardLoadera (wersji system 32-bit lub 64-bit) oraz kodu aplikacji eDokumenty dla PHP 5.6.

Przed przystąpieniem do prac BEZWZGLĘDNIE należy pamiętać o wykonaniu KOPI BEZPIECZEŃSTWA, całego systemu, bazy danych, katalogu /home/edokumenty.

1. Zaczynamy od aktualizacji systemu w ramach gałęzi, której aktualnie się znajduje (tj. Wheezy):

#apt-get update
#apt-get upgrade

Jeśli system nie był długo aktualizowany pewnie trzeba będzie uruchomić system ponownie ze względu na nowszą wersję jądra systemu.

#reboot

Przed aktualizacją dystrybucji wykonujemy kopię klików konfiguracyjnych

tar -pczf etc.tar.gz /etc 

2. Po aktualizacji systemu edytujemy plik /etc/apt/sources.list, zmieniamy dotychczasowe wpisy dla wheezy na jessie

deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.de.debian.org/debian/ jessie main contrib non-free

#Od 20 marca są niedostępne
#deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free


deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

Następnym krokiem jest zaktualizowanie pakietów

apt-get update

oraz aktualizacja dystrybucji

apt-get dist-upgrade

W niektórych przypadkach aktualizacji dystrybucji systemu mogą pojawić się problemy z aktualizacją komponentów PHP. W tym przypadku należy usunąć link symboliczny do php.ini z /etc/php5/cli i przeniesienie php.ini z /etc/php5/apache2/. Po zakończonej aktualizacji i restarcie systemu ponownie tworzymy link symboliczny do php.ini. Wznowienie aktualizacji wykonujemy poleceniem

apt-get -f install

Po zakończonej aktualizacji wykonujemy restart systemu

reboot

Odtworzenie linku symbolicznego do php.ini

ln -s /etc/php5/apache2/php.ini /etc/php5/cli/

3. Po aktualizacji dystrybucji musimy podmienić Zenda dla nowego php 5.6 Komponenty ZEND Ścieżkę dla Zenda znajdziemy w php.ini. A także zaktualizować kod aplikacji eDokumenty

4. W przypadku problemów z uruchomieniem Apache po aktualizacji systemu należy zweryfikować błędy, które będzie nam zwracał Apache podczas jego uruchomienia. To możemy sprawdzić poleceniem

systemctl status apache2.service

W załączniku znajdują się przykładowe pliki konfiguracyjne Apache2.

Po zakończonej aktualizacji systemu należy wprowadzić modyfikację w konfiguracji Apache. W pliku /etc/apache2/sites-enabled/000-default musimy zmodyfikować linię Wpis z Apache22

<Directory /home/*/public_html/>
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride Options
    Order allow,deny
    allow from all
    # Odwo³ania do nazwy serwera przekieruj± do edokumentów
</Directory>

Zmieniamy na

<Directory /home/*/public_html/>
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride Options
    Require all granted
    # Odwo³ania do nazwy serwera przekieruj± do edokumentów
</Directory>

Kolejnym krokiem jest modyfikacja /etc/apache2/mods-available wprowadzamy zmiany w pliku userdir.conf

Domyślny plik w systemie Linux Debian

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

Plik userdir.conf po modyfikacjach, do pliku dodajemy HEAD REPORT

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS HEAD REPORT>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS HEAD REPORT>
                        Require all granted
                </LimitExcept>
        </Directory>
</IfModule>

Po wprowadzeniu mofygikacji w pliku userdir.conf wykonujemy restart Apache

/etc/init.d/apache2 restart

5. Obecnie mamy zainstalowane dwa silniki PostreSQL jeden działą na poracie 5432 drugi na 5433. W przypadku gdy nowa wersja PostgreSQL nie zostanie należy wykonać polecenie

apt-get install postgresql-9.6

Po zainstalowaniu PostgreSQL a przed odtworzeniem bazy należy pamiętać aby wgrać pliki tssearch_data dla wyszukiwarki.

wget http://support.edokumenty.eu/download/deployment/components/tsearch_data_polish_20120730.zip
unzip tsearch_data_polish_20120730.zip
cp tsearch_data_polish/* /usr/share/postgresql/9.6/tsearch_data/

Po tych czynnościach możemy przystąpić do odtworzenia bazy danych

Możemy wykonać zrzut bazy z PostgreSQL na porcie 5432.

#su - postgres
$psql -U edokumenty -f edokumenty_upgrade.sql edokumenty (polecenie zakłada że eDokumenty działają na bazie edokumenty i właścicielem bazy jest użytkownik edokumenty)

W nowym klastrze trzeba utworzyć użytkownika oraz bazę:

$createuser -p 5433   --no-superuser --no-createdb --no-createrole http
$createuser -p 5433   --no-superuser --no-createdb --no-createrole edokumenty
$createdb -p 5433 -E UTF8 edokumenty -O edokumenty

Następnie wrzucamy do serwera psql zrzut wykonany chwilę wcześniej:

$psql -p 5433 -U edokumenty -f edokumenty_upgrade.sql edokumenty

Następnym krokiem jest zatrzymanie PostgreSQL

/etc/init.d/postgresql stop

W pliku konfiguracyjnym zmieniamy porty dla PostgreSQL aby nowy działał na domyślnym porcie 5432 Starego PostgreSQL zmieniamy na 5433

vim /etc/postgresql/9.1/main/postgresql.conf 
port=5433

W konfiguracji nowego PostgreSQL zmieniamy na 5432

vim /etc/postgresql/9.4/main/postgresql.conf 
port=5432

W pliku konfiguracyjnym pg_hba.conf dla aktualnej wersji PostgreSQL dodajemy wpisy

vim /etc/postgresql/9.4/main/pg_hba.conf

local edokumenty all trust

Następnym krokiem jest uruchomienie PostgreSQL

/etc/init.d/postgresql start

6. Po aktualizacji systemu konieczna będzie także aktualizacja repozytorium plików

su - www-data
cd /home/edokumenty/repository

Sprawdzamy status repozytorium

svn status

W przypadku otrzymania komunikatu o starej wersji repozytorium, korzystamy z polecenia. W celu zaktualizowania go do najnowszej wersji

svn upgrade

W przypadku gdy powyższą czynność wykonamy z konta roota należy naprawić uprawnienia do folderów repos oraz repository. Naprawa uprawnień została opisana w poniższym artykule Uprawnienia do plików systemu eDokumenty

Załączniki