Hogyan telepítsük a PHP 5.6.40-et választható verzióként a Debian 9 (Stretch) tökéletes szerverre (2. oldal)

botond küldte be 2019. 02. 19., k – 01:10 időpontban

A 2. oldal tartalma

 

Folytatás

A leírás első oldalán teljesítettük a PHP 5.6 forráskódjának lefordításához szükséges követelményeket, majd lefordítottuk és telepítettük a PHP 5.6.40-et. Ezen az oldalon pedig folytatjuk a munkát a PHP utólagos beállításaival, valamint felvesszük az ISPConfig 3 kezelőpanelben a PHP 5.6.40-et a választható PHP verziók listájába.

 

 

Utólagos beállítások

Konfigurációs fájlok bemásolása

A "gyári" konfigurációs fájlokat át kell másolni a működési helyükre.

php.ini átmásolása:

cp /usr/local/src/php-5.6-build/php-5.6.40/php.ini-production /opt/php-5.6.40/lib/php.ini

PHP-FPM konfigurációs fájl átmásolása:

cp /opt/php-5.6.40/etc/php-fpm.conf.default /opt/php-5.6.40/etc/php-fpm.conf

PHP-FPM beállítása

A PHP-FPM számára létre kell hozni a pool könyvtárat, amiben majd a weboldalak konfigurációs fájljai fognak kerülni:

mkdir -p /opt/php-5.6.40/etc/php-fpm.d

Nyissuk meg szerkesztésre a fentebb átmásolt konfigurációs fájlt:

nano /opt/php-5.6.40/etc/php-fpm.conf

És állítgassunk be néhány paramétert, amik eltérnek az alábbiaktól:

[...]
include=/opt/php-5.6.40/etc/php-fpm.d/*.conf
[...]
pid = run/php-fpm.pid
[...]
user = www-data
group = www-data
[...]
listen = 127.0.0.1:8999
Itt a listen opciónál annyi a lényeg, hogy a disztribúcióban lévő alapértelmezett PHP-FPM a 9000-es porton figyel, és minden további opcionálisként feltelepített PHP-FPM-et pedig az eggyel alacsonyabb portra szokás tenni. Így tehát a most feltelepített PHP 5.6.40-et a 8999-es portra állítom be. Majd ha felkerül a következő PHP verzió, azt pedig eggyel lejjebb, és így tovább. 

Systemd unit fájl létrehozása

Létre kell hoznunk az indító fájlt, amivel bármikor el tudjuk indítani vagy le tudjuk állítani a PHP-FPM daemonját:

nano /lib/systemd/system/php-5.6.40-fpm.service

Tegyük bele az alábbi tartalmat:

[Unit]
Description=The PHP 5.6.40 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/php-5.6.40/var/run/php-fpm.pid
ExecStart=/opt/php-5.6.40/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6.40/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Mentsük le, majd engedélyezzük a szolgáltatást és töltsük újra a systemd-t:

systemctl enable php-5.6.40-fpm.service
systemctl daemon-reload

PHP-FPM elindítása és ellenőrzése

Indítsuk el a PHP-FPM-et:

systemctl start php-5.6.40-fpm.service

Ha nincs semmi gond, akkor ez a parancs nem ad kimenetet.

Ellenőrizzük a folyamatlistában is, hogy minden stimmel-e:

ps -auxf | grep "php-fpm"
root       482  0.0  1.1 485884 45584 ?        Ss   10:36   0:01 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data  1009  0.0  0.2 485884 10512 ?        S    10:36   0:00  \_ php-fpm: pool www
www-data  1010  0.0  0.2 485884 10512 ?        S    10:36   0:00  \_ php-fpm: pool www
root     25160  0.0  0.0  12792   984 pts/1    S+   21:34   0:00                          \_ grep php-fpm
root     25136  0.0  0.5 189836 23388 ?        Ss   21:33   0:00 php-fpm: master process (/opt/php-5.6.40/etc/php-fpm.conf)
www-data 25137  0.0  0.1 189836  8084 ?        S    21:33   0:00  \_ php-fpm: pool www
www-data 25138  0.0  0.1 189836  8084 ?        S    21:33   0:00  \_ php-fpm: pool www

A folyamatok között látható, hogy fut a "gyári" PHP 7.0 FPM-je, alatta pedig a most feltelepített 5.6.40-es. Mindkettőnek a www-data a gazdája, mivel ezek a mester processzek. Amikor elindul egy weboldal valamelyik PHP-FPM-et használva, akkor újabb pool jön létre, ami már a weboldal felhasználójának nevében fog futni.

 

 

PHP bővítmények bekapcsolása, telepítése

Zend OPcache engedélyezése

A Zend OPcache gyorsabb PHP futtatást biztosít a köztes kódok cachelése és optimalizálása által. Javítja a PHP teljesítményét az előfordított szkript byte kódjainak a memóriában történő tárolásával.

Engedélyezéséhez nyissuk meg a php.ini fájlt:

nano /opt/php-5.6.40/lib/php.ini

És adjuk a fájl végéhez az alábbi sort:

zend_extension=opcache.so

Memcache engedélyezése (opcionális)

A Memcache modult először le kell fordítanunk, majd engedélyeznünk kell, mint ahogy az előző opcache-t is.

Telepítsük a fordításhoz szükséges libmemcached-dev csomagot:

apt-get -y install libmemcached-dev

Ezután futtassuk az alábbi parancsokat a Memcache modul fordításához:

cd /opt/php-5.6.40/etc/
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install memcache

Az utolsó parancs rákérdez, hogy engedélyezze-e a munkamenetek kezelésének támogatását:

Memcache modul fordítása és telepítése a PHP 5.6.40-hez.

Itt engedélyezzük az opciót.

Ezután szépen lefordul, majd írja, hogy módosítsuk a php.ini fájlunkat az új modulhoz. Tegyünk is így, nyissuk meg a php.ini fájlt:

nano /opt/php-5.6.40/lib/php.ini

És adjuk ezt a sort is a fájl legvégéhez:

extension=memcache.so

PHP-FPM újraindítása és ellenőrzés

Végül indítsuk újra a PHP-FPM-et:

systemctl start php-5.6.40-fpm.service

És ellenőrizzük a PHP-t:

/opt/php-5.6.40/bin/php --version
PHP 5.6.40 (cli) (built: Feb 18 2019 16:47:39) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Most már írja a Zend OPcache-t is.

A PHP információkat is ellenőrizhetjük, de még ezt is csak a parancssorból, mivel még nincs működő weboldalunk:

/opt/php-5.6.40/bin/php --info

Itt kiírja mindazt, amit a webes felületen a phpinfo() függvény is kiír, tehát lehet mazsolázni a paraméterek között.

 

 

PHP 5.6.40 engedélyezése az ISPConfig3-ban

Elérkeztünk az utolsó fejezetünkhöz, ahol learathatjuk a babérokat: engedélyezhetjük ezt a PHP verziót az ISPConfig3 kezelőpanelünkben, ami után bármelyik weboldal számára választható PHP verzióként érhető majd el.

Lépjünk be az ISPConfigba adminként, majd Lépjünk be a "Rendszer" -> "Additional PHP Versions" almenüjébe.

ISPConfig3 kezelőpanel - Kiegészítő PHP verziók

Itt kattintsunk a (jelenleg üres) lista felett lévő "Add new PHP version" gombra.

Name fül

ISPConfig3 kezelőpanel - Kiegészítő PHP verziók - Name fül

Ezen a fülön tudjuk beállítani a felvinni kívánt PHP alapvető információit:

  • Server: Itt felajánlja a szerverünket, hagyjuk ezen.
  • Client: Ha már vittünk fel ügyfelet, akkor azt itt állíthatjuk be, hogy melyik ügyfél (weboldalai) számára legyen elérhető ez a PHP verzió. Itt célszerű üresen hagyni, mert akkor mindenkinek elérhető lesz ez a PHP.
  • PHP Name: Ez pedig a PHP neve. Bármit megadhatunk, de célszerű a pontos verziót beállítani, hogy később ne keverjük össze ha már több verziónk lesz.

Lépjünk a következő fülre.

FastCGI Beállítások fül

Ezt a PHP-t FastCGI módban is lesz lehetőségünk használni, így ennek a beállításai jönnek ezen a fülön:

ISPConfig3 kezelőpanel - Kiegészítő PHP verziók - FastCGI Beállítások fül

  • Path to the PHP FastCGI binary: /opt/php-5.6.40/bin/php-cgi
  • Path to the php.ini directory: /opt/php-5.6.40/lib
Itt ügyeljünk rá, hogy a mezőkben a beállított értékek előtt és után ne maradjanak szóközök. Nagyon alattomos hiba tud lenni.

PHP-FPM Beállítások fül

Itt állíthatjuk be a PHP-FPM dolgait:

ISPConfig3 kezelőpanel - Kiegészítő PHP verziók - PHP-FPM Beállítások fül

  • Path to the PHP-FPM init script: php-5.6.40-fpm
  • Path to the php.ini directory: /opt/php-5.6.40/lib
  • Path to the PHP-FPM pool directory: /opt/php-5.6.40/etc/php-fpm.d

Itt is ügyeljünk, hogy ne maradjanak szóközök.

Végül mentsük le az űrlapot.

És ezzel elkészült az 5.6.40-es választható PHP verziónk a szerveren:

ISPConfig3 kezelőpanel - Kiegészítő PHP verziók - Elkészült verzió

 

Naplófájlok forgatása (Opcionális)

Érdemes fontolóra venni a naplófájlok forgatását a Logrotate programmal. Amennyiben szeretnénk beállítani, ebben a leírásban találhatjuk meg a módját.

 

Konklúzió

Sikerült egy hasznos dologgal kiegészítenünk a Debian 9 (Stretch) tökéletes szerverünket. Innentől bármelyik weboldalnál be lehet állítani a PHP 5.6.40-es verziót, amelyiknél szükség van rá.

Egyébként elég életszerű is a dolog, mert a Debian verziók szaladnak, így előbb-utóbb át kell térnünk az újabb verziókra. Viszont ha hozzánk vágnak egy régi weboldalt, ami még a PHP 5-re lett írva, akkor így már nem jövünk zavarba.

 

 

Lapozó

Ez a leírás több oldalból áll: