Hogyan állíthatunk be egyedi PHP verziókat ISPConfig rendszerű szerverünkön

botond küldte be 2020. 01. 27., h – 18:30 időpontban

Tartalom

 

Bevezető

Ha szerverünkön több weboldalt is üzemeltetünk, szükségünk lehet weboldalanként eltérő PHP verzió működtetésére. ISPConfig használata esetén ez roppant egyszerű feladat, ugyanis a kezelőpanel képes egyszerre több PHP verzió futtatására is. Ebben a leírásban átnézzük, hogyan állíthatjuk be a szerverre feltelepített PHP példányokat FastCGI és PHP-FPM módokban.

 

 

Előfeltételek

A beállítások elvégzéséhez szükség van bizonyos feltételek meglétére, lássuk mik is ezek:

Szerverkonfiguráció

Első körben szükségünk van egy olyan szerver telepítésre, amely tartalmazza az ISPConfig kezelőpanelt. Ilyen lehet például az alábbiak valamelyike:

Ehhez a feladathoz tehát bármelyik szerver jó, tetszőlegesen választhatunk melyiket rakjuk össze, illetve ha csak próbálgatni szeretnénk, akkor a virtuális gépeket is letölthetjük. Ebben a leírásban én a vastaggal kiemelt Debian 10-es változatot fogom használni, valamint ezt is ajánlom, mivel jelenleg ez az oldalon lévő legújabb szerver változat. 

A virtuális gépek beüzemeléséhez pedig itt találhatunk útmutatót: Hogyan állítsuk be a VirtualBox-ot az alaprendszerek számára (Bár a leírás készítése óta már jött ki újabb VirtualBox verzió, a beállítások menete ettől még ugyanaz).

Telepített PHP példányok

További feltétel, hogy a szerveren több, különböző verziójú PHP rendszer álljon rendelkezésre. Ebben a leírásban az egyedi PHP telepítésekre nem térünk ki, hanem itt csak az ISPConfig beállítására koncentrálunk. Azonban korábban már készült egy pont ideillő útmutató is, aminek most csak az első oldalát kell végrehajtanunk, illetve innen is csak a számunkra szükséges PHP változatok telepítését: 

Tehát mégegyszer: az imént linkelt útmutatónak csak az első oldalát hajtsuk végre, a többit már az ISPConfig felületén állítjuk be.

A más módon feltelepített (pl. kézzel lefordított) PHP rendszerek is beállíthatók az ISPConfig felületén, azonban ezeknél eltérő útvonal beállításokat kell alkalmazni, ezért a PHP telepítéseket most a fentebb linkelt példa alapján végezzük el.

 

Egyedi PHP verziók beállítása az ISPConfig felületén

Ha a fenti feltételeknek eleget tettünk, akkor jöhetnek a PHP beállítások az ISPConfig rendszerben.

Rendelkezésre álló PHP verziók ellenőrzése

Először ellenőrizzük, hogy mely PHP verziók állnak rendelkezésre. Ezt a lépést akár ki is hagyhatjuk, azonban célszerű ellenőrizni, ha például a PHP változatok már régebben lettek telepítve, így nem emlékszünk pontosan, hogy mely verziók vannak a szerveren. Ehhez futtassuk az alábbi parancsokat:

ls -al /etc/php
ls -al /run/php

Az első paranccsal a PHP-k telepítési könyvtárainak meglétét vizsgáljuk, a másodikkal pedig a különböző változatok socket fájljait, amik a PHP-FPM működéséhez kellenek. Ezeknek a kimenete nálam a Debian 10 tökéletes szerveren:

PHP verziók ellenőrzése

A mai példa kedvéért most feltelepítettem az összes elérhető PHP verziót, ezek látszanak is a listákban (a phpMyAdmin socket fájlját még a Debian 10 LAMP szerver telepítése során állítottam be, ezért van jelen). Természetesen nem kötelező mindegyiket feltelepíteni és beállítani, hanem amelyiket használni szeretnénk.

Új PHP verzió létrehozása az ISPConfigban

A szerverünk ISPConfig elérhetőségén lépjünk be a felületre Admin-ként (a kezelőfelületet nyelvét az eredeti beállításon hagytam, így angolul jelenik meg):

ISPConfig Admin belépés - Kezdőképernyő

Lépjünk a jobb felső System főmenüre, majd utána a bal oldalon az Additional PHP Versions menüpontra:

ISPConfig - Rendszer - További PHP verziók

Itt kattintsunk a zöld Add new PHP version gombra. Ekkor előjön az új PHP űrlapja:

ISPConfig - Rendszer - További PHP verziók - Új hozzáadása

Tehát ezzel az opcióval kell létrehoznunk és beállítanunk az összes használni kívánt egyedi PHP verziót. A továbbiakban áttekintjük ezeknek a PHP változatoknak a beállításait.

Szerverünk disztribúciójától és annak verziójától függően az alapértelmezett PHP változatok eltérnek egymástól. Ettől függetlenül érdemes ugyanúgy beállítani egyedi verzióként is, hogy áttekinthető maradjon szerverünk beállítási struktúrája.

 

 

PHP 5.6 beállítása

Name fül

ISPConfig - További PHP verziók - PHP 5.6 - Név fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Ha használunk ügyfeleket, akkor is célszerű üresen hagyni, így mindegyik ügyfél számára elérhető lesz ez a PHP verzió.
  • PHP neve: PHP 5.6
  • Aktív: pipa

FastCGI Settings fül

ISPConfig - További PHP verziók - PHP 5.6 - FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi5.6
  • Path to the php.ini directory: /etc/php/5.6/cgi

Itt ügyeljünk rá, hogy az első értéknél nem kell abszolút elérési utat használni, mert a php-cgi fájlok a /usr/bin könyvtárban vannak, amik alapból benne vannak az elérési útban:

php-cgi fájlok ellenőrzése

Tehát se az elejére, se a végére nem kell / jel.

A második beállítás (ini könyvtár útvonala) viszont már egy abszolút elérési út, tehát itt / jellel kezdődik!

PHP-FPM Settings fül

ISPConfig - További PHP verziók - PHP 5.6 - PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php5.6-fpm
  • Path to the php.ini directory: /etc/php/5.6/fpm
  • Path to the PHP-FPM pool directory: /etc/php/5.6/fpm/pool.d

Itt is az első beállításnál a rendszer automatikusan a /etc/init.d/ könyvtárban fogja keresni az init scriptet, tehát csak magát a fájlnevet kell megadni. A további két beállításnál pedig abszolút elérési úttal kell megadni a php.ini-t tartalmazó és a PHP-FPM pool könyvtárakat. Ezek végére nem kell / jel.

Továbbá ügyeljünk arra is, hogy amikor kimásoljuk innen ezeket a beállításokat, ne maradjon előtte sem és utána sem szóköz! Alattomos hiba tud lenni, én már szívtam ilyen miatt régebben.

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

 

 

PHP 7.0 beállítása

Hozzunk létre egy újabb PHP verziót, majd az előző mintájára következetesen állítsunk be ugyanígy mindent. Itt már nem készítek képeket, ügyeljünk itt is a relatív és abszolút útvonalakra!

Name fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Hagyjuk üresen
  • PHP neve: PHP 7.0
  • Aktív: pipa

FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi7.0
  • Path to the php.ini directory: /etc/php/7.0/cgi

PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php7.0-fpm
  • Path to the php.ini directory: /etc/php/7.0/fpm
  • Path to the PHP-FPM pool directory: /etc/php/7.0/fpm/pool.d

 

PHP 7.1 beállítása

A következő ugyanígy...

Name fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Hagyjuk üresen
  • PHP neve: PHP 7.1
  • Aktív: pipa

FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi7.1
  • Path to the php.ini directory: /etc/php/7.1/cgi

PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php7.1-fpm
  • Path to the php.ini directory: /etc/php/7.1/fpm
  • Path to the PHP-FPM pool directory: /etc/php/7.1/fpm/pool.d

 

PHP 7.2 beállítása

Name fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Hagyjuk üresen
  • PHP neve: PHP 7.2
  • Aktív: pipa

FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi7.2
  • Path to the php.ini directory: /etc/php/7.2/cgi

PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php7.2-fpm
  • Path to the php.ini directory: /etc/php/7.2/fpm
  • Path to the PHP-FPM pool directory: /etc/php/7.2/fpm/pool.d

 

PHP 7.3 beállítása

Name fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Hagyjuk üresen
  • PHP neve: PHP 7.3
  • Aktív: pipa

FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi7.3
  • Path to the php.ini directory: /etc/php/7.3/cgi

PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php7.3-fpm
  • Path to the php.ini directory: /etc/php/7.3/fpm
  • Path to the PHP-FPM pool directory: /etc/php/7.3/fpm/pool.d

 

PHP 7.4 beállítása

Name fül

  • Szerver: Válasszuk ki a szerverünk nevét
  • Kliens: Hagyjuk üresen
  • PHP neve: PHP 7.4
  • Aktív: pipa

FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi7.4
  • Path to the php.ini directory: /etc/php/7.4/cgi

PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php7.4-fpm
  • Path to the php.ini directory: /etc/php/7.4/fpm
  • Path to the PHP-FPM pool directory: /etc/php/7.4/fpm/pool.d

 

Ha beállítottuk az összeset, akkor utána így néz ki a listánk:

ISPConfig - Beállított PHP verziók

 

PHP 8.0 beállítása

 

 

Konklúzió

Ennyi lenne tehát az egyedi PHP verziók beállítása az ISPConfig rendszerben. Ezek után a weboldalak beállításainál már lehetőségünk nyílik az adott oldal megfelelő PHP verziójának beállítására. Ezek a PHP változatok FastCGI és PHP-FPM módokban is használhatók, ezek közül én a modernebb PHP-FPM használatát javaslom.