Κατάλογος άρθρου
Ο ιστότοπός σας παρουσιάζει καθυστέρηση όχι λόγω υπερβολικής επισκεψιμότητας, αλλά πιθανώς επειδή το backend του Memcached δεν λειτουργεί καθόλου!
Αυτό είναι το πιο απογοητευτικό κομμάτι: έχετε αναβαθμίσει σε PHP 8.4, αλλά ο διακομιστής Memcached δεν ανταποκρίνεται και οι σελίδες φορτώνουν με ρυθμό σαλιγκαριού. Η βασική αιτία είναι στην πραγματικότητα αρκετά απλή - αναντιστοιχία επεκτάσεων, ληγμένα κλειδιά και λανθασμένη σειρά εξαρτήσεων. Παρακάτω, θα αναλύσω ολόκληρη τη λύση, ώστε να μπορείτε να τη διορθώσετε με μία προσπάθεια.
Η ρίζα του προβλήματος
Μετά την αναβάθμιση της PHP στην έκδοση 8.4, εάν η επέκταση Memcached δεν συμβαδίζει, θα εμφανίσει απευθείας ένα σφάλμα.
Πολλοί άνθρωποι παρέβλεψαν packages.sury.org Το πρόβλημα προέκυψε από ένα ληγμένο κλειδί GPG, με αποτέλεσμα να μην είναι δυνατή η λήψη του πακέτου εγκατάστασης.
Ακόμα χειρότερα, το Memcached εξαρτάται από... igbinary 和 msgpackΗ σειρά φόρτωσης πρέπει να ακολουθείται αυστηρά. Διαφορετικά, είναι σαν να τοποθετείτε κομμάτια του παζλ σε λάθος θέση, προκαλώντας την κατάρρευση ολόκληρης της υπηρεσίας.

Ενημέρωση κλειδιού GPG
Το πρώτο βήμα είναι να επιδιορθώσετε το κλειδί πηγής.
curl -sSL https://packages.sury.org/php/README.txt | bash -x
apt update
Αυτό το βήμα ισοδυναμεί με την επανέκδοση άδειας πρόσβασης στο σύστημα. Χωρίς αυτό, όλες οι επόμενες εγκαταστάσεις θα απορριφθούν.
Σύμφωνα με την επίσημη τεκμηρίωση του Debian, η λήξη του κλειδιού είναι ένα συνηθισμένο πρόβλημα και πρέπει να ενημερώνεται τακτικά.
Εγκαταστήστε την επέκταση Memcached για PHP 8.4
Το επόμενο βήμα είναι η εγκατάσταση της επέκτασης.
apt install -y php8.4-memcached
Σημειώστε ότι η έκδοση πρέπει να ταιριάζει ακριβώς με την PHP 8.4. Διαφορετικά, θα εμφανιστεί ένα σφάλμα "απροσδιόριστο σύμβολο".
Σύμφωνα με την επίσημη τεκμηρίωση της βιβλιοθήκης επεκτάσεων PHP, το Memcached απαιτεί επαναμεταγλώττιση στη σειρά 8.x για συμβατότητα.
Χειρισμός προτροπών αρχείου διαμόρφωσης
Θα εμφανιστεί ένα αναδυόμενο παράθυρο κατά τη διάρκεια της διαδικασίας εγκατάστασης. memcached.ini Προτροπές επιλογής.
Μην αλλάξετε τίποτα εδώ, απλώς πατήστε Enter και επιλέξτε την προεπιλογή. NΔιατηρήστε την υπάρχουσα διαμόρφωση.
这是因为 HestiaCP Έχει ήδη το δικό του αρχείο ρυθμίσεων. Η αναγκαστική αντικατάστασή του θα προκαλέσει μόνο την αναφορά σφάλματος από τον πίνακα.
Διόρθωση σειράς φόρτωσης επέκτασης εξάρτησης
Αυτό είναι ένα κρίσιμο βήμα.
phpdismod -v 8.4 memcached
phpdismod -v 8.4 msgpack
phpdismod -v 8.4 igbinary
phpenmod -v 8.4 igbinary
phpenmod -v 8.4 msgpack
phpenmod -v 8.4 memcached
Η παραγγελία πρέπει να είναι:igbinary → msgpack → memcached.
Εάν η παραγγελία είναι λανθασμένη, το Memcached θα αναφέρει απευθείας ένα σφάλμα "δεν είναι δυνατή η φόρτωση της ενότητας".
Αυτό έχει επαληθευτεί από αμέτρητους προγραμματιστές στο Stack Overflow.
Επανεκκίνηση υπηρεσίας
Το τελικό βήμα είναι η επανεκκίνηση.
systemctl restart php8.4-fpm
systemctl restart memcached
Αυτό το βήμα είναι σαν να πατάτε το κουμπί ανανέωσης στο σύστημα. Μόνο τότε θα τεθούν πραγματικά σε ισχύ όλες οι ρυθμίσεις παραμέτρων.
Επαληθεύστε εάν η εγκατάσταση ήταν επιτυχής.
Εκτέλεση:
php8.4 -m | grep memcached
Εάν η έξοδος περιέχει memcachedΑυτό υποδεικνύει ότι η επέκταση έχει φορτωθεί με επιτυχία.
Αυτό σημαίνει ότι ο πίνακας ελέγχου HestiaCP έχει επιτέλους ανακτήσει την υποστήριξη της προσωρινής μνήμης και η απόδοση του ιστότοπου θα βελτιωθεί αμέσως.
Συμπέρασμα: Η άποψή μου
Τα τεχνικά προβλήματα δεν είναι ποτέ το πιο τρομακτικό πράγμα. Αυτό που είναι πραγματικά τρομακτικό είναι το να μην ξέρεις πού βρίσκεται το πρόβλημα.
Η μη ανταπόκριση του Memcached μπορεί να φαίνεται περίπλοκη, αλλά στην πραγματικότητα καταλήγει σε τρία βασικά σημεία:Αντιστοίχιση έκδοσης, ενημέρωση κλειδιού, σειρά εξαρτήσεων.
Η επίλυσή του είναι σαν την επισκευή μιας μηχανής ακριβείας. Εφόσον κάθε εξάρτημα βρίσκεται στη σωστή θέση, ολόκληρη η μηχανή μπορεί να ξαναζωντανέψει.
Σε αυτήν την εποχή που κυριαρχείται από πληροφορίες, η απόδοση των ιστοσελίδων αποτελεί ανταγωνιστικό πλεονέκτημα. Η προσωρινή αποθήκευση δεν είναι απλώς κάτι ευχάριστο, αλλά ένας ακρογωνιαίος λίθος που καθορίζει την εμπειρία του χρήστη.
Μην αφήνετε λοιπόν μικρά σφάλματα διαμόρφωσης να παραλύσουν την επιχείρησή σας. Κατακτήστε αυτά τα βήματα και μπορείτε να επιλύσετε πλήρως το πρόβλημα και να επαναφέρετε την ομαλή λειτουργία του ιστότοπού σας.
Η αξία της τεχνολογίας δεν έγκειται στην πολυπλοκότητά της, αλλά στην ακρίβειά της. Η αληθινή μαεστρία έγκειται στην ακριβή επίλυση προβλημάτων.
Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ Το άρθρο "Επίλυση του προβλήματος του μη ανταποκρινόμενου Memcached Server σε PHP 8.4 στο HestiaCP" που κοινοποιήθηκε εδώ μπορεί να σας φανεί χρήσιμο.
Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-33848.html
