Īsi sakot: Veco PHP versiju deaktivizēšanu visdrošāk veikt trīs fāzēs: noskaidrot izmantošanu, versiju bloķēt un novērot, tikai tad atinstalēt. Plesk handler var vispirms deaktivizēt, lai to vairs nevar izvēlēties, un vēlāk noņemt sadaļā Updates un komponenti. Katra noņemta versija ir viena mazāk, kas nākamās ievainojamības, piemēram, PHP2Shell, gadījumā jāielāpo un jāpārstartē.
Kāpēc sakopt tieši tagad?
Nedēļa pēc PHP2Shell daudziem administratoriem parādīja, cik daudz PHP versiju ir instalētas viņu serveros. Katra no tām bija jāpārbauda, katrai vajadzēja atjauninājumu vai pagaidu pasākumus, katram pakalpojumam pārstartēšanu. PHP 8.1 un vecākām versijām ir tikai minimāli pirmkoda backport labojumi, PHP 8.2 atbalsts beidzas 2026. gada 31. decembrī.
Ar šo pieredzi svaigā atmiņā ir īstais brīdis sakopt. Kā vispār atrast visas instalācijas, apraksta raksts Vairākas PHP versijas vienā serverī. Šeit runa ir par nākamo soli: kontrolētu izslēgšanu.
1. fāze: noskaidrot izmantošanu
Pirms kaut ko izslēdzat, jāzina, kas versiju izmanto. Vietnes ir acīmredzamā daļa. Mazāk redzami ir apakšdomēni, testa instalācijas, cronjobs, skripti un paneļa komponenti.
Plesk komanda plesk bin php_handler --list uzskaita visus reģistrētos handler. Ar --get-usage Plesk saskaņā ar dokumentāciju parāda, kuri domēni izmanto konkrētu handler. Abas komandas neko nemaina.
# Plesk: visi handler un domēni, kas handler izmanto
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>
# Vispārīgi: cronjobs, kas izsauc noteiktu PHP versiju
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null
Papildus pārbaudiet skarto vietņu piekļuves žurnālus: testa instalācija, kas vairākus mēnešus nav saņēmusi nevienu pieprasījumu, ir kandidāts noņemšanai, nevis migrēšanai. Katrai vecajai versijai pierakstiet, kas to izmanto un kāpēc.
Jautājiet arī cilvēkiem, kas ar vietnēm strādā. Redakcijas, aģentūras un speciālistu nodaļas bieži zina procesus, kas nav nevienā sarakstā: ikgadējo eksportu grāmatvedībai, veidlapu izstādei, saskarni ar preču uzskaites sistēmu. Kas tur atkarīgs no vecas versijas, citādi atklājas tikai tad, kad tā trūkst.
2. fāze: bloķēt un novērot
Starpsolis neļauj versiju piešķirt no jauna, to uzreiz neizdzēšot. Plesk šim nolūkam ir iespēja atsevišķus handler deaktivizēt. Saskaņā ar Plesk dokumentāciju deaktivizētu handler vietnes PHP iestatījumos vairs nevar izvēlēties; versija paliek instalēta. Komandrindā to dara ar plesk bin php_handler --disable -id <handler-id>.
Domēnus, kas vēl izmanto veco versiju, iepriekš, saskaņojot ar atbildīgajiem, pārslēdziet uz atbalstītu versiju. Kā tas izskatās no vietnes īpašnieka viedokļa, apraksta raksts PHP versijas maiņa hostinga klientu sadaļā. Piemērota handler izvēli izskaidro raksts Plesk: PHP handler izpratne.
Novērošanas laikā pievērsiet uzmanību kļūdu ziņojumiem žurnālos, cronjob rezultātu trūkumam un lietotāju atsauksmēm. Citos paneļos funkcijas sauc citādi; tur pārbaudiet ražotāja dokumentāciju.
Novērošanas laika beigas nosakiet kā termiņu un nosauciet, kas pēc tā atinstalēšanu apstiprina. Citādi no starpsoļa kļūst pastāvīgs stāvoklis, un vecā versija tomēr paliek serverī.
3. fāze: atinstalēt
Tikai kad novērošanas laiks pagājis bez ievērojamām problēmām, versiju noņemiet pilnībā. Plesk to saskaņā ar dokumentāciju dara sadaļā Tools & Settings, Updates, Add/Remove Components, apgabalā Web hosting pie PHP interpretatora versijām. Instalētās versijas tur ir atzīmētas, un tās var izvēlēties noņemšanai.
Serveros bez paneļa šo uzdevumu pārņem pakotņu pārvaldība. Iepriekš saglabājiet versijas konfigurāciju, piemēram, /etc/php/7.4/ Debian un Ubuntu sistēmās, lai ārkārtas gadījumā varētu izsekot, kādi iestatījumi bija spēkā.
# Saglabāt konfigurāciju, pēc tam noņemt atzara pakotnes (piemērs Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'
Pēc noņemšanas vērts veikt pārbaudi. Plesk dokumentācija iesaka plesk bin php_handler --reread, lai pēc izmaiņām PHP binārajos failos handler informāciju nolasītu no jauna. Pārbaudiet arī, vai servisa plāni vēl nenorāda uz noņemto versiju.
Tipiski šķēršļi
| Šķērslis | Kā to atpazīt | Kas palīdz |
|---|---|---|
| Paneļa komponents ir atkarīgs no versijas | Panelis noņemot ziņo par atkarību | Komponentu vispirms pārslēgt vai versiju paturēt |
| Servisa plāns norāda uz veco versiju | Jaunas vietnes saņem veco versiju vai kļūdas ziņojumu | Plānu pielāgot, tad versiju noņemt |
| Cronjob izsauc fiksētu ceļu | Skripts pēc noņemšanas neizdodas | Ceļu nomainīt uz atbalstītu versiju |
| Lietojumprogramma nedarbojas jaunajā versijā | Kļūda pēc pārslēgšanas kļūdu žurnālā | Lietojumprogrammu atjaunināt vai migrēt |
Ja lietojumprogrammu nevar pacelt uz atbalstītu versiju, vecās versijas izslēgšana vairs nav konfigurācijas jautājums, bet migrācijas projekts. Novecojušu atzaru riskus apraksta ceļvedis PHP End-of-Life: novecojušu versiju riski.
Nākamais kandidāts jau ir zināms
Sakopšana nav vienreizēja darbība. Jau 2026. gada 31. decembrī PHP 8.2 izkrīt no PHP projekta atbalsta. Kas tagad noņem versijas līdz 8.1, tajā pašā reizē jānosaka, kā būs ar 8.2. Citādi tā pati spēle atkal sākas pēc dažām nedēļām.
Serverim labi darbojas vienkāršs noteikums: tiek piedāvāti tikai tie atzari, ko PHP projekts atbalsta. Katram atzaram iestatīšanas brīdī tiek piešķirts datums, kad to pārbauda atkārtoti, orientējoties uz atbalsta beigām php.net. Šī cikla fonu izskaidro lapa PHP versijas un izlaidumu cikls.
Kam kā hostinga sniedzējam vai aģentūrai serverī ir klienti, tos vajadzētu informēt savlaicīgi. Paziņojums ar datumu, lūgums pārslēgties un piedāvājums palīdzēt novērš vietņu izkrišanu noteiktajā dienā. Klienti, kuru lietojumprogramma līdzi netiek, tā laikus atpazīst, ka tuvojas atjauninājums vai migrācija, un var to ieplānot.
Kā PHP SOS palīdz konkrēti?
- Mēs noskaidrojam, kuras vietnes, cronjobs un paneļa komponenti izmanto kuru PHP versiju.
- Mēs, saskaņojot, pārslēdzam domēnus uz atbalstītām versijām un bloķējam vecos handler.
- Pēc novērošanas laika mēs vecās versijas kontrolēti noņemam un pārbaudām rezultātu.
- Kur lietojumprogrammas līdzi netiek, mēs plānojam PHP 8.1 un vecāku versiju migrāciju.
Biežāk uzdotie jautājumi
Kāpēc man vajadzētu noņemt neizmantotās PHP versijas?
Katra instalētā versija pie katras ievainojamības jāpārbauda, jāatjaunina un jāpārstartē. Veci atzari, piemēram, PHP 8.1 un vecāki, no PHP projekta atjauninājumus vairs nesaņem. Neizmantotas versijas nes tikai risku un darbu.
Kāda ir atšķirība starp deaktivizēšanu un atinstalēšanu?
Deaktivizējot versija paliek instalēta, bet to vairs nevar izvēlēties no jauna. Atinstalējot tā tiek noņemta no servera. Deaktivizēšana ir drošs starpposms, lai redzētu, vai kaut kas netrūkst.
Vai PHP versijas noņemšana var traucēt paneļa funkcijas?
Jā. Daži paneļa komponenti, piemēram, webmail vai pārvaldības rīki, ir saistīti ar noteiktu PHP versiju. Šādas atkarības noskaidrojiet pirms noņemšanas; panelis parasti uz tām norāda.
Cik ilgi jāilgst novērošanas laikam?
Tik ilgi, lai visi regulārie procesi būtu notikuši vismaz vienreiz, tātad arī ikmēneša cronjobs un eksporti. Ilgumu nosakiet kopā ar speciālistu nodaļām.