Zmiany pomiędzy wersją 1 and wersją 2 dla AdminGuide/PHP74Upgrade

Pokaż
Ignoruj:
Data i czas:
03/11/21 10:22:22 (3 years temu)
Autor:
jpo (IP: 83.144.106.170)
Komentarz:

--

Legend:

Bez zmian
Dodane
Usunięte
Zmienione
  • AdminGuide/PHP74Upgrade

    v1 v2  
    1 aa 
     1= Aktualizacja systemy Debian 8 Jessie do Debian 9 Stretch = 
     2 
     3|| || || Debian 8 (Jessie) || Debian 9 (Stretch) || 
     4||Domyślne || PostgreSQL || 9.6 || 10 || 
     5|| || PHP || 5.6 || 7.0 || 
     6||Opcjonalne || PostgreSQL || 10 || 11 || 
     7|| || PHP || 5.6 || downgrade 5.6/ upgrade 7.2 || 
     8 
     9''Support dla Debian oraz PHP''[[BR]] 
     10Support dla Debian 8 
     11[https://wiki.debian.org/LTS/ https://wiki.debian.org/LTS/][[BR]] 
     12Support dla PHP 
     13[http://php.net/supported-versions.php http://php.net/supported-versions.php][[BR]] 
     14[[BR]] 
     15 
     16 
     17 
     18'''3. Downgrade do PHP 5.6 lub aktualizacja do PHP 7.2'''  
     19 
     20Ten punkt zostanie podzielony na dwa oddzielne w zależności od tego jaką ścieżkę wybierzemy przechodzimy do podpunktu a) Downgrade do PHP 5.6 lub podpunktu b) Aktualizacja do PHP 7.2 
     21 
     22 
     23'''3a. Downgrade do PHP 5.6''' 
     24 
     25Po aktualizacji systemu do Linux Debian 9, Stretch, na naszym serwerze dostępna będzie wersja PHP 7.0: 
     26{{{ 
     27php -v 
     28}}} 
     29Aktualizacja nie odinstaluje poprzedniej wersji czyli PHP 5.6 z której będziemy mogli nadal korzystać wystarczy tylko wykonać poniższe polecenie które odinstaluje PHP 7.0: 
     30{{{ 
     31sudo apt-get remove php7.0* 
     32}}} 
     33Po tej czynności nadal będziemy mogli korzystać z eDokumentów działających na PHP w wersji 5.6 
     34Odtworzenie linku symbolicznego do php.ini 
     35{{{ 
     36ln -s /etc/php5/apache2/php.ini /etc/php5/cli/ 
     37}}} 
     38 
     39Przy pozostaniu na wersji php 5.6 - eDokumenty będą działać tak jak do tej pory. 
     40 
     41'''3b. Aktualizacja do PHP 7.2'''  
     42 
     43W tym podpunkcie zajmiemy się aktualizacją PHP do wersji 7.2 a także zmianą ZendLoadera na IONCubeLoadera. 
     44 
     45Przed instalacją nowych pakietów musimy posprzątać nie potrzebne elementy w tym PHP oraz ZendLoadrera. Jeśli korzystaliśmy z PHP 5.6 wykonujemy poniższe polecenie: 
     46{{{ 
     47apt-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 
     48}}} 
     49Jeśli świeżo aktualizowaliśmy do Debian 9 Stretch możemy również usunąć pakiety PHP 7.0 poniższym poleceniem. 
     50{{{ 
     51sudo apt-get remove php7.0* 
     52}}} 
     53 
     54Usuńmy również ręczenie pliki ZendLoadera nie będą nam już potrzebne. Pliki powinny znajdować się w lokalizacji: 
     55{{{ 
     56/usr/lib/php5/ZendGuardLoader.so 
     57/usr/lib/php5/opcache.so 
     58}}} 
     59 
     60Przystępujemy do instalacja PHP 7.2 w środowisku Debian 9. Dodajemy repozytoria dla PHP 7.2 
     61{{{ 
     62sudo apt install ca-certificates apt-transport-https  
     63wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - 
     64echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list 
     65}}} 
     66{{{ 
     67apt-get update 
     68}}} 
     69Przystępujemy do instalacji pakietów PHP 7.2: 
     70{{{ 
     71apt install php7.2-fpm php7.2-cli php7.2-common php7.2-curl php7.2-mbstring php7.2-mysql php7.2-xml php7.2-gd php7.2-pgsql php7.2-bcmath php7.2-sqlite3 php7.2-imap php7.2-xsl php7.2-ldap php7.2-odbc php7.2-json php7.2-sybase php7.2-readline php7.2-soap 
     72}}} 
     73 
     74{{{ 
     75apt-get install php7.2-zip 
     76}}} 
     77 
     78Dla FPM instalujemy REDIS zamiast memcached 
     79{{{ 
     80apt-get install redis-server 
     81apt-get install php7.2-redis 
     82}}} 
     83 
     84Konfiguracja dla Redis, którą wprowadzamy w pliku '''/etc/redis/redis.cont''' 
     85{{{ 
     86save 1200 1 
     87save 600 10 
     88save 120 10000 
     89}}} 
     90 
     91Włączamy obsługę modułów w Apache 
     92{{{ 
     93sudo a2enmod actions alias proxy_fcgi 
     94}}} 
     95 
     96Dodajemy IonCubeLoadera, plik znajduje się w paczce konfiguracyjnej [http://support.edokumenty.eu/download/installation/linux-os/php72_fcgi_apache_conf.zip tutaj]. Po umieszczeniu go na serwerze np 
     97{{{ 
     98/usr/lib/php/ 
     99}}} 
     100 
     101Dodajemy w pierwszej linii pliku php.ini w lokalizacjach 
     102{{{ 
     103/etc/php/7.2/fmp/php.ini 
     104/etc/php/7.2/cli/php.ini 
     105}}} 
     106następujący wpis: 
     107{{{ 
     108zend_extension=/usr/lib/php/ioncube_loader_lin_7.2.so 
     109}}} 
     110W plikach php.ini dodajemy również 
     111{{{ 
     112session.save_handler = redis 
     113session.save_path = "tcp://127.0.0.1:6379" 
     114}}} 
     115oraz modyfikujemy wartości dla: 
     116{{{ 
     117memory_limit = 512M 
     118upload_max_filesize = 32M 
     119post_max_size = 64M 
     120expose_php = Off 
     121}}} 
     122 
     123Kolejnym krokiem jest modyfikacja pliku www.conf 
     124{{{ 
     125vim /etc/php/7.2/fpm/pool.d/www.conf 
     126}}} 
     127modyfikujemy wpis 
     128{{{ 
     129security.limit_extensions = .php engine 
     130pm.max_children = 8 
     131}}} 
     132 
     133Ostatnim elementem jest zmiana handlera w Apache w pliku default.conf oraz default-ssl.conf, obecny wpis: 
     134{{{ 
     135<FilesMatch "(.+[.]inc$|.+[.]php$|engine)"> 
     136     SetHandler application/x-httpd-php 
     137</FilesMatch> 
     138}}} 
     139modyfikujemy następująco 
     140{{{ 
     141<FilesMatch "(.+[.]inc$|.+[.]php$|engine$)"> 
     142    SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" 
     143</FilesMatch>  
     144}}} 
     145 
     146W plikach konfiguracyjnych default.conf oraz default-ssl.conf Apache dodajemy również, na potrzeby autoryzacji WebDAV oraz CalDAV: 
     147{{{ 
     148SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 
     149}}}  
     150 
     151Z poziomu konsoli wykonujemy polecenie: 
     152{{{ 
     153a2enmod headers 
     154}}} 
     155 
     156W plikach konfiguracyjnych '''conf-enabled/security.conf''' w Apache wprowadzamy następujące zmiany: 
     157{{{ 
     158ServerSignature Off 
     159Header set X-Content-Type-Options: "nosniff" 
     160Header set X-Frame-Options: "sameorigin" 
     161Header always set Referrer-Policy "same-origin" 
     162}}} 
     163 
     164Uruchomienie moduł tłumaczącego dla Ready_™. 
     165Dodajemy moduł do php 7.2 - bsedt.so w lokalizacji  
     166{{{ 
     167/usr/lib/php/20170718 
     168}}} 
     169Następnie tworzymy pliki bsedt.ini w folderach php: 
     170{{{ 
     171/etc/php/7.2/mods-available/bsedt.ini 
     172}}} 
     173Zawartość pliki bsedt.ini 
     174{{{ 
     175extension=bsedt.so 
     176}}} 
     177Tworzymy symlinki do pliku bsedt.ini 
     178{{{ 
     179ln -s /etc/php/7.2/mods-available/bsedt.ini /etc/php/7.2/cli/conf.d/bsedt.ini 
     180ln -s /etc/php/7.2/mods-available/bsedt.ini /etc/php/7.2/fpm/conf.d/bsedt.ini 
     181}}} 
     182W pliku '''php.ini''' dla '''/etc/php/7.2/cli/''' oraz '''/etc/php/7.2/cli/''' dodajemy wpis: 
     183{{{ 
     184[bsedt] 
     185bsedt.lang_path="/home/edokumenty/public_html/apps/edokumenty/share/lang" 
     186bsedt.lang=en_UK 
     187}}} 
     188 
     189Wyłączamy moduł opcache poprzez zakomentowanie w '''/etc/php/7.2/mods-available/opcache.ini''' 
     190 
     191 
     192Po zakończeniu konfiguracji restartujemy usługi Apache oraz FPM 
     193{{{ 
     194service php7.2-fpm restart 
     195/etc/init.d/apache2 restart 
     196}}} 
     197 
     198Gotowe pliki konfiguracyjne można pobrać z [http://support.edokumenty.eu/download/installation/linux-os/php72_fcgi_apache_conf.zip poniższej lokalizacji]. Po wgraniu plików wystarczy tylko restart usług Apache oraz PHP-FPM 
     199 
     200Po zmianie PHP na 7.2 konieczna jest aktualizacja kodu system Ready_™ do kompilacji dla php 7.2. 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.]