Πώς να λύσει PHP Σφάλμα θανάτου: Επιτρεπόμενο μέγεθος μνήμης 8388608 bytes εξαντλημένο


ini_set ("memory_limit", "16Μ").

Αυτό θα ορίσει το όριο μνήμης σας σε 16 MB, μάλλοναπό 8 MB. Μπορείτε, και πρέπει, να τρέξετε με αυτόν τον αριθμό έτσι ώστε να είναι όσο το δυνατόν χαμηλότερο χωρίς να επαναλάβετε αυτό το μήνυμα σφάλματος. Αυτό θα αλλάξει μόνο το όριο μνήμης για το συγκεκριμένο αρχείο PHP.
Εναλλακτικά, μπορείτε να αλλάξετε το αρχείο php.ini για να αυξήσετε το όριο μνήμης. Αυτό θα επηρεάσει όλα τα σενάρια στον διακομιστή σας. Απλά ανοίξτε το php.ini και βρείτε τη γραμμή που διαβάζει "memory_limit" και αλλάξτε την:
memory_limit = 16M

Έχω παρατηρήσει στη δική μου PHP.ini ότι η προεπιλογή μου είναι πολύ υψηλότερη στα 128M. Έτσι, αν έβλεπα ποτέ αυτό το μήνυμα σφάλματος, θα έλεγα: "Θανάσιμο λάθος: Επιτρεπόμενο μέγεθος μνήμης 134217728 bytes εξαντλημένο ..." και προφανώς είναι ένα πολύ μεγαλύτερο πρόβλημα. Αλλά έχει την ίδια λύση με το "Θανάσιμο σφάλμα: Επιτρεπόμενο μέγεθος μνήμης 8388608 bytes εξαντλημένο ..." ή "Θανάσιμο σφάλμα: Επιτρεπόμενο μέγεθος μνήμης 16777216 bytes εξαντλημένο ..." ή οτιδήποτε άλλο. Προφανώς, η προεπιλεγμένη τιμή memory_limit αυξήθηκε από 8M σε 16M σε PHP 5.2.0 και τώρα είναι 128M για PHP 5.3.0, γεγονός που θα εξηγούσε γιατί ίσως να μην λάβετε αυτό το μήνυμα σφάλματος.
Μπορείτε επίσης να απενεργοποιήσετε το όριο μνήμης ρυθμίζοντας memory_limit στο -1 στο PHP.ini.
memory_limit = -1
Αυτό δεν είναι συνήθως μια καλή ιδέα, όμως, για προφανείς λόγους.
Σημείωση: Μπορείτε επίσης να χρησιμοποιήσετε τη γραμμή memory_limit στη σελίδα σας .htaccess.
Τώρα, θυμηθείτε, αυτό είναι μόνο ένας τρόπος αντιμετώπισης. Πραγματικά, το σενάριο PHP σας πρέπει δεν να υπερβαίνει τα 8 MB, εκτός εάν τα αρχεία που ανεβάζετε ήκάνοντας κάτι άλλο που προφανώς αναλαμβάνει πολλή χρήση μνήμης. Αυτό που πρέπει πραγματικά να κάνετε είναι να προσπαθήσετε να καταλάβετε γιατί το σενάριο σας χρησιμοποιεί τόσο πολλή μνήμη και προσπαθήστε να το διορθώσετε. Ένας τρόπος για να υπολογίσετε πόση μνήμη χρησιμοποιεί το σενάριο PHP είναι να χρησιμοποιήσετε τη λειτουργία PHP memory_get_usage (). Απλά ηχρώστε σε οποιοδήποτε σημείο του σεναρίου σας για να μάθετε πού χρησιμοποιείται η μνήμη σας:
echo memory_get_usage ();
Αν λαμβάνετε αυτό το μήνυμα σφάλματος στο Drupal ή στο Joomla, ο πιθανός ένοχος είναι μια νέα ενότητα ή πακέτο. Για παράδειγμα, στο Drupal, φορτώνεται η σελίδα admin / modules κάθε στην εγκατάσταση του Drupal που μπορείτε να αποκτήσετεμαλλιά αν μια προσαρμοσμένη μονάδα είναι buggy, διεφθαρμένη ή hacked. Δοκιμάστε να απενεργοποιήσετε τις ενότητες μία προς μία για να προσδιορίσετε ποιος φέρνει το κόμμα κάτω. Επίσης, ορισμένοι πάροχοι φιλοξενίας θα αγνοήσουν τις προσπάθειές σας να τροποποιήσετε τα όρια μνήμης για τον κώδικα PHP, ώστε να χρειαστεί να επικοινωνήσετε με την υποστήριξη φιλοξενίας σας για να σας βοηθήσουμε. Έχω βρει μερικές φορές πρέπει να επεξεργαστώ το αρχείο php.ini και μερικές φορές να βάλω τον κώδικα στο αρχείο .htaccess. Είτε έτσι είτε αλλιώς, ελπίζουμε ότι αυτές οι πληροφορίες είναι αρκετές για να σας φτάσουν στο δρόμο σας!
Αφήστε ένα σχόλιο