Πώς να αυξήσετε το όριο μεγέθους του αρχείου καταχώρησης PHP
Αν έχετε μια εφαρμογή web που μεταφορτώνει αρχεία στον διακομιστή μέσω μιας δέσμης ενεργειών PHP, ίσως έχετε παρατηρήσει ότι από προεπιλογή δεν μπορείτε να ανεβάσετε τρομερά μεγάλα αρχεία. Εδώ είναι πώς να το αλλάξετε.
Ο λόγος για τον οποίο το όριο έχει οριστεί αρκετά χαμηλό από προεπιλογή είναι για λόγους σταθερότητας και ασφάλειας - ένα κακόβουλο script ή ένας εισβολέας θα μπορούσε να επιχειρήσει να κάνει το διακομιστή σας με μεγάλες μεταφορτώσεις αρχείων και να κλείσει προσωρινά την εφαρμογή σας.
Για να αλλάξετε τις τιμές, θα χρειαστεί να επεξεργαστείτε το αρχείο php.ini που συνήθως βρίσκεται σε αυτή τη διαδρομή αρχείου:
/etc/php.ini
Ακολουθούν οι ρυθμίσεις που θέλετε να αλλάξετε:
post_max_size
Αυτή η ρύθμιση ελέγχει το μέγεθος μιας ανάρτησης HTTP και πρέπει να είναι μεγαλύτερη από τη ρύθμιση upload_max_filesize.
upload_max_filesize
Αυτή η τιμή ορίζει το μέγιστο μέγεθος ενός αρχείου μεταφόρτωσης.
memory_limit
Θα θελήσετε να βεβαιωθείτε ότι το όριο μνήμης δέσμης ενεργειών έχει οριστεί σε ένα αξιοπρεπές μέγεθος, ίσως μεγαλύτερο από οποιαδήποτε από τις δύο άλλες ρυθμίσεις.
Ρύθμιση των μεταβλητών
Μπορείτε να ορίσετε τις τιμές χρησιμοποιώντας μια αριθμητική τιμή που ακολουθείται από το M για το ποσό MB που θέλετε να διαθέσετε για κάθε μεταβλητή. Για παράδειγμα, για να μπορέσετε να μεταφορτώσετε αρχεία μεγέθους 20MB, θα πρέπει να χρησιμοποιήσετε κάτι παρόμοιο:
memory_limit = 64M
upload_max_filesize = 20M
post_max_size = 25M
Θα χρειαστεί να κάνετε επανεκκίνηση του διακομιστή σας Apache μόλις κάνετε αυτήν την αλλαγή, με αυτήν την εντολή:
/etc/init.d/httpd επανεκκίνηση
Ρύθμιση του μεγέθους μεταφόρτωσης ανά εφαρμογή
Μπορείτε να αλλάξετε αυτή τη ρύθμιση για μια συγκεκριμένη εφαρμογή ιστού τοποθετώντας την στο αρχείο .htaccess, στον κατάλογο της εφαρμογής. Σημειώστε ότι αυτό θα λειτουργήσει μόνο εάν ο διακομιστής σας έχει ενεργοποιήσει την αντικατάσταση για τον εικονικό κεντρικό υπολογιστή ή διακομιστή σας.
Για παράδειγμα, θα μπορούσατε να βάλετε τα ακόλουθα στο αρχείο:
php_value memory_limit = 64M
php_value upload_max_filesize = 20M
php_value post_max_size = 25M
Αφού αποθηκεύσετε το αρχείο, θα πρέπει να εφαρμοστούν οι αλλαγές.