AlmaLinuxon a PHP többféle forrásból telepíthető, és a választás azon múlik, melyik verzióra van szüksége. Ez a cikk sorra veszi a lehetőségeket AlmaLinux 10 és 9 rendszeren, a bővítményeket és a PHP-FPM beállítását. A webszerverrel együtt, virtuális hosttal az Apache és PHP-FPM telepítése, illetve az Nginx mainline telepítése cikk mutatja be.
A lépéseket 2026 októberében AlmaLinux 10.2 és 9.8 rendszeren próbáltuk ki; a verziószámok a teszt idején érvényesek. A parancsokat root felhasználóként vagy sudo-val futtassa.
Melyik PHP jön a rendszerrel?
| Rendszer | Alapértelmezett | Más verziók a rendszer tárolóiban |
|---|---|---|
| AlmaLinux 10 | PHP 8.3 (8.3.36) | PHP 8.4 (8.4.27) külön, php8.4 nevű csomagokként, a 10.2-es kiadástól |
| AlmaLinux 9 | PHP 8.0 (8.0.30) | PHP 8.1, 8.2 és 8.3 modulként |
Ha PHP 8.5-re vagy az itt nem szereplő verzióra van szüksége, a Remi tárolót kell használnia (lásd a 4. lehetőséget). Hogy WordPresshez melyik verzió ajánlott, erről blogcikkünk szól.
Egy szerveren a php csomagnevet egyszerre csak egy verzió viselheti. Ha párhuzamosan több verziót szeretne, azt a Remi phpXY csomagjaival teheti meg.
1. lehetőség: az alapértelmezett PHP
AlmaLinux 10-en ez a PHP 8.3, amelyet a rendszer frissítései a teljes élettartama alatt javítanak:
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip
php -v
A php -v első sora: PHP 8.3.36 (cli). AlmaLinux 9-en ugyanez a parancs PHP 8.0-t telepítene, amelyet a PHP fejlesztői már nem támogatnak, ott válasszon a modulok közül (3. lehetőség).
2. lehetőség: PHP 8.4 AlmaLinux 10-en, a rendszer tárolójából
A Red Hat Enterprise Linux 10.2 óta (lásd a Red Hat kiadási jegyzetét), és így az AlmaLinux 10.2 óta az AppStream tárolóban a PHP 8.4 is megvan, php8.4- előtagú csomagokként (php8.4-cli, php8.4-fpm, php8.4-mysqlnd, php8.4-gd, php8.4-intl, php8.4-mbstring, php8.4-xml, php8.4-opcache, php8.4-pecl-zip, php8.4-pecl-redis6, php8.4-pecl-apcu és mások). Korábbi 10-es kiadáson előbb frissítse a rendszert (sudo dnf upgrade); a kiadás számát a cat /etc/almalinux-release mutatja. A csomagok listája:
dnf list --available 'php8.4*'
Friss rendszeren egyszerűen telepítse őket:
sudo dnf install php8.4-cli php8.4-fpm php8.4-mysqlnd php8.4-gd php8.4-xml php8.4-mbstring php8.4-intl php8.4-opcache
Ha már fut a PHP 8.3, a telepítés ütközéssel leáll: „package php8.4-fpm … conflicts with php-fpm < 8.4”. A két verzió nem lehet egyszerre telepítve, a 8.4 a 8.3 helyére lép. A cseréhez engedélyezze a dnf-nek a régi csomagok eltávolítását:
sudo dnf install --allowerasing php8.4-cli php8.4-fpm php8.4-mysqlnd
A teszten a dnf a php-common és a php-fpm 8.3-as csomagot távolította el (Removing dependent packages). Minden 8.3-as bővítménycsomagnak adja meg a php8.4- párját a parancsban, különben azok a cserével eltűnnek.
A csere után:
- a parancs továbbra is
php, a szolgáltatás továbbra isphp-fpm, és a beállítások helye sem változik; - a
php-fpmszolgáltatás letiltott állapotba kerül, mert a csomagja újratelepült. Kapcsolja be újra, különben a következő újraindítás után nem indul el:
sudo systemctl enable --now php-fpm
A php8.4 csomagcsaládban a teszt idején nem volt minden bővítmény meg, ami a 8.3-hoz az EPEL-ből elérhető (például az imagick). Ha az alkalmazásának ilyen kell, használja a Remi tárolót.
3. lehetőség: újabb PHP modulból AlmaLinux 9-en
AlmaLinux 9-en a választható verziókat a dnf module list php sorolja fel. A PHP 8.3 kiválasztása és telepítése:
sudo dnf module reset php
sudo dnf module enable php:8.3
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip
4. lehetőség: PHP a Remi tárolóból
A Remi tárolóval AlmaLinux 9-en és 10-en egyaránt a PHP 7.4-től a 8.5-ig bármelyik verzió telepíthető (a teszt idején a 8.6 kiadás előtti, RC változatban volt elérhető). A tároló beállítását a Remi tároló telepítése AlmaLinuxon cikk írja le; utána például a PHP 8.4:
sudo dnf module reset php
sudo dnf module enable php:remi-8.4
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip php-pecl-redis
php -v
PHP 8.4.27 (cli) (built: Oct 19 2026 14:38:59) (NTS gcc aarch64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine #NoAI
A Built by Remi's RPM repository sorból látszik, hogy a PHP a Remi tárolóból jön. A php-pecl-redis csomagnévre a dnf a php-pecl-redis6 bővítményt telepítette. Később másik verzióra a sudo dnf module switch-to php:remi-8.5 paranccsal válthat; ez a telepített bővítményeket is lecseréli.
Bővítmények
A bővítmények külön csomagok, php- (illetve php8.4-) előtaggal. A WordPresshez és a legtöbb CMS-hez a fenti listák elegendők. Ellenőrzés:
php -m
dnf list --installed 'php*'
Gyakran kért további bővítmények: php-bcmath (pontos számolás, például webáruházakban), php-soap (SOAP API-k), php-pgsql (PostgreSQL), php-pecl-apcu (memóriabeli gyorsítótár). Elérhető bővítmény keresése: dnf search php-pecl vagy dnf list --available 'php-pecl-*'. Telepítés után indítsa újra a PHP-FPM-et (sudo systemctl restart php-fpm), különben a weboldal még a régi bővítménylistával fut.
A PHP-FPM
A weboldalak PHP-ját a PHP-FPM szolgáltatás futtatja, a webszerver csak továbbítja neki a kéréseket. Indítás és automatikus indítás:
sudo systemctl enable --now php-fpm
A fontosabb alapbeállítások a /etc/php-fpm.d/www.conf fájlban:
user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.acl_users = apache,nginx
A PHP alapból az apache felhasználóval fut, és egy Unix socketen fogadja a kéréseket, amelyhez az apache és az nginx felhasználó is hozzáférhet. Így az Apache és az Nginx is külön jogosultság-beállítás nélkül használhatja.
- Apache: a
php-fpmcsomag a/etc/httpd/conf.d/php.conffájllal automatikusan beköti, elég ahttpd-t újraindítani. - Nginx: a
serverblokkban kell a PHP-kéréseket a sockethez irányítani, lásd az Nginx-cikkben.
A gyakran állított értékeket (upload_max_filesize, memory_limit, pm.max_children) az Apache és PHP-FPM cikk 7. pontja sorolja fel.
Ellenőrzés a weboldalon
Hozzon létre egy próbafájlt a webszerver gyökérkönyvtárában, nyissa meg, majd törölje:
echo '<?php echo PHP_VERSION, " ", PHP_SAPI, "\n";' | sudo tee /var/www/html/v.php
curl -s http://localhost/v.php
sudo rm /var/www/html/v.php
A teszten Apache-csal a válasz 8.5.12 fpm-fcgi volt: a verzió után az fpm-fcgi mutatja, hogy a kérést a PHP-FPM szolgálta ki. Ha a böngészőben a PHP-kód jelenik meg vagy letöltődik a fájl, a webszerver nincs a PHP-FPM-hez kötve.
Verzióváltás és visszalépés
Verzióváltás előtt mentse a weboldalt és az adatbázist, és ha lehet, egy próbapéldányon nézze meg, működik-e az alkalmazás az új verzión. VPS-en a legbiztosabb egy pillanatkép a váltás előtt. Visszalépés:
- Remi modul:
sudo dnf module switch-to php:remi-8.3(vagy amelyik korábban futott); - vissza a rendszer PHP-jára:
sudo dnf module reset php, majdsudo dnf distro-sync. A teszten ez a Remi PHP 8.5-öt az AlmaLinux 10 saját 8.3.36-os csomagjaira cserélte, a bővítményekkel együtt.
Ha nem biztos benne, melyik modul van kiválasztva, a dnf module list php --enabled megmutatja (AlmaLinux 10-en a rendszer PHP-jához nincs modul, ott csak a Remi-féle jelenhet meg).
A PHP eltávolítása
sudo systemctl disable --now php-fpm
sudo dnf remove 'php*'
sudo dnf module reset php
A 'php*' minta minden PHP-csomagot és bővítményt eltávolít, ezért több alkalmazást futtató szerveren nézze át a dnf listáját, mielőtt jóváhagyja. A weboldalak fájljait, az adatbázist és a webszervert ez nem érinti.
Ha nem szeretné a PHP-verziókat parancssorból kezelni, a cPanel tárhelyen a verzió és a bővítmények a vezérlőpultban választhatók, a KVM VPS-en pedig a fenti lépésekkel bármelyik verziót beállíthatja.