= 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/fpm/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.]