= Aktualizacja PHP do wersji 7.4 =
Support dla PHP
[http://php.net/supported-versions.php http://php.net/supported-versions.php][[BR]]
[[BR]]
'''1. Aktualizacja do PHP 7.2'''
W tym podpunkcie zajmiemy się aktualizacją PHP do wersji 7.4 a także zmianą IONCubeLoadera. Wersję PHP 7.4 można instalować dla Ready_™ 6.80.1 i nowszych.
Przed instalacją nowych pakietów musimy posprzątać nie potrzebne elementy w tym PHP oraz ZendLoadrera. Jeśli korzystaliśmy z PHP 5.6 lub PHP 7.2 wykonujemy poniższe polecenie dpa PHP 5.6:
{{{
apt-get purge php5 php5-common php5-dev php5-imap php5-ldap php5-odbc php5-readline php5-sybase php5-cli php5-curl php5-gd php5-json php5-memcached php5-pgsql php5-sqlite php5-xsl
}}}
Jeśli świeżo aktualizowaliśmy do Debian 9 Stretch możemy również usunąć pakiety PHP 7.0 poniższym poleceniem.
{{{
sudo apt-get remove php7.0*
}}}
Usuńmy również ręczenie pliki ZendLoadera nie będą nam już potrzebne. Pliki powinny znajdować się w lokalizacji:
{{{
/usr/lib/php5/ZendGuardLoader.so
/usr/lib/php5/opcache.so
}}}
Dla PHP 7.2:
{{{
apt-get purge php7.2*
}}}
Jeśli świeżo aktualizowaliśmy do Debian 9 Stretch możemy również usunąć pakiety PHP 7.0 poniższym poleceniem.
{{{
sudo apt-get remove php7.0*
}}}
Przystępujemy do instalacja PHP 7.4. Jeśli nie mamy jeszcze repozytoriów dla PHP 7.4 dodajemy je w przeciwnym przypadku możemy pominąć ten punkt
Debian 9 Stretch:
{{{
sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
}}}
Debian 10 Buster
{{{
sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list
}}}
{{{
apt-get update
}}}
Przystępujemy do instalacji pakietów PHP 7.4:
{{{
apt install php7.4-fpm php7.4-cli php7.4-common php7.4-curl php7.4-mbstring php7.4-mysql php7.4-xml php7.4-gd php7.4-pgsql php7.4-bcmath php7.4-sqlite3 php7.4-imap php7.4-xsl php7.4-ldap php7.4-odbc php7.4-json php7.4-sybase php7.4-readline php7.4-soap php7.4-zip
}}}
Dla FPM instalujemy REDIS zamiast memcached
{{{
apt-get install redis-server
apt-get install php7.4-redis
}}}
Konfiguracja dla Redis, którą wprowadzamy w pliku '''/etc/redis/redis.cont'''
{{{
save 1200 1
save 600 10
save 120 10000
}}}
Włączamy obsługę modułów w Apache
{{{
sudo a2enmod actions alias proxy_fcgi
}}}
Dodajemy IonCubeLoadera, plik znajduje się w paczce konfiguracyjnej [http://support.edokumenty.eu/download/installation/linux-os/php74_fcgi_apache_conf.zip tutaj]. Po umieszczeniu go na serwerze np
{{{
/usr/lib/php/
}}}
Dodajemy w pierwszej linii pliku php.ini w lokalizacjach
{{{
/etc/php/7.4/fmp/php.ini
/etc/php/7.4/cli/php.ini
}}}
następujący wpis:
{{{
zend_extension=/usr/lib/php/ioncube_loader_lin_7.4.so
}}}
W plikach php.ini dodajemy również
{{{
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
}}}
oraz modyfikujemy wartości dla:
{{{
memory_limit = 512M
upload_max_filesize = 32M
post_max_size = 64M
expose_php = Off
session.name = READYSESSID
max_input_vars = 2500
}}}
Kolejnym krokiem jest modyfikacja pliku www.conf
{{{
vim /etc/php/7.4/fpm/pool.d/www.conf
}}}
modyfikujemy wpis
{{{
security.limit_extensions = .php engine
pm.max_children = 8
}}}
Ostatnim elementem jest zmiana handlera w Apache w pliku default.conf oraz default-ssl.conf, obecny wpis:
Dla PHP 5.6
{{{
SetHandler application/x-httpd-php
}}}
Dla PHP 7.2
{{{
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
}}}
modyfikujemy następująco
{{{
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
}}}
W plikach konfiguracyjnych default.conf oraz default-ssl.conf Apache dodajemy również, na potrzeby autoryzacji WebDAV oraz CalDAV:
{{{
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
}}}
Z poziomu konsoli wykonujemy polecenie:
{{{
a2enmod headers
}}}
W plikach konfiguracyjnych '''conf-enabled/security.conf''' w Apache wprowadzamy następujące zmiany:
{{{
ServerSignature Off
Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Header always set Referrer-Policy "same-origin"
}}}
Uruchomienie moduł tłumaczącego dla Ready_™.
Dodajemy moduł do php 7.4 - bsedt.so w lokalizacji
{{{
/usr/lib/php/20190902
}}}
Następnie tworzymy pliki bsedt.ini w folderach php:
{{{
/etc/php/7.4/mods-available/bsedt.ini
}}}
Zawartość pliki bsedt.ini
{{{
extension=bsedt.so
}}}
Tworzymy symlinki do pliku bsedt.ini
{{{
ln -s /etc/php/7.4/mods-available/bsedt.ini /etc/php/7.4/cli/conf.d/bsedt.ini
ln -s /etc/php/7.4/mods-available/bsedt.ini /etc/php/7.4/fpm/conf.d/bsedt.ini
}}}
W pliku '''php.ini''' dla '''/etc/php/7.4/cli/''' oraz '''/etc/php/7.4/fpm/''' dodajemy wpis:
{{{
[bsedt]
bsedt.lang_path="/home/edokumenty/public_html/apps/edokumenty/share/lang"
bsedt.lang=en_UK
}}}
Wyłączamy moduł opcache poprzez zakomentowanie w '''/etc/php/7.4/mods-available/opcache.ini'''
Po zakończeniu konfiguracji restartujemy usługi Apache oraz FPM
{{{
service php7.4-fpm restart
/etc/init.d/apache2 restart
}}}
Gotowe pliki konfiguracyjne można pobrać z [http://support.edokumenty.eu/download/installation/linux-os/php74_fcgi_apache_conf.zip poniższej lokalizacji]. Po wgraniu plików wystarczy tylko restart usług Apache oraz PHP-FPM
Po zmianie PHP na 7.4 konieczna jest aktualizacja kodu system Ready_™ do kompilacji dla php 7.4. Aktualizacja kodu na nowszą wersję może wymagać wykonania patchy. Aktualizację wykonujemy w taki sam sposób jak dla systemu eDokumenty. Pomocny może być w tym przypadku ten [http://support.edokumenty.eu/trac/wiki/DeployerGuide/Upgrade link.]