Na kratko: Repozitorij Remi PHP dobavlja aktualne različice PHP za Fedoro in družino RHEL, bodisi kot modul stream, ki zamenja sistemski PHP, bodisi kot Software Collection, ki namesti več različic vzporedno. Popravki PHP2Shell 8.2.35, 8.3.36, 8.4.27 in 8.5.12 so bili tam napovedani 22. oktobra 2026. Preverite vsako nameščeno različico posebej in znova zaženite vsako pripadajočo storitev.
Zakaj mnogi strežniki RHEL prejemajo PHP od Remija
Podjetniške distribucije, kot so RHEL, AlmaLinux in Rocky Linux, stavijo na dolgo stabilnost. Dobavljajo malo vej PHP in jih ohranjajo leta. Mnoge aplikacije pa zahtevajo novejše različice, kot jih ponuja distribucija. Tu priskoči repozitorij Remija Colleta, dolgoletnega vzdrževalca paketov PHP v okolju Fedore in RHEL.
Remi različice PHP gradi v kratkem zaporedju po uradnih izdajah. K PHP2Shell je v blogu repozitorija 22. oktobra 2026 izšel prispevek o različicah 8.2.35, 8.3.36, 8.4.27 in 8.5.12. V njem sta navedeni obe kritični ranljivosti CVE-2026-109618 in CVE-2026-109619 ter nujno priporočena posodobitev. Varnostna obvestila Red Hata za te pakete ne veljajo; kaj Red Hat javlja za lastne pakete, je v prispevku RHEL, AlmaLinux in Rocky Linux: preverjanje popravka PHP.
Dve poti: modul stream ali Software Collection
Po blogu Remija so gradnje za Enterprise Linux od različice 8 naprej na voljo po dveh poteh. Katera se uporablja na vašem strežniku, določa, kako preverjate in znova zaganjate.
| Pot | Repozitorij | Učinek | Tipična storitev |
|---|---|---|---|
Modul stream, na primer php:remi-8.3 |
remi-modular | zamenja sistemski PHP, ena standardna različica | php-fpm |
Software Collection, na primer php83 |
remi-safe | dodatna različica vzporedno v lastni poti | lastna storitev za vsako različico, na primer php83-php-fpm |
| Testni paketi in release candidates | remi-modular-test, remi-test | predizdaje | ne za produkcijo |
Software Collections so tipično pod /opt/remi/phpXY, njihova konfiguracija pod /etc/opt/remi/phpXY. To je praktično za delovanje starih in novih aplikacij na enem strežniku. Je pa tudi najpogostejši razlog, da se pri posodobitvi kakšna različica spregleda.
Opomba o ukazni vrstici: Software Collections niso samodejno na voljo pod ukazom php. Glede na nastavitev jih cronjobi in skripti kličejo prek lastnega ukaza ali polne poti. Zato preverite tudi crontabe in skripte za uvajanje, če želite vedeti, katera zbirka se za kaj uporablja.
Preverjanje Remi PHP repozitorija po PHP2Shell
Naslednji ukazi so zgolj za branje in kažejo, kateri paketi Remi so nameščeni in kakšno stanje imajo.
# Aktivni viri paketov: Ali je remi-modular ali remi-safe vključen?
dnf repolist
# Aktivni modul stream za PHP
dnf module list --enabled php
# Osnovni paketi in vzporedno nameščene Software Collections
rpm -qa 'php-*' 'php[0-9][0-9]-php-*' --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' | sort
# Različica vsake nameščene zbirke
for b in /opt/remi/php*/root/usr/bin/php; do echo "$b"; "$b" -v | head -1; done
Pri podprtih vejah je stanje nedvoumno: če tam stoji 8.5.12, 8.4.27, 8.3.36 ali 8.2.35 ali novejša, je popravek vsebovan. Pri Remiju številka različice praviloma ustreza različici upstream, drugače kot pri paketih distribucije, ki pogosto obdržijo staro številko.
Za starejše zbirke, kot so php81, php80 ali php74, uradne ciljne različice ni. Remi PHP 8.1 vodi kot End-of-Life. Ali nameščen paket vsebuje popravek proti PHP2Shell, razjasnite v changelogu, na primer z rpm -q --changelog php81-php-fpm | grep -E "CVE-2026-10961[89]". Brez zadetka paket obravnavajte kot nerazjasnjen. Kako take zadetke čisto dokažete, opisuje prispevek Dokazovanje številk CVE v changelogu paketa.
Testnih repozitorijev, kot sta remi-test ali remi-modular-test, ne aktivirajte trajno na produkcijskih strežnikih. Dobavljajo release candidates, namenjene preizkusom.
Posodobitev in ponovni zagon vsake različice
Posodobitev sama je pri Remiju večinoma neopazna: dnf upgrade prinese nove pakete za stream in zbirke. Kritični del sledi potem. Vsaka zbirka ima lastno storitev FPM in vsako je treba znova zagnati.
# Naštej vse storitve PHP-FPM, tudi tiste zbirk
systemctl list-units --type=service --all | grep -E "php.*fpm"
# Preveri čase zagona vseh procesov PHP
ps -eo pid,lstart,cmd | grep -E "[p]hp-fpm|[h]ttpd"
Časi zagona pred posodobitvijo pomenijo: ta storitev še dela s staro kodo. Zakaj ponovno nalaganje ne zadošča, pojasnjuje stran Ponovni zagon PHP-FPM in vseh workerjev.
Remi in distribucija: kdo je odgovoren?
Kdor prek modula stream preklopi na Remi, za PHP zamenja dobavitelja. Varnostna obvestila Red Hata, AlmaLinuxa ali Rocky Linuxa se potem ne nanašajo več na nameščene pakete PHP. Obratno Remi ne javlja težav v drugih paketih sistema. Oba vira morate torej imeti na očeh.
Od kod nameščen paket prihaja, pokaže zbirka paketov, na primer z rpm -qi php-fpm v poljih za proizvajalca in pakirnika. Ker za pakete Remi ni errata v smislu Red Hata, je blog repozitorija primeren kot pot obveščanja; naročite se lahko prek vira RSS. Pri PHP2Shell se je tam opozorilo pojavilo dan po uradnih izdajah.
Za podjetja ta delitev ni ovira, mora pa biti dokumentirana. Zabeležite, kateri strežniki PHP prejemajo od Remija, kdo bere obvestila in kdo po posodobitvi znova zažene storitve. Sicer se vsak zanese na drugega.
Vzdrževati red: manj različic, manj tveganja
Software Collections vabijo, da se stare različice preprosto pustijo ležati. Po PHP2Shell je dober čas za pospravljanje:
- Za vsako zbirko razjasniti, katera spletna stran ali cronjob jo uporablja.
- Neuporabljene zbirke deaktivirati in po obdobju opazovanja odstraniti.
- Aplikacije na starih zbirkah dvigniti na podprto vejo.
- Preostale različice dokumentirati z namenom in odgovorno osebo.
Kako ohraniti pregled nad mnogimi vzporednimi različicami, opisuje prispevek Več različic PHP na enem strežniku.
Kako konkretno pomaga PHP SOS?
- Zajamemo vse streame in zbirke Remi na vaših strežnikih in jih razvrstimo po spletnih straneh in cronjobih.
- Stanje PHP2Shell za vsako različico preverimo prek različice paketa in changeloga.
- Nameščamo posodobitve, znova zaženemo vsako storitev in to dokažemo s časi zagona procesov v okviru storitve popravkov PHP.
- Zbirke, ki jih ne potrebujete več, po dogovoru nadzorovano odstranimo.
Pogosta vprašanja
Ali je Remi zagotovil različice PHP2Shell?
Da. V blogu repozitorija so bile 22. oktobra 2026 napovedane različice 8.2.35, 8.3.36, 8.4.27 in 8.5.12, z navedbo dveh kritičnih ranljivosti, CVE-2026-109618 in CVE-2026-109619, ter nujnim priporočilom za posodobitev.
Kakšna je razlika med modulom stream in SCL pri Remiju?
Prek modula stream sistemski PHP zamenjate z različico Remi, ena različica PHP je potem standardna. Software Collections nameščajo dodatne različice vzporedno v lastnih poteh, vsaka z lastno storitvijo.
Ali PHP 8.1 pri Remiju še dobiva posodobitve?
Remi PHP 8.1 vodi kot End-of-Life, projekt PHP te veje ne vzdržuje več. Ali določen paket 8.1 vsebuje popravek proti PHP2Shell, preverite v changelogu nameščenega paketa. Brez vnosa velja stanje za nerazjasnjeno.
Ali moram po posodobitvi Remi znova zagnati vsako različico PHP?
Da. Vsaka vzporedno nameščena različica ima lastno storitev FPM. Če znova zaženete samo storitev glavne različice, druge tečejo naprej s staro kodo.