Ajankohtainen tilanne: PHP2Shell. Kaksi kriittistä PHP-haavoittuvuutta (CVSS 9.2) sallii haittakoodin suorittamisen ilman kirjautumista. Korjaukset 21.10.2026 alkaen.Mitä nyt on tehtävä →

Vanhojen PHP-versioiden poistaminen käytöstä hosting-paneelissa

PHP2Shell on hyvä syy luopua vanhoista PHP-versioista. Näin etenette kolmessa vaiheessa, jotta mikään verkkosivusto tai cron-työ ei lakkaa toimimasta huomaamatta.

Tilanne Lukuaika 4 minHosting ja jakelut

Lyhyesti: Vanhat PHP-versiot poistatte turvallisimmin käytöstä kolmessa vaiheessa: selvittäkää käyttö, estäkää versio ja seuratkaa, poistakaa asennus vasta sen jälkeen. Pleskissä käsittelijä (handler) voidaan ensin poistaa käytöstä niin, ettei sitä voi enää valita, ja myöhemmin poistaa kohdasta Updates ja komponentit. Jokainen poistettu versio on yksi vähemmän, jota teidän ei tarvitse korjata ja käynnistää uudelleen seuraavan aukon, kuten PHP2Shellin, yhteydessä.

Miksi siivota juuri nyt?

PHP2Shellin jälkeinen viikko näytti monelle ylläpitäjälle, kuinka monta PHP-versiota heidän palvelimillaan on asennettuna. Jokainen niistä piti tarkistaa, jokainen tarvitsi päivityksen tai väliaikaisia toimia, jokainen palvelu uudelleenkäynnistyksen. PHP 8.1:lle ja vanhemmille on olemassa vain vähäisiä lähdekoodin backporteja, ja PHP 8.2:n tuki päättyy 31.12.2026.

Kun tämä kokemus on tuoreessa muistissa, on oikea hetki siivota. Miten löydätte kaikki asennukset, kuvaa artikkeli Useita PHP-versioita yhdellä palvelimella. Tässä käsitellään seuraavaa vaihetta: hallittua käytöstä poistamista.

Vaihe 1: Selvittäkää käyttö

Ennen kuin mitään poistetaan käytöstä, on tiedettävä, kuka versiota käyttää. Verkkosivustot ovat ilmeinen osa. Vähemmän näkyviä ovat aliverkkotunnukset, testiasennukset, cron-työt, skriptit ja paneelin osat.

Pleskissä komento plesk bin php_handler --list luettelee kaikki rekisteröidyt käsittelijät. Valinnalla --get-usage Plesk näyttää dokumentaation mukaan, mitkä domainit käyttävät tiettyä käsittelijää. Kumpikaan komento ei muuta mitään.

# Plesk: kaikki käsittelijät ja domainit, jotka käyttävät käsittelijää
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>

# Yleisesti: cron-työt, jotka kutsuvat tiettyä PHP-versiota
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null

Tarkistakaa lisäksi kyseisten verkkosivustojen käyttölokit: testiasennus, joka ei ole saanut yhtään pyyntöä kuukausiin, on poistettavaksi, ei migroitavaksi sopiva ehdokas. Kirjatkaa jokaisesta vanhasta versiosta ylös, kuka sitä käyttää ja miksi.

Kysykää lisäksi niiltä ihmisiltä, jotka työskentelevät verkkosivustojen kanssa. Toimitukset, toimistot ja toimintayksiköt tuntevat usein kulkuja, joita ei ole missään luettelossa: vuosittainen vienti kirjanpitoon, messujen lomake, rajapinta tavarahallintajärjestelmään. Mikä niistä riippuu vanhasta versiosta, huomataan muuten vasta, kun se puuttuu.

Vaihe 2: Estäkää ja seuratkaa

Välivaihe estää version määrittämisen uudelleen poistamatta sitä heti. Pleskissä yksittäisiä käsittelijöitä voi poistaa käytöstä. Plesk-dokumentaation mukaan käytöstä poistettua käsittelijää ei voi enää valita verkkosivuston PHP-asetuksissa; versio pysyy asennettuna. Komentorivillä se tehdään komennolla plesk bin php_handler --disable -id <handler-id>.

Domainit, jotka vielä käyttävät vanhaa versiota, siirrätte ensin vastuuhenkilöiden kanssa sopien tuettuun versioon. Miten tämä näyttää verkkosivuston ylläpitäjän näkökulmasta, kuvaa artikkeli PHP-version vaihtaminen hosting-asiakaspaneelissa. Oikean käsittelijän valinnan selittää artikkeli Plesk: PHP-käsittelijöiden ymmärtäminen.

Seurantajakson aikana kiinnittäkää huomiota lokien virheilmoituksiin, puuttuviin cron-töiden tuloksiin ja käyttäjien palautteeseen. Muissa paneeleissa toiminnot on nimetty eri tavalla; tarkistakaa niissä valmistajan dokumentaatio.

Vinkki

Asettakaa seurantajakson loppu päivämääräksi ja nimetkää, kuka hyväksyy poiston sen jälkeen. Muuten välivaiheesta tulee pysyvä tila, ja vanha versio jää palvelimelle kuitenkin.

Vaihe 3: Poistakaa asennus

Vasta kun seurantajakso on kulunut ilman havaintoja, poistatte version kokonaan. Pleskissä se tehdään dokumentaation mukaan kohdassa Tools & Settings, Updates, Add/Remove Components, Web hosting -osion PHP-tulkkiversioissa. Asennetut versiot on siellä merkitty, ja ne voi valita poistettaviksi.

Palvelimilla ilman paneelia tämän hoitaa paketinhallinta. Varmuuskopioikaa ensin version asetukset, esimerkiksi /etc/php/7.4/ Debianilla ja Ubuntulla, jotta hätätilanteessa voitte jäljittää, mitkä asetukset olivat voimassa.

# Varmuuskopioi asetukset, poista sitten haaran paketit (esimerkki Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'

Poiston jälkeen kannattaa tarkistaa tulos. Pleskissä dokumentaatio suosittelee komentoa plesk bin php_handler --reread, jotta käsittelijöiden tiedot luetaan uudelleen PHP-binäärien muutosten jälkeen. Tarkistakaa lisäksi, viittaavatko palvelupaketit yhä poistettuun versioon.

Tyypillisiä sudenkuoppia

Sudenkuoppa Mistä tunnistatte Mikä auttaa
Paneelin osa riippuu versiosta Paneeli ilmoittaa riippuvuudesta poistettaessa Siirtäkää osa ensin toiseen versioon tai säilyttäkää versio
Palvelupaketti viittaa vanhaan versioon Uudet verkkosivustot saavat vanhan version tai virheilmoituksen Muokatkaa pakettia, poistakaa sitten versio
Cron-työ kutsuu kiinteää polkua Skripti epäonnistuu poiston jälkeen Vaihtakaa polku tuettuun versioon
Sovellus ei toimi uudella versiolla Virhe virhelokissa siirron jälkeen Päivittäkää tai migroikaa sovellus

Jos sovellusta ei voi nostaa tuettuun versioon, vanhan version käytöstä poisto ei ole enää asetuskysymys vaan migraatiohanke. Vanhentuneiden haarojen riskit kuvaa opas PHP:n tukijakson päättyminen: vanhentuneiden versioiden riskit.

Seuraava ehdokas on jo tiedossa

Siivoaminen ei ole kertaluonteinen toimi. Jo 31.12.2026 PHP 8.2 poistuu PHP-projektin tuesta. Jos nyt poistatte versiot 8.1:een asti, päättäkää samalla, miten 8.2:n kanssa jatketaan. Muuten sama peli alkaa alusta muutaman viikon kuluttua.

Yksinkertainen sääntö on osoittautunut toimivaksi palvelimella: tarjolla on vain haaroja, joita PHP-projekti tukee. Jokaiselle haaralle asetetaan käyttöönotossa päivämäärä, jolloin se tarkistetaan uudelleen, php.netin tuen päättymisen mukaan. Tämän kierron taustoja selittää sivu PHP-versiot ja julkaisukierto.

Jos hosting-yrityksenä tai toimistona ylläpidätte palvelimella asiakkaita, tiedottakaa heille ajoissa. Ilmoitus päivämäärineen, pyyntö siirtyä uuteen versioon ja tukitarjous estävät sen, ettei verkkosivustoja kaadu määräpäivänä. Asiakkaat, joiden sovellus ei pysy mukana, huomaavat näin ajoissa, että päivitys tai migraatio on edessä, ja voivat varautua siihen.

Miten PHP SOS auttaa konkreettisesti?

  • Selvitämme, mitkä verkkosivustot, cron-työt ja paneelin osat käyttävät mitäkin PHP-versiota.
  • Siirrämme domainit sopien tuettuihin versioihin ja estämme vanhat käsittelijät.
  • Seurantajakson jälkeen poistamme vanhat versiot hallitusti ja tarkistamme tuloksen.
  • Missä sovellukset eivät pysy mukana, suunnittelemme PHP 8.1:n ja vanhempien migraation.

Usein kysytyt kysymykset

Miksi käyttämättömät PHP-versiot kannattaa poistaa?

Jokainen asennettu versio on jokaisen aukon yhteydessä tarkistettava, päivitettävä ja käynnistettävä uudelleen. Vanhoille haaroille, kuten PHP 8.1 ja vanhemmat, PHP-projekti ei enää julkaise päivityksiä. Käyttämättömät versiot tuovat vain riskiä ja työtä.

Mitä eroa on käytöstä poistamisella ja asennuksen poistamisella?

Käytöstä poistettaessa versio pysyy asennettuna, mutta sitä ei voi enää valita uudelleen. Asennuksen poistossa se poistetaan palvelimelta. Käytöstä poisto on turvallinen välivaihe, jossa nähdään, puuttuuko jotain.

Voiko PHP-version poistaminen häiritä paneelin toimintoja?

Kyllä. Jotkin paneelin osat, esimerkiksi webmail tai hallintatyökalut, riippuvat tietystä PHP-versiosta. Selvittäkää tällaiset riippuvuudet ennen poistamista; paneeli yleensä huomauttaa niistä.

Kuinka pitkä seurantajakson pitäisi olla?

Niin pitkä, että kaikki säännölliset toiminnot ovat ehtineet ajaa vähintään kerran, myös kuukausittaiset cron-työt ja viennit. Sopikaa kesto toimintayksiköiden kanssa.

Lähteet

Pikayhteys

Jokainen tunti on tärkeä. Kirjoittakaa meille nyt.

Kuvatkaa lyhyesti järjestelmä, PHP-versio ja havainnot. Otamme yhteyttä, selvitämme tilanteen ja työskentelemme etänä, kunnes tapaus on käsitelty loppuun ja dokumentoitu.

Pikaapu