Ενότητα 8 · 8.4
Εκδόσεις PHP και αναβαθμίσεις
Ενότητα 8: Αντίγραφα ασφαλείας, περιβάλλον δοκιμών (staging) και αναβαθμίσεις PHP · Χρόνος ανάγνωσης: 10 λεπτά
Μαθησιακός στόχος: Μετά από αυτό το μάθημα θα μπορείτε να προετοιμάσετε, να εκτελέσετε και, αν χρειαστεί, να αναιρέσετε με ασφάλεια μια αναβάθμιση PHP.
Βασικές έννοιες: κύκλος ζωής της PHP (ενεργή υποστήριξη, μόνο ασφάλεια, τέλος), συμβατότητα WordPress, θέματος εμφάνισης και προσθέτων, κατάργηση (deprecated), προειδοποίηση, κρίσιμο σφάλμα, Υγεία ιστότοπου, αρχείο καταγραφής σφαλμάτων, περιβάλλον δοκιμών (staging), επαναφορά, ανάθεση αναβάθμισης σε τρίτο
Γιατί έχουν σημασία οι εκδόσεις PHP
Το WordPress, το θέμα εμφάνισης και τα πρόσθετά σας είναι γραμμένα σε PHP (μάθημα 1.2). Κάθε χρόνο κυκλοφορεί μια νέα έκδοση της PHP (8.3, 8.4, 8.5, ...). Κάθε έκδοση συντηρείται για συγκεκριμένο χρονικό διάστημα:
- ενεργή υποστήριξη: δύο χρόνια με διορθώσεις σφαλμάτων και ασφάλειας·
- μόνο ασφάλεια: στη συνέχεια, ακόμη δύο χρόνια μόνο με διορθώσεις ασφάλειας·
- τέλος (end of life): καμία διόρθωση πλέον, ούτε καν για τρωτά σημεία.
Η κατάσταση στις 8 Νοεμβρίου 2026, σύμφωνα με το php.net:
| Έκδοση | Ενημερώσεις ασφαλείας έως | Κατάσταση |
|---|---|---|
| 8.1 και παλαιότερες | (έχει λήξει) | Καμία ενημέρωση πλέον |
| 8.2 | 31 Δεκεμβρίου 2026 | Μόνο ασφάλεια, κοντά στο τέλος |
| 8.3 | 31 Δεκεμβρίου 2027 | Μόνο ασφάλεια |
| 8.4 | 31 Δεκεμβρίου 2028 | Ενεργή |
| 8.5 | 31 Δεκεμβρίου 2029 | Ενεργή |
Ένας ιστότοπος σε έκδοση χωρίς ενημερώσεις λειτουργεί με λογισμικό που έχει γνωστά τρωτά σημεία τα οποία δεν επιδιορθώνονται πλέον. Επιπλέον, οι νεότερες εκδόσεις είναι αισθητά ταχύτερες (μάθημα 6.3). Και το wordpress.org συνιστά PHP 8.3 ή νεότερη (κατάσταση Νοέμβριος 2026). Στόχος είναι λοιπόν να παραμένετε ενήμεροι κάθε χρόνο, όχι να κάνετε ένα μεγάλο άλμα μία φορά στα πέντε χρόνια.
Γιατί μια αναβάθμιση μπορεί να χαλάσει κάτι
Κάθε νέα έκδοση PHP αλλάζει κάτι. Συναρτήσεις που είχαν ήδη χαρακτηριστεί ως κατηργημένες (deprecated) εδώ και χρόνια αφαιρούνται, και οι κανόνες γίνονται αυστηρότεροι. Μερικά γνωστά παραδείγματα:
- Η PHP 8.0 αφαίρεσε, μεταξύ άλλων, τις
create_function()καιeach(), και πολλές προειδοποιήσεις έγιναν σφάλματα· - Η PHP 8.2 χαρακτήρισε ως κατηργημένη τη δυναμική δημιουργία ιδιοτήτων σε αντικείμενα, κάτι που συναντάται συχνά σε παλαιότερα πρόσθετα.
Υπάρχουν τρία είδη μηνυμάτων, και η διαφορά τους έχει σημασία:
| Μήνυμα | Σημασία | Αποτέλεσμα |
|---|---|---|
| Deprecated (κατηργημένο) | "Αυτό λειτουργεί ακόμα, αλλά θα εξαφανιστεί σε μια επόμενη έκδοση" | Τίποτα ορατό· μια προειδοποίηση για το μέλλον |
| Warning ή Notice | Κάτι δεν είναι απολύτως σωστό | Συνήθως τίποτα ορατό, μερικές φορές κάποιο στοιχείο συμπεριφέρεται παράξενα |
| Fatal error | Η PHP σταματά | Λευκή σελίδα ή "κρίσιμο σφάλμα" (μάθημα 5.4) |
Το ίδιο το WordPress συνήθως παρακολουθεί καλά τις νέες εκδόσεις PHP. Ο κίνδυνος βρίσκεται στα παλιά πρόσθετα και θέματα εμφάνισης, ειδικά αν δεν έχουν ενημερωθεί εδώ και καιρό ή είναι προσαρμοσμένα κατά παραγγελία.
Εύρεση της τρέχουσας έκδοσής σας
- Στο WordPress: Εργαλεία > Υγεία ιστότοπου, καρτέλα Πληροφορίες, κάτω από Διακομιστής: η έκδοση PHP. Η Υγεία ιστότοπου προειδοποιεί επίσης αν η έκδοσή σας είναι παρωχημένη.
- Στον πίνακα φιλοξενίας σας: στο DirectAdmin με CloudLinux, στο Select PHP version (με "(current)" δίπλα στην τρέχουσα έκδοση).
- Μερικές φορές ο διακομιστής το αποκαλύπτει στην κεφαλίδα
X-Powered-By: PHP/8.3.x. Καλύτερα όχι (μάθημα 7.4), αλλά αν εμφανίζεται, το βλέπετε γρήγορα.
Προσοχή: σε πολλούς παρόχους φιλοξενίας, η έκδοση PHP ισχύει για ολόκληρο το πακέτο σας, δηλαδή για όλους τους ιστοτόπους που περιέχει. Ένας παλιός ιστότοπος στο ίδιο πακέτο μπορεί να σας εμποδίσει. Αυτός είναι ένας επιπλέον λόγος για να καθαρίσετε παλιούς ιστοτόπους ή να τους δώσετε δικό τους πακέτο.
Η αναβάθμιση βήμα προς βήμα
- Πρώτα ενημερώστε τα πάντα. Ενημερώστε το WordPress, το θέμα εμφάνισης και όλα τα πρόσθετά σας στην τρέχουσα έκδοση PHP. Μεγάλο μέρος των προβλημάτων λύνεται έτσι, γιατί οι δημιουργοί προσαρμόζουν τον κώδικά τους για τις νέες εκδόσεις PHP.
- Δείτε τι λένε τα πρόσθετά σας. Στη σελίδα προσθέτου του wordpress.org αναγράφεται η απαιτούμενη έκδοση PHP· στο αρχείο αλλαγών (changelog) συχνά αναφέρεται "compatible with PHP 8.x". Ένα πρόσθετο που δεν έχει ενημερωθεί εδώ και χρόνια (μάθημα 5.3) είναι υποψήφιο για αντικατάσταση.
- Δημιουργήστε αντίγραφο ασφαλείας (μάθημα 8.1).
- Δοκιμάστε σε περιβάλλον δοκιμών (staging) (μάθημα 8.3). Αν ο πάροχος φιλοξενίας σάς επιτρέπει διαφορετική έκδοση PHP ανά ιστότοπο, ρυθμίστε το περιβάλλον δοκιμών στη νέα έκδοση. Αν αυτό δεν είναι δυνατό (μία έκδοση ανά πακέτο), δοκιμάστε σε περιβάλλον δοκιμών σε άλλο πακέτο, τοπικά, ή επιλέξτε μια ήσυχη στιγμή στο περιβάλλον παραγωγής έχοντας την παλιά έκδοση έτοιμη για επαναφορά.
- Μεταφορά: επιλέξτε τη νέα έκδοση στον πίνακά σας. Στο DirectAdmin με CloudLinux, την επιλέγετε στο Select PHP version και πατάτε Apply· χωρίς το Apply, τίποτα δεν αλλάζει.
- Άμεσος έλεγχος: ανοίξτε τον ιστότοπό σας και περιηγηθείτε σε μερικές σελίδες, συμπεριλαμβανομένου του Πίνακα Ελέγχου, μιας φόρμας και (σε περίπτωση καταστήματος) της ολοκλήρωσης αγοράς. Κοιτάξτε στο αρχείο καταγραφής σφαλμάτων (μάθημα 5.4) για νέες γραμμές
PHP Fatal error. - Επεκτάσεις και ρυθμίσεις: σε ορισμένους παρόχους φιλοξενίας, οι επεκτάσεις PHP και οι επιλογές (όπως το
memory_limit) ανήκουν σε μια συγκεκριμένη έκδοση. Ελέγξτε μετά την αλλαγή ότι είναι σωστά ρυθμισμένες για τη νέα έκδοση.
Αν κάτι πάει στραβά
- Κρίσιμο σφάλμα: επαναφέρετε την παλιά έκδοση (αυτό είναι άμεσα εφικτό στους περισσότερους παρόχους φιλοξενίας), ώστε ο ιστότοπός σας να λειτουργήσει ξανά. Αναζητήστε στο αρχείο καταγραφής σφαλμάτων ποιο πρόσθετο ή θέμα εμφάνισης ήταν υπεύθυνο (η διαδρομή αναγράφεται στο μήνυμα σφάλματος), ενημερώστε το, αντικαταστήστε το ή ζητήστε λύση από τον δημιουργό. Δοκιμάστε ξανά στη συνέχεια.
- Μόνο μηνύματα deprecated: κανένας λόγος να επιστρέψετε πίσω. Ωστόσο, πρόκειται για προειδοποίηση: στην επόμενη έκδοση μπορεί να γίνει σφάλμα. Σημειώστε ποιο πρόσθετο αφορά.
- Προσαρμοσμένος κώδικας που δεν λειτουργεί πλέον: ένας παλιός ιστότοπος που δημιουργήθηκε από κατασκευαστή ιστοτόπων μπορεί να περιέχει κώδικα που κανείς πλέον δεν συντηρεί. Σε αυτήν την περίπτωση, ο κώδικας αυτός πρέπει να προσαρμοστεί από κάποιον που γνωρίζει PHP. Ορισμένοι πάροχοι φιλοξενίας, μεταξύ αυτών και η WebOké, προσφέρουν να το κάνουν αυτό για εσάς.
Μην αφήνετε έναν ιστότοπο "για πάντα" σε μια παλιά έκδοση επειδή ένα πρόσθετο δεν ακολουθεί. Αυτό είναι απλώς αναβολή ενός προβλήματος που μεγαλώνει κάθε χρόνο.
Μεγαλύτερη βεβαιότητα εκ των προτέρων
Για όσους θέλουν να προχωρήσουν περισσότερο: με το PHP_CodeSniffer και τους κανόνες του PHPCompatibilityWP μπορείτε να ελέγξετε τον κώδικα των προσθέτων και των θεμάτων εμφάνισής σας για στοιχεία που δεν λειτουργούν σε νεότερη έκδοση PHP, χωρίς να χρειάζεται να εκτελέσετε τον ιστότοπο. Αυτό εντοπίζει πολλά, αλλά όχι τα πάντα. Η δοκιμή σε περιβάλλον δοκιμών παραμένει απαραίτητη.
Στην πράξη: έτσι φαίνεται σε έναν πίνακα
Ως παράδειγμα χρησιμοποιούμε το DirectAdmin με CloudLinux. Στο cPanel ονομάζεται συχνά MultiPHP Manager ή Select PHP Version, στο Plesk PHP Settings.
- Ανοίξτε το Select PHP version (κάτω από το Extra Programs).
- Κάντε κλικ στην έκδοση στο PHP version, επιλέξτε τη νέα έκδοση και πατήστε Apply.
- Ελέγξτε τις καρτέλες Extensions και Options για τη νέα έκδοση.
- Ελέγξτε τον ιστότοπό σας και το αρχείο καταγραφής σφαλμάτων. Αν κάτι δεν λειτουργεί, επιλέξτε την παλιά έκδοση και Apply.
Σύνοψη
- Κάθε έκδοση PHP λαμβάνει δύο χρόνια ενεργή υποστήριξη και δύο χρόνια μόνο ασφάλεια· μετά δεν γίνονται πλέον διορθώσεις. Στις 8 Νοεμβρίου 2026, η έκδοση 8.1 δεν λαμβάνει πλέον τίποτα και η 8.2 ακόμα έως τέλος 2026.
- Μια αναβάθμιση χαλάει κυρίως παλιά πρόσθετα και θέματα εμφάνισης· το deprecated είναι προειδοποίηση, ένα fatal error σταματά τον ιστότοπο.
- Σειρά: ενημερώστε τα πάντα, ελέγξτε τα πρόσθετα, αντίγραφο ασφαλείας, δοκιμή σε περιβάλλον δοκιμών, μεταφορά, άμεσος έλεγχος.
- Αν κάτι πάει στραβά, επαναφέρετε την παλιά έκδοση, εντοπίστε τον υπαίτιο στο αρχείο καταγραφής σφαλμάτων και λύστε το πρόβλημα· μην παραμένετε σε παλιά έκδοση.
- Σε πολλούς παρόχους φιλοξενίας η έκδοση ισχύει για ολόκληρο το πακέτο· καθαρίστε παλιούς ιστοτόπους.
Κουίζ
Άσκηση
Άσκηση A8.4: Υποστηρίζεται ακόμα η έκδοση PHP σας; Δείτε στο Εργαλεία > Υγεία ιστότοπου (καρτέλα Πληροφορίες, Διακομιστής) ποια έκδοση PHP χρησιμοποιεί ο ιστότοπός σας και συμπληρώστε την, μαζί με το domain σας. Το πρόγραμμα συγκρίνει την έκδοση με τη λίστα υποστηριζόμενων εκδόσεων του php.net: πράσινο για ενεργή υποστήριξη, πορτοκαλί για μόνο ασφάλεια, κόκκινο αν δεν γίνονται πλέον ενημερώσεις. Αν ο διακομιστής σας εμφανίζει την έκδοση στην κεφαλίδα X-Powered-By, το πρόγραμμα ελέγχει επίσης αν αυτή συμφωνεί με όσα συμπληρώσατε (και σας ενημερώνει ότι είναι καλύτερα να κρύψετε αυτήν την κεφαλίδα, μάθημα 7.4).
Άσκηση D8.4: Ένα σχέδιο αναβάθμισης. Γράψτε ένα σχέδιο για την αναβάθμιση του ιστοτόπου σας στη νεότερη έκδοση PHP που προσφέρει ο πάροχος φιλοξενίας σας. Συμπληρώστε: τρέχουσα και επιθυμητή έκδοση, ποια πρόσθετα και θέματα εμφάνισης έχετε και αν υποστηρίζουν την επιθυμητή έκδοση (με αναφορά του πού το διαβάσατε), πού θα κάνετε τη δοκιμή (περιβάλλον δοκιμών, άλλο πακέτο, τοπικά), πώς μπορείτε να επιστρέψετε πίσω και πότε θα το εκτελέσετε. Εκτελέστε το αν μπορείτε, και σημειώστε τι εμφανίστηκε στο αρχείο καταγραφής σφαλμάτων.
Άσκηση D8.4: Ένα σχέδιο αναβάθμισης
Αυτή την άσκηση την κάνετε μόνοι σας: κανείς δεν την ελέγχει. Σημειώστε τι έχετε κάνει και επισημάνετε την άσκηση ως ολοκληρωμένη.
Επιλέξτε μια έκδοση στόχο με ενεργή υποστήριξη (ή τουλάχιστον ακόμη ενημερώσεις ασφαλείας) και αναφέρετε για κάθε πρόσθετο μια πηγή (σελίδα του πρόσθετου, changelog, Διάγνωση ιστοτόπου).
Τα τικ και οι σημειώσεις σας παραμένουν μόνο σε αυτό το πρόγραμμα περιήγησης· δεν τα στέλνουμε πουθενά. Αν έχετε εγγραφεί, αποθηκεύουμε στο Τα μαθήματά μου μόνο ότι έχετε ολοκληρώσει την άσκηση.
Περαιτέρω ανάγνωση
Αυτά τα άρθρα περιγράφουν τα βήματα στους πίνακες ελέγχου της WebOké· σε άλλους πίνακες λειτουργούν παρόμοια.
- Εγχειρίδιο DirectAdmin 14.1: Η επιλογή της έκδοσης PHP (Select PHP version)
- Εγχειρίδιο DirectAdmin 14.6: Σφάλματα μετά από αναβάθμιση PHP και εύρεση του αρχείου καταγραφής σφαλμάτων
- Αλλαγή έκδοσης PHP και ρυθμίσεων PHP (και τι να κάνετε σε περίπτωση σφαλμάτων μετά από αναβάθμιση)
- Εγχειρίδιο DirectAdmin 14.2: Ενεργοποίηση και απενεργοποίηση PHP extensions
- Εγχειρίδιο WebOké 6.11: Αναβάθμιση PHP
- Υποστηριζόμενες εκδόσεις PHP (php.net, Αγγλικά): https://www.php.net/supported-versions.php
- PHP και εκδόσεις WordPress (make.wordpress.org, Αγγλικά): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
