A PHP az egyik leggyakrabban használt szerveroldali programozási nyelv. Számos népszerű CMS pl. a WordPress, a Joomla és keretrendszer pl. a Laravel, a CakePHP, a Symfony PHP-ben épül fel.
Ebben a leírásban megvitatjuk a PHP 8.0, 8.1 és külső repo-ból (REMI) 8.2 telepítését a Rocky Linux 9 rendszeren. Megmutatom, hogy ha ezek a verziók alacsonyak lennének akkor hogyan lehet a legújabb verziót elérni. Mielőtt kiválasztod a telepítendő PHP verziót, győződj meg arról, hogy alkalmazás támogatja-e azt.
Php telepítése Rocky Linux 9 saját csomagtárolóból (AppStream)
A Rocky Linux 9 rendszerhez tartozó alapértelmezett php a 8.0 verzió, viszont arra csak biztonsági frissítések jönnek. (php támogatás). Jelenleg a PHP a 8.1 és 8.2 verziókhoz van támogatás így a tárolóból ezt a két verziót érdemes feltenni. Korábbi verziót csak akkor, ha az alkalmazás kimondottan ezt kéri.
Egy php telepítés kimenete alapértelmezetten:
Installing: php x86_64 8.0.20-3.el9 appstream 11 k Installing dependencies: libxslt x86_64 1.1.34-9.el9 appstream 240 k nginx-filesystem noarch 1:1.20.1-13.el9 appstream 11 k oniguruma x86_64 6.9.6-1.el9.5 appstream 217 k php-common x86_64 8.0.20-3.el9 appstream 665 k Installing weak dependencies: php-cli x86_64 8.0.20-3.el9 appstream 3.1 M php-fpm x86_64 8.0.20-3.el9 appstream 1.6 M php-mbstring x86_64 8.0.20-3.el9 appstream 471 k php-opcache x86_64 8.0.20-3.el9 appstream 512 k php-pdo x86_64 8.0.20-3.el9 appstream 84 k php-xml x86_64 8.0.20-3.el9 appstream 133 k
A dnf module parancsával meg tudjuk nézni, hogy még milyen verziójú PHP érhető el a hivatalos caomagtárolóból::
dnf module list php
Last metadata expiration check: 0:03:07 ago on Sun 08 Jan 2023 07:40:44 AM UTC. Rocky Linux 9 - AppStream Name Stream Profiles Summary php 8.1 common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Ha szeretnénk engedélyezni a PHP 8.1-es verzióját a következőképpen tehetjük meg:
dnf module reset php
dnf module enable php:8.1
Meg kell erősíteni a váltást egy y-nal, majd a dnf modul list php
kimenete ez lesz:
Last metadata expiration check: 0:03:07 ago on Sun 08 Jan 2023 07:40:44 AM UTC. Rocky Linux 9 - AppStream Name Stream Profiles Summary php 8.1[e] common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Ha kiválasztottuk a megfelelő php verziót, akkor lehet telepíteni a php-t:
dnf install php -y
Ha települt a php a következő ellenőrzést tegyük meg:
php -v
PHP 8.1.8 (cli) (built: Jul 5 2022 21:55:55) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.8, Copyright (c) Zend Technologies with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies
A Rocky Linux 9 hivatalos csomagtárolójából a legfrissebb 8.1 verziójú php-t sikeresen telepítettük. Joggal vetődik fel a kérdés, hogy ha 8.2 van szükségünk, akkor azt milyen repó-ból érhetjük el? Ehhez telepítenünk kell külső csomagtárolók eléréseit. A php-nek egyik legelismertebb csomagtárolója a Remi’s Repo. Ezt fogjuk használni, de ehhez szükségünk lesz az EPEL repora is.
PHP telepítése külső csomagtárolóból (Remi’s Repo)
Az első feladat az (EPEL) tároló telepítése, ami az (Extra Packages for Enterprise Linux) rövidítése. A Rocky Linux és a hasonló, RHEL alapú disztribúciók újabb felhasználói számára az EPEL tartalmazza az Enterprise Linuxhoz leggyakrabban használt szoftvercsomagokat.
Ehhez engedélyezni kell a CRB-t:
dnf config-manager --set-enabled crb
Ezután telepítse az EPEL-t a következő (dnf) paranccsal.
dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
Most, hogy hozzáadta az EPEL tárolót, engedélyezze a (Remi tárolót) a következő paranccsal:
dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
A korábbi 8.1-es php-s csomagokat távolítsuk el:
dnf remove php php-fpm -y
Majd reseteljük a jelenleg használt php verziót:
dnf module reset php -y
Ha most kiadjuk a következő parancsot, akkor a Remi’s repo-k kérni fogják a gpg kulcsaikat, amit csak meg kell erősíteni a y-al:
dnf module list php
Remi's Modular repository for Enterprise Linux 9 - x86_64 3.1 kB/s | 833 B 00:00 Remi's Modular repository for Enterprise Linux 9 - x86_64 3.0 MB/s | 3.1 kB 00:00 Importing GPG key 0x478F8947: Userid : "Remi's RPM repository (https://rpms.remirepo.net/) <remi@remirepo.net>" Fingerprint: B1AB F71E 14C9 D748 97E1 98A8 B195 27F1 478F 8947 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9 Is this ok [y/N]: y Remi's Modular repository for Enterprise Linux 9 - x86_64 2.1 MB/s | 834 kB 00:00 Safe Remi's RPM repository for Enterprise Linux 9 - x86_64 3.6 kB/s | 833 B 00:00 Safe Remi's RPM repository for Enterprise Linux 9 - x86_64 3.0 MB/s | 3.1 kB 00:00 Importing GPG key 0x478F8947: Userid : "Remi's RPM repository (https://rpms.remirepo.net/) <remi@remirepo.net>" Fingerprint: B1AB F71E 14C9 D748 97E1 98A8 B195 27F1 478F 8947 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9 Is this ok [y/N]: y Safe Remi's RPM repository for Enterprise Linux 9 - x86_64 2.2 MB/s | 887 kB 00:00 Last metadata expiration check: 0:00:01 ago on Sun 08 Jan 2023 08:42:57 AM UTC. Rocky Linux 9 - AppStream Name Stream Profiles Summary php 8.1 common [d], devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 9 - x86_64 Name Stream Profiles Summary php remi-7.4 common [d], devel, minimal PHP scripting language php remi-8.0 common [d], devel, minimal PHP scripting language php remi-8.1 common [d], devel, minimal PHP scripting language php remi-8.2 common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Itt láthatjuk, hogy 4 verzió is elérhető a tárolóból, amiből nekünk most a 8.2 kell. Engedélyezzük:
dnf module enable php:remi-8.2 -y
Most, hogy hozzáadta a Remi PHP-tárolót és engedélyezte a PHP 8.2 alapértelmezett verzióját a Rocky Linux rendszerén, telepítheti a PHP 8.2-et a következő paranccsal:
dnf install php -y
Ha készen van a telepítés ellenőrízzük le a verziót:
php -v
PHP 8.2.1 (cli) (built: Jan 3 2023 18:40:55) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.2.1, Copyright (c) Zend Technologies with Zend OPcache v8.2.1, Copyright (c), by Zend Technologies
Indítsuk újra az Apache webszervert, hogy ő is értesüljön a php telepítéséről:
systemctl restart httpd
Megfelelően futó php kipróbálása
Hozzuk létre a info.php
nevű fájlt a /var/www/html/
könyvtárban az alábbi tartalommal:
<?php phpinfo(); ?>
Írd be a böngésző címsorába http://<szerver-ip-cime>/info.php
Ilyesminek kell megjelennie:

Eltérések lehetnek Rocky Linux 9 és a php 8.2 verziókban. De a lényeg, hogy egy ilyen php információs képernyő jelenjen meg a böngésződben.
Összegzés
A php telepíthető mind a Rocky Linux 9 linux rendszer saját csomagtárolójából, mind a külső Remi csomagtárolóból. A biztonságos és konzisztens működés érdekében azonos repoból frissítsünk, mint amiből telepítettünk. Ez sok későbbi misztikus hibától megkímél minket. Fontos még, hogy az alkalmazásunknál tisztázzuk melyik php verzió támogatott és azt tegyük fel.