Hogyan telepíthetjük a PHP 8.2 változatát Debian vagy Ubuntu szerverre és állíthatjuk be az ISPConfig kezelőpanelben választható PHP verzióként

botond küldte be 2023. 11. 14., k – 03:01 időpontban

Tartalom

 

Bevezető

PHP 8.2.0 verziója - tehát a 8.2-es ág első hivatalos kiadása - 2022. december 8-án jelent meg, ami a leírás készítése idején már nem számít újdonságnak, azonban még erről a változatról nem írtam, így jobb később, mint soha, valamint a későbbiekben még fogunk rá hivatkozni, ezért már ideje készíteni erről is egy kis telepítési útmutatást.

Ebben a leírásban feltelepítjük a PHP 8.2 változatát egy Debian rendszerre, beállítjuk az alapértelmezett PHP verziókat, beállítjuk az ISPConfig kezelőpanelben választható PHP verzióként, beállítjuk a szükséges tárhelyeken és végül ellenőrizzük egy Drupal és egy WordPress oldalon a PHP működését.

 

 

Alapfeltételek

A PHP 8.2-t lényegében bármilyen rendszerre telepíthetjük, pl. minimális szerverekreLAMP szerverekre, illetve a tökéletes szerver szériára, azonban mivel ez a leírás az ISPConfig beállítását is tartalmazza, ezért az alábbiak közül ajánlom a választást:

Ezt az útmutatót én az itthoni Debian 10 (Buster) szerveremen hajtom végre. Ha új szerver telepítése előtt állunk, akkor természetesen célszerű a Debian 11 vagy Debian 12-est választani, de ha már van egy régebbi szerverünk, mint nekem itthon, akkor az is megfelel.

 

A PHP 8.2 telepítése

A PHP 8.2-es ága a Debian történetében a 2023. június 10-én megjelent 12-es (Bookworm) kiadásban mutatkozott be, míg az Ubuntu esetében a 2023. október 12-én megjelent Ubuntu 23.10 (Mantic Minotaur) kiadásába került bele először. Így akik legalább ezen Linux verziók valamelyikével rendelkeznek, azok telepíthetik simán a disztribúció hivatalos csomagtárából, akiknek viszont régebbi kiadású rendszerük van, azoknak telepíteniük kell az Ondřej Surý méltán népszerű csomagtárát, ahonnan utána már a PHP 8.2 ugyanolyan egyszerűen telepíthető, és a frissítések is érkeznek hozzá a megszokott módon.

A sury.org csomagtár használatba vétele

Akik tehát a fent leírtaknál régebbi Linux disztribúciókkal rendelkeznek, azok az alábbi módon telepíthetik a Surý csomagtárát. Mivel korábban már több ízben is volt erről szó, így ezzel itt nem növelem tovább a leírás terjedelmét, hanem az alábbi linkeket ajánlom a feladat elvégzéséhez:

 

PHP csomagok telepítése

A PHP 8.2-es verziójának telepítéséhez futtassuk az alábbi apt-get parancsot, ami tartalmazza az általam összeállított csomagválogatást, ami alkalmassá teszi a szerverünket a legtöbb weboldal  vagy webalkalmazás futtatására. Az alábbi parancsot természetesen root-ként futtassuk:

apt-get -y install \
    libapache2-mod-php8.2 \
    libphp8.2-embed \
    php8.2 \
    php8.2-apcu \
    php8.2-bcmath \
    php8.2-bz2 \
    php8.2-cgi \
    php8.2-cli \
    php8.2-common \
    php8.2-curl \
    php8.2-fpm \
    php8.2-gd \
    php8.2-gnupg \
    php8.2-http \
    php8.2-imagick \
    php8.2-imap \
    php8.2-inotify \
    php8.2-intl \
    php8.2-lz4 \
    php8.2-maxminddb \
    php8.2-mbstring \
    php8.2-mcrypt \
    php8.2-memcache \
    php8.2-memcached \
    php8.2-mysql \
    php8.2-oauth \
    php8.2-opcache \
    php8.2-pspell \
    php8.2-raphf \
    php8.2-redis \
    php8.2-soap \
    php8.2-tidy \
    php8.2-uuid \
    php8.2-xml \
    php8.2-xmlrpc \
    php8.2-xsl \
    php8.2-yaml \
    php8.2-zip
A hosszú php telepítőparancsot a megszokott módon több sorba tördelve, és a csomagokat névsorba rendezve helyeztem el az áttekinthetőség kedvéért. A parancs futtatásakor fontos, hogy pontosan másoljuk ki az egészet, tehát ne legyen előtte, utána szóköz, stb, és úgy illesszük be a terminálba (a legtöbb terminálban a SHIFT + INSERT billentyűkombináció segítségével illeszhetjük be a vágólap tartalmát).

Ha ezeken kívül netán még szükségünk lenne egyéb csomagokra speciálisabb körülményekhez, akkor az alábbi apt-cache parancs segítségével keresgélhetünk az összes 8.2-es PHP csomagok közül:

apt-cache search php8.2

És innen még válogathatunk, és telepíthetünk további csomagokat, amire szükségünk van.

Új csomagok áttekintése

Itt az oldalon utoljára a PHP 8.0 telepítését tárgyaltuk, most megnézzük, hogy ahhoz a csomagválogatáshoz képest milyen újabb php kiegészítő csomagok kerültek ebbe az összeállításba, amiket korábban nem használtunk, vagy nem voltak elérhetők.

php8.2-gnupg

A php8.2-gnupg csomag egy PHP bővítmény, amely a GnuPG funkcióit integrálja a PHP-be. A GnuPG (Gnu Privacy Guard) egy teljesen szabad és nyílt forrású titkosítási megoldás, amelyet általában az email üzenetek és fájlok titkosítására és aláírására használnak.

A csomag már a korábbi PHP branch-ekben is létezett, de korábban nem telepítettük. Azonban az adatok titkosítása az idő előrehaladtával egyre inkább alapvető szükségletté válik, ezért ma már célszerű telepíteni. A php8.2-gnupg csomag főbb felhasználási területei:

  • Adattitkosítás: Lehetővé teszi a PHP számára, hogy titkosított adatokat hozzon létre, amelyeket csak egy megadott címzett tud megfejteni a privát kulcsával.
  • Digitális Aláírások: Segítségével digitálisan aláírhatunk adatokat, biztosítva ezzel, hogy az adatok nem lettek megváltoztatva a közvetítés közben, és az aláírás megerősíti a küldő kilétét.
  • Adatok visszafejtése és aláírások ellenőrzése: Lehetőséget biztosít arra, hogy visszafejthessünk titkosított adatokat, és ellenőrizzük a digitális aláírásokat.

Ez a bővítmény különösen hasznos biztonságkritikus alkalmazásoknál, ahol fontos az adatvédelem és az adatintegritás biztosítása. Például webes alkalmazásokban, ahol személyes adatokat kezelnek vagy bizalmas üzeneteket küldenek, és ahol szükség van a kommunikáció titkosítására és az adatok hitelesítésére.

php8.2-inotify

php8.2-inotify csomag szintén már egy korábban is elérhető PECL (PHP Extension Community Library) bővítmény, amely a Linux inotify API-t teszi elérhetővé a PHP szkriptek számára. Az inotify egy esemény-alapú értesítési szolgáltatás a Linux kernelben, amely lehetővé teszi, hogy a fejlesztők figyeljék a fájlrendszer valós idejű változásait. A php8.2-inotify bővítmény alapvető funkciói:

  • Fájlrendszer-változások figyelése: Lehetővé teszi a szkriptek számára, hogy figyeljék a fájlok és könyvtárak létrehozását, törlését, módosítását és más eseményeit.
  • Hatékony erőforrás-kezelés: Mivel az inotify közvetlenül a kernelben dolgozik, nagyon hatékony módon képes figyelni a fájlrendszer változásait, minimalizálva az erőforrás-igényt.
  • Automatizálási lehetőségek: A bővítményt gyakran használják automatizált szkriptekben, például a fájlok automatikus szinkronizálásához, biztonsági másolatok készítéséhez, vagy azonnali értesítések küldéséhez, ha egy adott fájl vagy könyvtár megváltozik.
  • Fejlett fejlesztői eszköz: Hasznos lehet fejlesztői környezetekben, például a forráskód változásainak figyelésére és automatikus újrafordítás vagy tesztek futtatására.

php8.2-lz4

php8.2-lz4 csomag egy olyan PHP bővítmény, amely a LZ4 tömörítési algoritmust teszi elérhetővé a PHP számára. Az LZ4 egy nagyon gyors tömörítési algoritmus, amely különösen jól teljesít nagy sebességű tömörítési és kicsomagolási feladatoknál, miközben elfogadható tömörítési arányt biztosít. A php8.2-lz4 bővítmény főbb jellemzői:

  • Gyors tömörítés és kicsomagolás: Az LZ4 híres a rendkívül gyors adattömörítési és kibontási sebességéről, ami ideális olyan alkalmazások számára, ahol a sebesség kritikus, mint például élő adatfolyamok vagy nagy mennyiségű adatok gyors feldolgozása.
  • Memória hatékonyság: Az LZ4 alacsony memóriaigényű, ami lehetővé teszi, hogy kis memóriával rendelkező környezetekben is jól működjön.
  • Adattárolás és hálózati kommunikáció optimalizálása: Hasznos lehet adattárolási és hálózati kommunikációs szituációkban, ahol fontos az adatok méretének csökkentése a hatékonyabb tárolás vagy gyorsabb átvitel érdekében.

php8.2-maxminddb

A php8.2-maxminddb csomag egy olyan PHP bővítmény, amely lehetővé teszi a MaxMind GeoIP2 adatbázisok és azok elődjének, a GeoLite2 adatbázisok olvasását. A MaxMind adatbázisokat általában földrajzi helymeghatározásra használják IP-címek alapján, ami lehetővé teszi a weboldalak és alkalmazások számára, hogy földrajzi információkat szerezzenek a látogatóikról. A bővítmény főbb tulajdonságai:

  • IP-cím alapú helymeghatározás: Segítségével meghatározhatjuk a felhasználók földrajzi helyzetét az IP-címük alapján, beleértve az országot, a régiót, a várost és akár a postai irányítószámot is.
  • Személyre szabott tartalom: Weboldalak használhatják a földrajzi helymeghatározást személyre szabott tartalom megjelenítésére, például helyi hírek vagy specifikus piaci ajánlatok kínálására.
  • Biztonság és csalások megelőzése: Segíthet az online csalások és a hozzáférési jogok megsértésének megelőzésében azzal, hogy ellenőrzhetjük a felhasználók földrajzi helyzetét, ezáltal azonosíthatjuk a gyanús tevékenységeket.
  • Logisztikai és analitikai célok: Egyes vállalkozások logisztikai és analitikai célokra használják, például a forgalom elemzésére, piaci kutatásra vagy a szállítási becslések finomítására.
Fontos megjegyezni, hogy a MaxMind adatbázisok nem nyújtanak minden országban pontos helymeghatározást. Érdemes itt csak arra gondolni, hogy sok nagy - országos lefedettségű - internetszolgáltató a dinamikus IP-címeit még nagyobb távolságokon át is véletlenszerűen osztja ki, így akár egy IP-cím egyik napról a másikra egy másik városból csatlakozó felhasználóhoz is kerülhet, amit természetesen nem lehetséges valós időben frissíteni ezekben az adatbázisokban. Így tehát erre a bővítményre inkább csak olyan segédeszközként érdemes tekinteni, ami nagyjából behatárolja nekünk jó esetben a megyét. Persze vannak olyan országok, ahol a nagyobb méretű internetes infrastruktúrák révén szigorúbban kezelik az IP-címek kiosztását, így ott akár pontos eredményeket is adhat.

php8.2-memcached

A php8.2-memcached csomag egy olyan PHP bővítmény, amely a PHP alkalmazásokat összeköti a Memcached memória-alapú gyorsítótárral. A Memcached egy szabad és nyílt forrású, magas teljesítményű, elosztott memória gyorsítótár-rendszer, amelyet gyakran használnak dinamikus webalkalmazások adatgyorsítására, az adatbázis-lekérdezések, API hívások vagy oldal generálások számának csökkentésére. A bővítmény főbb tulajdonságai:

  • Adatgyorsítás: Segít az alkalmazás teljesítményének növelésében azáltal, hogy gyakran használt adatokat gyorsítótárban tárol, csökkentve ezzel az adatbázis-szerverre nehezedő terhelést.
  • Szerver függetlenség: A Memcached elosztott jellege miatt a gyorsítótárat több szerveren is eloszthatja, növelve ezzel a rendelkezésre állást és a skálázhatóságot.
  • Munkamenet-kezelés: Támogatja a PHP munkamenetek Memcached-ben való tárolását, ami javíthatja a munkamenet-kezelés sebességét és megbízhatóságát nagyobb terhelés esetén is.

A Memcached cachelési technológia nem új dolog, azonban a korábbi telepítésekben ennek az "elődjét", a memcache-t szoktam használni, így ezért tértem most ki erre a bővítményre is.

A memcached bővítmény fejlettebb cachelési funkcionalitást kínál, valamint a fejlesztői közösség is aktívabban támogadja a memcached bővítményt.

php8.2-oauth

A php8.2-oauth csomag egy olyan PHP bővítmény, amely támogatja az OAuth protokollt. Az OAuth egy szabványosított, nyílt protokoll, amely lehetővé teszi a biztonságos hitelesítést és az engedélyezést harmadik fél webes alkalmazásai és szolgáltatásai számára. A bővítmény főbb jellemzői:

  • Biztonságos hitelesítés és engedélyezés: Lehetővé teszi a fejlesztők számára, hogy webalkalmazásaikban biztonságosan kezeljék a felhasználói hitelesítést és az adathozzáférési engedélyeket, anélkül, hogy közvetlenül hozzáférnének a felhasználók hitelesítési adataihoz.
  • Integráció harmadik fél szolgáltatásaival: Gyakran használják olyan népszerű webes szolgáltatásokkal való integrációra, mint a Google, Facebook, Twitter, és más OAuth-t támogató API-k.
  • Token alapú hitelesítés: Az OAuth tokeneket használ a felhasználói hitelesítéshez és az engedélyezési adatok tárolásához, amelyek biztonságosabbak, mint a hagyományos hitelesítési módszerek.
  • Rugalmas engedélyezési folyamatok: Segíti a fejlesztőket abban, hogy testre szabott engedélyezési folyamatokat hozzanak létre, attól függően, hogy milyen típusú adatokhoz és szolgáltatásokhoz szeretnék hozzáférést biztosítani a felhasználóiknak.

php8.2-redis

A php8.2-redis csomag egy olyan PHP bővítmény, amely lehetővé teszi a PHP alkalmazások számára, hogy kommunikáljanak a Redis adatbázis-szerverrel. A Redis egy nyílt forrású, memória-alapú kulcs-érték tároló, amelyet gyakran használnak gyorsítótárként, üzenetsorokként, és számos egyéb felhasználási esetre, ahol fontos a gyors adathozzáférés. A bővítmény főbb jellemzői:

  • Gyors adathozzáférés: A Redis extrém gyors műveleteket kínál, ami különösen hasznos nagy teljesítményű alkalmazásokban, ahol fontos a gyors adatlekérdezés és -módosítás.
  • Számos adattípus támogatása: Támogatja a Redis által kínált különböző adattípusokat, mint például stringeket, listákat, halmazokat, rendezett halmazokat és hash-táblákat.
  • Tranzakciók és pub/sub támogatás: Támogatja a Redis tranzakciós képességeit és a publikáló/feliratkozó (publish/subscribe) mintákat, amelyek lehetővé teszik a fejlesztők számára, hogy komplex adatfeldolgozási logikát építsenek be.
  • Szkálázhatóság és magas rendelkezésreállás: A Redis skálázhatósága és a magas rendelkezésreállási képességeivel összekapcsolva a php redis bővítmény segíthet olyan alkalmazások készítésében, amelyek könnyen kezelik a nagy adatmennyiségeket és a magas felhasználói terhelést.
  • Session handlerként való használat: A bővítmény lehetővé teszi a Redis használatát a PHP munkamenet-kezelőjeként, javítva ezzel a munkamenet-kezelés teljesítményét és skálázhatóságát.

 

Az itt külön kiemelt natív PHP és PECL bővítmények csomagolt változatai már a korábbi PHP verziók számára is elérhetőek voltak, azonban mivel korábban nem foglalkoztunk ezeknek a csomagoknak a telepítésével, ezért tértünk most ki rájuk. Ezek a bővítmények ma már széles körben elterjedtek, amiket a mai modern CMS rendszerek már alapértelmezetten használnak, így telepítésük javasolt, ha szeretnénk kihasználni az adott CMS keretrendszer nyújtotta összes lehetőséget.

 

 

Alapértelmezett PHP ellenőrzése és beállítása

Ha feltelepítettük a csomagokat a PHP 8.2 számára, akkor ellenőrizhetjük a megszokott módon a parancssorból:

php --version

Nálam maradt a 7.4-es az alapértelmezett:

A parancssori PHP (CLI) ellenőrzése

Ez nem mindig volt így, mert például régebben volt olyan, hogy újabb PHP verzió telepítése esetén az alapértelmezett CLI változat is átállításra került az újonnan telepített változatra. Ezt elsőre lehet, hogy nem gondolná fontosnak az ember, de ennek több szempontból is van jelentősége.

PHP-CLI

A parancssori PHP (CLI) fut le akkor, ha az alap php parancsot futtatjuk. Ennek értelemszerűen a parancssorból kézzel indított php scriptek esetén van jelentősége, vagy például a nem interaktív shell-ekben futtatott cron feladatok működésére is hatással van, mivel gyakran adunk meg a cron feladataink között "php <opciók / kapcsolók> " formában utasításokat, amikor olyan scripteket szeretnénk futtatni, amiket például a webgyökéren kívül helyeztünk el, hogy kintről a web felől ne lehessen babrálni őket, vagy csak egyszerűen nem szeretnénk a wget vagy curl parancsokat használni. Ez például akkor okozhat gondot, ha a szerveren vannak régebbi weboldalak is, amiknek a cron feladatait a rendszer eddig a régebbi PHP verzióval futtatta, de egy  ilyen újabb PHP verzió telepítés után ha átállítja a rendszer az alapértelmezett PHP-t, akkor már az újabb PHP-val kerülnek lefuttatásra ezek az időzített feladatok, amik lehet, hogy nem lesznek kompatibilisek a frissen telepített PHP verzióval, és hibásan, vagy egyáltalán nem fognak működni.

Parancssori használat / cron feladatok esetén lehetőségünk van a különböző PHP verziók futtatására is, például:

php5.6 --version
php7.1 --version
php7.2 --version
php8.2 --version

A különböző PHP verziók parancssori használata

A cron feladatokhoz vagy az egyéb kézzel futtatott PHP scriptekhez használhatjuk a direkt php parancsokat, így például minden weboldalhoz használhatjuk a neki megfelelő PHP verziót, a kompatibilitás megőrzése érdekében.

Ezen kívül természetesen át is állíthatjuk globálisan az alapértelmezett PHP verziókat is, amennyiben egységesen kívánjuk használni a parancssorban az egész szerveren ugyanazt a PHP változatot:

update-alternatives --config php

Alapértelmezett parancssori (CLI) PHP átállítása

Így tehát beállíthatjuk az egész szerverre azt a PHP változatot, amit az alap php parancs használat esetén kívánunk futtatni. Ez akkor hasznos, ha például sok weboldalunk van, amiknek sok-sok cron feladata van, vagy szintén sok saját scriptünk van, és nem szeretnénk ezekben átírogatni a php parancsokat, hanem mindig ugyanúgy használni a PHP-t.

PHP-FPM

A másik eset, aminek még van jelentősége a PHP-FPM. Manapság már PHP-FPM-el futtatjuk weboldalainkat, amiknek a verzióját be tudjuk állítani az ISPConfig felületén, ezekkel nincs is gond. Viszont a szerveren lévő többi PHP-FPM-el futó webalkalmazásunk, amik nincsenek külön FPM pool-ba beállítva, azok az alapértelmezett FPM pool-ban futnak, amiknél szintén okozhat gondot egy eltérő verzióban történő futtatás. Ha nem tudunk ilyenről a szerverünkön, mert nem állítottunk be ilyet, akkor ezzel nincs további teendőnk, de ha mondjuk átállítottunk PHP-FPM-re valamilyen webalkalmazásunkat, pl. phpMyAdmin, webmail, stb, akkor ezt itt is mérlegelni kell.

Ha tehát az alapértelmezett PHP-FPM-et szeretnénk átállítani, akkor futtassuk az alábbi parancsot szintén root-ként:

update-alternatives --config php-fpm.sock

Alapértelmezett PHP-FPM átállítása

Itt még egyszer fontos megjegyezni, hogy ez a beállítás nem befolyásolja az ISPConfig kezelőpanelben a weboldalaknál beállított PHP-FPM verziókat.

PHP-FPM esetén, ha átállítottuk az alapértelmezést, akkor indítsuk újra az Apache-ot is:

systemctl restart apache2.service

 

Opcionális beállítás

Ha a szerverünk telepítése során annak idején beállítottuk a phpMyAdmint PHP-FPM alapú működésre, tehát ha elvégeztük ezt a korábbi leírás részt:

És szeretnénk beállítani a phpMyAdmin webes adatbáziskezelőnket, hogy a most feltelepített 8.2-es PHP-vel működjön, akkor kövessük az alábbi leírást részletet, természetesen a  korábbi leírásban szereplő "7.4" részeket a mostani "8.2"-vel helyettesítsük be, valamint a fájl létrehozások helyett módosítsuk az akkor létrehozott fájlokat, illetve azok neveit szintén a mostani, 8.2-es részekre:

Ez a rész természetesen nem kötelező, csak ha szeretjük babrálni a dolgokat, és kihozni a legtöbbet a szerverünkből, akkor állítsuk át a phpMyAdmin számára is a legújabb PHP verziót.

FastCGI

Még ezt érdemes átnézni, mert a FastCGI PHP SAPI (Server API)-ban fut például az ISPConfig kezelőpanelünk. Régebben volt már ezzel gondom, erről például itt írtam korábban:

Persze azóta az ISPConfig már kompatibilis a PHP 8-al, így nem sok esély van arra, hogy ez most előfordulhasson, de korábban ez bizony okozott meglepetést. Akkor éppen az volt a probléma, hogy átállította a telepítés az alapértelmezett PHP változatot egy olyan verzióra, amit a kezelőpanel még akkor nem támogatott. De ma már ez a veszély nem áll fenn, így inkább célszerű az újra átállítani, hogy a kezelőpanelünk is hatékonyabban, gyorsabban működhessen. A FastCGI alapértelmezést pedig az alábbi paranccsal állíthatjuk át:

update-alternatives --config php-cgi

Állítsuk be itt is a megfelelő PHP változatot a FastCGI számára is, majd indítsuk újra az Apache-ot:

systemctl restart apache2.service

 

 

A PHP 8.2 beállítása az ISPConfig 3 kezelőpanelen

Ha idáig mindennel megvagyunk, akkor nem maradt más hátra, mint hogy beállítsuk az új PHP verziónkat az ISPConfig kezelőpanelünkbe.

Új PHP verzió létrehozása

Lépjünk be az ISPConfig 3 panelünkbe adminként, majd lépjünk a jobb felső System főmenüre. Ezután kattintsunk a bal oldalon az Additional PHP Versions menüpontra:

ISPConfig 3 - Egyedi PHP verziók listája

Itt ezen a szerveren már vannak egyedi PHP verziók. Kattintsunk a zöld Add new PHP version gombra. Ekkor előjön az új PHP űrlapja:

Name fül

ISPConfig - Új PHP verzió létrehozása - Name fül

Itt állítsuk be az alábbiakat:

  • Szerver: Válasszuk ki a szerverünk nevét a legördülőből
  • 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 8.2
  • Aktív: pipa

FastCGI Settings fül

ISPConfig - Új PHP verzió létrehozása - FastCGI Settings fül

  • Path to the PHP FastCGI binary: php-cgi8.2
  • Path to the php.ini directory: /etc/php/8.2/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-FPM Settings fül

ISPConfig - Új PHP verzió létrehozása - PHP-FPM Settings fül

  • Path to the PHP-FPM init script: php8.2-fpm
  • Path to the php.ini directory: /etc/php/8.2/fpm
  • Path to the PHP-FPM pool directory: /etc/php/8.2/fpm/pool.d
  • PHP-FPM socket directory: (ezt itt megkeressük lejjebb)

A socket directory általában a /run/php vagy a /var/run/php könyvtárban szokott lenni.

A /var/run könyvtár hagyományosan a rendszerindításkor létrejövő és futási időben használt információkat tartalmazó fájlokat tároló hely volt, mint például a daemonok socket fájljai és pid fájljai. A modern Linux disztribúciókban a /var/run könyvtár már csak egy szimbolikus link, ami a /run könyvtárra mutat.
A /run könyvtár bevezetése a Filesystem Hierarchy Standard (FHS) és más fejlesztések részeként történt, hogy egy egységes helyet biztosítson a rendszerindítás után keletkező adatok számára, ami a korábbiakban több helyen is elhelyezkedhetett (mint például a /var/run vagy a /dev/shm). A /run könyvtár a root fájlrendszeren van, így már a rendszerindítás korai szakaszában elérhető, ami segíti a korai indítási folyamatok és a szükséges szolgáltatások kezelését.
A /run könyvtár a "hivatalos" hely a futási időben keletkező adatok számára a legtöbb modern Linux rendszeren. Az operációs rendszerek frissítése során a rendszergazdáknak és fejlesztőknek ajánlott áttérni a /run használatára, ha közvetlenül hivatkoznak a futási időbeli fájlokra.
A lényeg röviden az, hogy mindkét könyvtár ugyanazt a célt szolgálja, a /var/run csak visszamenőleges kompatibilitást biztosít azoknak a rendszereknek és alkalmazásoknak, amelyek még a /run könyvtár bevezetése előtt lettek megírva.

Ellenőrizzük tehát, hogy a saját rendszerünkben is így van-e:

PHP-FPM socket fájl helyének ellenőrzése

cd /etc/php/8.2/fpm/pool.d/
cat www.conf | grep "listen"

"listen = /run/php/php8.2-fpm.sock"

Tehát a /run/php könyvtár a megfelelő.

Amint láthatjuk itt is van az összes PHP verzió socket fájlja. 

PHP-FPM socket fájlok ellenőrzése

Itt nálam a phpMyAdmin egy külön PHP-FPM pool-ban fut, még a 7.3-as PHP verzió idején tettem be, majd át is kell állítanom ezt is az újabbak valamelyikére.
Ennek a beállításáról itt írtam korábban:

Állítsuk tehát be a socket könyvtárat is:

  • PHP-FPM socket directory: /run/php

ISPConfig - Új PHP verzió létrehozása - PHP-FPM Settings fül - Kitöltve

Mentsük le.

Ha lementettük, akkor visszakerülünk az egyedi PHP verziók listájára:

ISPConfig - PHP verziók listája - Frissítve

 

 

PHP 8 bekapcsolása a tárhelyen

Ha felvittük a PHP 8.2-t a listára, akkor már csak be kell kapcsolni a kívánt tárhelyre. Ebben a példában az itthoni szerveremen beállítom a Linuxportál itthoni példányát a 8.2-re.

Ehhez lépjünk be fent a Sites (Webhelyek) főmenübe, majd válasszuk ki a kívánt tárhelyet, amelyiknél szeretnénk bekapcsolni az újonnan beállított PHP 8.2-t:

ISPConfig - Tárhely beállítása

Itt rögtön az első fülön maradva görgessünk le a legaljára, és állítsuk be a PHP 8.2-t:

ISPConfig - Tárhely beállítása - Domain fül

Majd mentsük le az űrlapot.
Mentés után várjuk meg, amíg az oldal tetején eltűnik a piros kör.

ISPConfig - Beállítások frissítése

Weboldalak ellenőrzése

A helyi Drupal oldal infó panelje:

Drupal - Állapotjelentés

Itt nem teljesen naprakész a helyi változat, fent jelez pár hibát, de ezek a Drupal 9 alaprendszer támogatottságának megszűnésére vonatkozó részek, de a lényeg lent látható a PHP 8.2.12, tehát az oldal az új PHP verzióval fut.

És egy WordPress oldal hasonló állapot jelző panelje:

WordPress - Állapotjelentés

 

A weboldalakon történő kis körülnézés után még érdemes ránézni a tárhelyek hiba naplójára, hogy vannak-e warning-ok, stb, hogy biztosak legyünk a helyes működésben.

Ha van több weboldalunk, amiről tudjuk, hogy kompatibilis a PHP 8.2-vel, akkor célszerű átállítani ezeket is.
Ilyenek lehetnek például a naprakészen tartott CMS rendszerek, ezek közül már mindegyik támogatja a friss PHP változatokat.

 

 

Konklúzió

A PHP 8.2 jelenleg a PHP legújabb ága, ezért ha módunkban áll feltelepíteni, akkor tegyük meg nyugodtan, mert ma már valamennyi ismert CMS rendszer támogatja, ezáltal gyorsabb működést biztosíthatunk weboldalaink számára - mivel a PHP 8.2 teljesítménye jobb, mint az elődeié.