Τρέχουσα κατάσταση: PHP2Shell. Δύο κρίσιμες ευπάθειες της PHP (CVSS 9.2) επιτρέπουν κακόβουλο κώδικα χωρίς σύνδεση. Patches από τις 21/10/2026.Τι πρέπει να γίνει τώρα →

Απενεργοποίηση παλιών εκδόσεων PHP στο πάνελ φιλοξενίας

Το PHP2Shell είναι μια καλή αφορμή να απαλλαγείτε από τις παλιές εκδόσεις PHP. Έτσι προχωράτε σε τρεις φάσεις, ώστε να μην πέσει απαρατήρητα κανένας ιστότοπος και κανένα cronjob.

Ημερομηνία 6 λεπτά ανάγνωσηςΦιλοξενία και διανομές

Εν ολίγοις: Τις παλιές εκδόσεις PHP τις απενεργοποιείτε με τον ασφαλέστερο τρόπο σε τρεις φάσεις: εντοπισμός χρήσης, κλείδωμα της έκδοσης και παρατήρηση, και μόνο μετά απεγκατάσταση. Στο Plesk ένας handler μπορεί πρώτα να απενεργοποιηθεί, ώστε να μην μπορεί πλέον να επιλεγεί, και αργότερα να αφαιρεθεί από τα Updates και τα components. Κάθε έκδοση που αφαιρείται είναι μία λιγότερη που θα πρέπει να κάνετε patch και να επανεκκινήσετε στην επόμενη ευπάθεια όπως το PHP2Shell.

Γιατί να καθαρίσουμε ακριβώς τώρα;

Η εβδομάδα μετά το PHP2Shell έδειξε σε πολλούς διαχειριστές πόσες εκδόσεις PHP είναι εγκατεστημένες στους διακομιστές τους. Καθεμία έπρεπε να ελεγχθεί, καθεμία χρειαζόταν ενημέρωση ή προσωρινά μέτρα, κάθε υπηρεσία μια επανεκκίνηση. Για την PHP 8.1 και παλαιότερες υπάρχουν μόνο ελάχιστα backports πηγαίου κώδικα, για την PHP 8.2 η υποστήριξη λήγει στις 31.12.2026.

Με αυτή την εμπειρία φρέσκια στη μνήμη, είναι η σωστή στιγμή για καθαρισμό. Πώς θα βρείτε πρώτα απ' όλα όλες τις εγκαταστάσεις, περιγράφει το άρθρο Πολλές εκδόσεις PHP σε έναν διακομιστή. Εδώ πρόκειται για το επόμενο βήμα: τον ελεγχόμενο τερματισμό.

Φάση 1: Εντοπισμός χρήσης

Πριν απενεργοποιήσετε οτιδήποτε, πρέπει να ξέρετε ποιος χρησιμοποιεί μια έκδοση. Οι ιστότοποι είναι το προφανές μέρος. Λιγότερο ορατά είναι τα subdomains, οι δοκιμαστικές εγκαταστάσεις, τα cronjobs, τα scripts και τα στοιχεία του πάνελ.

Στο Plesk η εντολή plesk bin php_handler --list απαριθμεί όλους τους καταχωρισμένους handlers. Με το --get-usage το Plesk δείχνει, σύμφωνα με την τεκμηρίωση, ποια domains χρησιμοποιούν έναν συγκεκριμένο handler. Καμία από τις δύο εντολές δεν αλλάζει κάτι.

# Plesk: όλοι οι handlers και τα domains που χρησιμοποιούν έναν handler
plesk bin php_handler --list
plesk bin php_handler --get-usage -id <handler-id>

# Γενικά: cronjobs που καλούν μια συγκεκριμένη έκδοση PHP
grep -rE "php(7|8\.0|8\.1)" /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null

Ελέγξτε επιπλέον τα logs πρόσβασης των επηρεαζόμενων ιστότοπων: μια δοκιμαστική εγκατάσταση που δεν έχει λάβει αίτημα εδώ και μήνες είναι υποψήφια για αφαίρεση και όχι για μετάβαση. Σημειώστε για κάθε παλιά έκδοση ποιος τη χρησιμοποιεί και γιατί.

Ρωτήστε επίσης όσους εργάζονται με τους ιστότοπους. Συντακτικές ομάδες, γραφεία και τμήματα γνωρίζουν συχνά διαδικασίες που δεν υπάρχουν σε κανέναν κατάλογο: την ετήσια εξαγωγή για τη λογιστική, τη φόρμα για μια έκθεση, τη διεπαφή προς το σύστημα διαχείρισης αποθεμάτων. Ό,τι εξαρτάται εκεί από μια παλιά έκδοση, γίνεται αλλιώς αντιληπτό μόνο όταν λείψει.

Φάση 2: Κλείδωμα και παρατήρηση

Το ενδιάμεσο βήμα εμποδίζει να ανατεθεί ξανά μια έκδοση, χωρίς να τη διαγράψετε αμέσως. Στο Plesk υπάρχει γι' αυτό η δυνατότητα απενεργοποίησης μεμονωμένων handlers. Σύμφωνα με την τεκμηρίωση του Plesk, ένας απενεργοποιημένος handler δεν μπορεί πλέον να επιλεγεί στις ρυθμίσεις PHP ενός ιστότοπου· η έκδοση παραμένει εγκατεστημένη. Στη γραμμή εντολών γίνεται με plesk bin php_handler --disable -id <handler-id>.

Τα domains που χρησιμοποιούν ακόμη την παλιά έκδοση τα μεταφέρετε προηγουμένως, σε συνεννόηση με τους υπευθύνους, σε υποστηριζόμενη έκδοση. Πώς φαίνεται αυτό από την πλευρά του διαχειριστή του ιστότοπου, περιγράφει το άρθρο Αλλαγή έκδοσης PHP στην περιοχή πελατών του παρόχου. Την επιλογή του κατάλληλου handler εξηγεί το άρθρο Plesk: κατανόηση των PHP handlers.

Κατά την περίοδο παρατήρησης προσέξτε μηνύματα σφάλματος στα logs, αποτελέσματα cronjob που δεν εμφανίζονται και σχόλια των χρηστών. Σε άλλα πάνελ οι λειτουργίες ονομάζονται διαφορετικά· ελέγξτε εκεί την τεκμηρίωση του κατασκευαστή.

Συμβουλή

Ορίστε το τέλος της περιόδου παρατήρησης ως ημερομηνία και κατονομάστε ποιος εγκρίνει μετά την απεγκατάσταση. Αλλιώς το ενδιάμεσο βήμα γίνεται μόνιμη κατάσταση και η παλιά έκδοση παραμένει τελικά στον διακομιστή.

Φάση 3: Απεγκατάσταση

Μόνο όταν περάσει η περίοδος παρατήρησης χωρίς παρατηρήσεις, αφαιρείτε την έκδοση πλήρως. Στο Plesk αυτό γίνεται, σύμφωνα με την τεκμηρίωση, στο Tools & Settings, Updates, Add/Remove Components, στον τομέα Web hosting, στις εκδόσεις του διερμηνέα PHP. Οι εγκατεστημένες εκδόσεις είναι εκεί σημειωμένες και μπορούν να επιλεγούν για αφαίρεση.

Σε διακομιστές χωρίς πάνελ αναλαμβάνει αυτή την εργασία η διαχείριση πακέτων. Δημιουργήστε πριν αντίγραφο ασφαλείας της διαμόρφωσης της έκδοσης, για παράδειγμα /etc/php/7.4/ σε Debian και Ubuntu, ώστε σε περίπτωση ανάγκης να μπορείτε να καταλάβετε ποιες ρυθμίσεις ίσχυαν.

# Αντίγραφο ασφαλείας της διαμόρφωσης, μετά αφαίρεση των πακέτων ενός κλάδου (παράδειγμα Debian/Ubuntu, PHP 7.4)
tar czf /root/php74-konfiguration.tar.gz /etc/php/7.4/
apt remove 'php7.4*'

Μετά την αφαίρεση αξίζει έλεγχος. Στο Plesk η τεκμηρίωση συνιστά το plesk bin php_handler --reread, για να διαβαστούν ξανά οι πληροφορίες των handlers μετά από αλλαγές στα binaries PHP. Ελέγξτε επιπλέον αν τα πακέτα υπηρεσιών (service plans) παραπέμπουν ακόμη στην αφαιρεθείσα έκδοση.

Τυπικά εμπόδια

Εμπόδιο Πώς το αναγνωρίζετε Τι βοηθά
Στοιχείο του πάνελ εξαρτάται από την έκδοση Το πάνελ αναφέρει εξάρτηση κατά την αφαίρεση Πρώτα μετάβαση του στοιχείου ή διατήρηση της έκδοσης
Το service plan παραπέμπει στην παλιά έκδοση Οι νέοι ιστότοποι λαμβάνουν την παλιά έκδοση ή μήνυμα σφάλματος Προσαρμογή του πακέτου, μετά αφαίρεση της έκδοσης
Cronjob καλεί σταθερή διαδρομή Το script αποτυγχάνει μετά την αφαίρεση Αλλαγή της διαδρομής σε υποστηριζόμενη έκδοση
Η εφαρμογή δεν τρέχει σε νέα έκδοση Σφάλμα μετά τη μετάβαση στο log σφαλμάτων Ενημέρωση ή μετάβαση της εφαρμογής

Αν μια εφαρμογή δεν μπορεί να ανέβει σε υποστηριζόμενη έκδοση, η απενεργοποίηση της παλιάς έκδοσης δεν είναι πλέον θέμα διαμόρφωσης, αλλά έργο μετάβασης. Τους κινδύνους των παρωχημένων κλάδων περιγράφει ο οδηγός PHP End-of-Life: κίνδυνοι των παρωχημένων εκδόσεων.

Ο επόμενος υποψήφιος είναι ήδη γνωστός

Ο καθαρισμός δεν είναι εφάπαξ ενέργεια. Ήδη στις 31.12.2026 η PHP 8.2 παύει να υποστηρίζεται από το έργο PHP. Όποιος αφαιρεί τώρα εκδόσεις έως την 8.1, πρέπει να ορίσει ταυτόχρονα τι θα γίνει με την 8.2. Αλλιώς το ίδιο παιχνίδι ξεκινά ξανά σε λίγες εβδομάδες.

Έχει αποδειχθεί χρήσιμος ένας απλός κανόνας για τον διακομιστή: προσφέρονται μόνο κλάδοι που υποστηρίζει το έργο PHP. Κάθε κλάδος λαμβάνει κατά τη ρύθμιση μια ημερομηνία επανελέγχου, με βάση το τέλος της υποστήριξης στο php.net. Το υπόβαθρο αυτού του κύκλου εξηγεί η σελίδα Εκδόσεις PHP και κύκλος κυκλοφορίας.

Όποιος ως πάροχος φιλοξενίας ή γραφείο έχει πελάτες στον διακομιστή, πρέπει να τους ενημερώσει έγκαιρα. Μια ανακοίνωση με ημερομηνία, το αίτημα μετάβασης και μια πρόταση υποστήριξης αποτρέπουν την πτώση ιστότοπων την ημέρα της προθεσμίας. Οι πελάτες των οποίων η εφαρμογή δεν ακολουθεί αντιλαμβάνονται έτσι εγκαίρως ότι έπεται ενημέρωση ή μετάβαση και μπορούν να προγραμματίσουν.

Πώς βοηθά συγκεκριμένα η PHP SOS;

  • Εντοπίζουμε ποιοι ιστότοποι, cronjobs και στοιχεία πάνελ χρησιμοποιούν ποια έκδοση PHP.
  • Μεταφέρουμε σε συνεννόηση τα domains σε υποστηριζόμενες εκδόσεις και κλειδώνουμε τους παλιούς handlers.
  • Μετά την περίοδο παρατήρησης αφαιρούμε ελεγχόμενα τις παλιές εκδόσεις και ελέγχουμε το αποτέλεσμα.
  • Όπου οι εφαρμογές δεν ακολουθούν, σχεδιάζουμε τη μετάβαση από PHP 8.1 και παλαιότερες.

Συχνές ερωτήσεις

Γιατί πρέπει να αφαιρέσω τις εκδόσεις PHP που δεν χρησιμοποιούνται;

Κάθε εγκατεστημένη έκδοση πρέπει σε κάθε ευπάθεια να ελεγχθεί, να ενημερωθεί και να επανεκκινηθεί. Οι παλιοί κλάδοι όπως η PHP 8.1 και παλαιότεροι δεν λαμβάνουν πλέον ενημερώσεις από το έργο PHP. Οι εκδόσεις που δεν χρησιμοποιούνται φέρνουν μόνο κίνδυνο και προσπάθεια.

Ποια είναι η διαφορά μεταξύ απενεργοποίησης και απεγκατάστασης;

Στην απενεργοποίηση η έκδοση παραμένει εγκατεστημένη, δεν μπορεί όμως να επιλεγεί ξανά. Στην απεγκατάσταση αφαιρείται από τον διακομιστή. Η απενεργοποίηση είναι το ασφαλές ενδιάμεσο βήμα για να δείτε αν κάτι λείπει.

Μπορεί η αφαίρεση μιας έκδοσης PHP να διαταράξει λειτουργίες του πάνελ;

Ναι. Ορισμένα στοιχεία ενός πάνελ, όπως το webmail ή εργαλεία διαχείρισης, εξαρτώνται από μια συγκεκριμένη έκδοση PHP. Διευκρινίστε τέτοιες εξαρτήσεις πριν από την αφαίρεση· το πάνελ τις επισημαίνει κατά κανόνα.

Πόσο πρέπει να διαρκεί η περίοδος παρατήρησης;

Όσο χρειάζεται ώστε όλες οι τακτικές διαδικασίες να έχουν τρέξει τουλάχιστον μία φορά, δηλαδή και μηνιαία cronjobs και εξαγωγές. Ορίστε τη διάρκεια μαζί με τα τμήματα που χρησιμοποιούν τους ιστότοπους.

Πηγές

Άμεση επικοινωνία

Κάθε ώρα μετράει. Γράψτε μας τώρα.

Περιγράψτε σύντομα το σύστημα, την έκδοση PHP και ό,τι παρατηρείτε. Θα επικοινωνήσουμε μαζί σας, θα διευκρινίσουμε την κατάσταση και θα εργαστούμε εξ αποστάσεως μέχρι το περιστατικό να κλείσει και να τεκμηριωθεί.

Άμεση βοήθεια