Μετάβαση στο περιεχόμενο
Διαμόρφωση

Αύξηση ορίου μεταφόρτωσης στο WordPress (σε κάθε host)

Ελέγξτε το τρέχον όριο μεταφόρτωσης του WordPress και αυξήστε το στο σωστό σημείο για τον host σας: php.ini, .user.ini, .htaccess, cPanel, Nginx ή Cloudflare.

Δημοσιεύτηκε Ενημερώθηκε

Για να αυξήσετε το όριο μεταφόρτωσης στο WordPress, ανεβάστε δύο ρυθμίσεις της PHP, τα upload_max_filesize και post_max_size, στο αρχείο ρυθμίσεων που διαβάζει πραγματικά ο host σας. Αυτό είναι το php.ini σε server που ελέγχετε εσείς, το .user.ini στους περισσότερους shared hosts με PHP-FPM ή FastCGI, το .htaccess μόνο όταν ο Apache τρέχει την PHP ως module, ή ο MultiPHP INI Editor στο cPanel. Αν ο server σας τρέχει Nginx, αυξήστε και το client_max_body_size. Η επεξεργασία του wp-config.php δεν θα αλλάξει το όριο μεταφόρτωσης.

Το εργαλείο μέγιστου μεγέθους μεταφόρτωσης WordPress μετατρέπει ένα μέγεθος-στόχο σε αντίστοιχες τιμές για php.ini (ή .user.ini), .htaccess και wp-config.php, ώστε να τις επικολλήσετε αντί να τις πληκτρολογήσετε.

Βήμα 1: Ελέγξτε το τρέχον όριο μεταφόρτωσης

Πριν αλλάξετε οτιδήποτε, δείτε ποιο είναι το όριο τώρα και ποια ρύθμιση το καθορίζει.

  • Πολυμέσα > Προσθήκη νέου. Η οθόνη μεταφόρτωσης δείχνει το μέγιστο μέγεθος αρχείου. Αυτόν τον αριθμό θέλετε να αυξήσετε.
  • Εργαλεία > Υγεία ιστοτόπου > Πληροφορίες. Αναπτύξτε τη Διαχείριση πολυμέσων. Η τεκμηρίωση της Υγείας ιστοτόπου απαριθμεί τι εμφανίζεται εκεί: το μέγιστο επιτρεπόμενο μέγεθος δεδομένων POST, το μέγιστο μέγεθος αρχείου που ανεβαίνει και το μέγιστο ισχύον μέγεθος αρχείου, που είναι το μικρότερο από τα δύο. Η ενότητα Διακομιστής δείχνει περισσότερες τιμές της PHP.
Η οθόνη Upload Media του WordPress με τη γραμμή Maximum upload file size: 2 GB κάτω από την περιοχή μεταφόρτωσης
Πού φαίνεται το όριο στην οθόνη μεταφόρτωσης, κάτω από την περιοχή μεταφόρτωσης. Τα 2 GB είναι η τιμή του δοκιμαστικού διακομιστή μας· πολλοί πάροχοι φιλοξενίας ορίζουν πολύ λιγότερα.
Site Health Info του WordPress, ενότητα Media Handling, με τα max size of post data allowed, max size of an uploaded file και max effective file size
Εργαλεία > Υγεία ιστότοπου > Πληροφορίες > Διαχείριση πολυμέσων στον δοκιμαστικό μας ιστότοπο, με τα όρια δεδομένων άρθρου, μεταφορτωμένου αρχείου και το πραγματικό όριο σε ξεχωριστές γραμμές.

Το WordPress υπολογίζει το όριό του στη wp_max_upload_size(), που διαβάζει τα upload_max_filesize και post_max_size από την PHP και κρατά το μικρότερο. Αν το ένα είναι 64M και το άλλο 8M, το όριό σας είναι 8M.

Βήμα 2: Μάθετε ποιες ρυθμίσεις μετράνε

ΡύθμισηΤι περιορίζειΠροεπιλογή PHPΠού αλλάζει
upload_max_filesizeΤο μεγαλύτερο μεμονωμένο αρχείο που ανεβαίνει2Mphp.ini, .user.ini, .htaccess, httpd.conf
post_max_sizeΌλο το αίτημα POST, μαζί με το αρχείο8Mphp.ini, .user.ini, .htaccess, httpd.conf
memory_limitΤη μνήμη που μπορεί να χρησιμοποιεί η PHP όσο τρέχει128MΟπουδήποτε, και στο wp-config.php
max_execution_timeΤα δευτερόλεπτα που μπορεί να τρέχει ένα script30Οπουδήποτε, και στο wp-config.php
client_max_body_size (Nginx)Το σώμα αιτήματος που δέχεται το Nginx1mΜόνο στις ρυθμίσεις του Nginx

Οι προεπιλογές και οι τρόποι αλλαγής της PHP προέρχονται από τη λίστα οδηγιών του php.ini· η προεπιλογή του Nginx από την τεκμηρίωση του core module του Nginx. Οι περισσότεροι hosts βάζουν μεγαλύτερες τιμές από τις προεπιλογές της PHP, γι’ αυτό τους πραγματικούς σας αριθμούς τούς διαβάζετε στην Υγεία ιστοτόπου.

Τα upload_max_filesize και post_max_size είναι αυτό που η PHP ονομάζει ρυθμίσεις INI_PERDIR: “μπορούν να οριστούν στο php.ini, .htaccess, httpd.conf ή .user.ini” και πουθενά αλλού. Το memory_limit δεν περιορίζει το μέγεθος αρχείου, αλλά το WordPress χρειάζεται μνήμη για να φτιάξει μικρότερα αντίγραφα μεγάλων εικόνων, οπότε ένα μεγάλο αρχείο μπορεί να αποτύχει με σφάλμα εξάντλησης μνήμης αφού φτάσει.

Βήμα 3: Αυξήστε το όριο στο σωστό σημείο για τον host σας

Η υποδομή σαςΠού το ορίζετεΣημειώσεις
VPS ή dedicated serverΤο php.ini που φορτώνει πραγματικά η PHP σαςΕπανεκκινήστε μετά το PHP-FPM ή τον Apache
Shared host με PHP-FPM ή FastCGI.user.ini στον ριζικό φάκελο του WordPressΜπορεί να χρειαστεί έως 5 λεπτά για να ισχύσει
Apache με PHP ως module (mod_php).htaccess με php_valueΠροκαλεί σφάλμα 500 σε PHP-FPM ή FastCGI
Host με cPanelSoftware > MultiPHP INI EditorΓράφει για εσάς php.ini, .user.ini ή .htaccess
Nginx μπροστά από την PHPclient_max_body_size μαζί με τις τιμές της PHPΑλλιώς το Nginx επιστρέφει 413
Managed WordPress hostΟ πίνακας ελέγχου ή η υποστήριξη του hostΠολλοί hosts περιορίζουν τις μεταφορτώσεις σε επίπεδο πλατφόρμας
Ιστότοπος πίσω από CloudflareΤο δικό όριο μεταφόρτωσης της Cloudflare100 MB στα πακέτα Free και Pro

php.ini (server που ελέγχετε)

Βρείτε πρώτα το αρχείο που φορτώνεται. Φτιάξτε ένα προσωρινό αρχείο με περιεχόμενο <?php phpinfo();, ανοίξτε το σε browser, διαβάστε τη γραμμή “Loaded Configuration File” και μετά διαγράψτε το αρχείο. Επεξεργαστείτε εκείνο το php.ini:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

Μετά επανεκκινήστε την PHP για να διαβάσει την αλλαγή. Με PHP-FPM, το όνομα της υπηρεσίας περιέχει την έκδοση, για παράδειγμα sudo systemctl restart php8.3-fpm σε Debian ή Ubuntu. Με mod_php, επανεκκινήστε τον Apache.

.user.ini (τα περισσότερα shared hosting)

Η PHP διαβάζει τα αρχεία .user.ini μόνο όταν τρέχει ως CGI ή FastCGI, κάτι που περιλαμβάνει το PHP-FPM. Δημιουργήστε ή επεξεργαστείτε το .user.ini στον φάκελο που περιέχει το wp-config.php:

upload_max_filesize = 128M
post_max_size = 130M

Η PHP ξαναδιαβάζει αυτά τα αρχεία κάθε user_ini.cache_ttl δευτερόλεπτα, με προεπιλογή 300. Περιμένετε πέντε λεπτά πριν αποφασίσετε ότι δεν δούλεψε, ή επανεκκινήστε το PHP-FPM αν μπορείτε.

.htaccess (μόνο Apache με mod_php)

php_value upload_max_filesize 128M
php_value post_max_size 130M

Το εγχειρίδιο της PHP περιγράφει αυτές τις οδηγίες για PHP που τρέχει ως module του Apache. Αν ο ιστότοπός σας δείξει 500 Internal Server Error αμέσως μετά την αποθήκευση, η PHP τρέχει ως FastCGI ή PHP-FPM. Αφαιρέστε τις γραμμές και χρησιμοποιήστε αντί γι’ αυτές το .user.ini.

MultiPHP INI Editor του cPanel

Στο cPanel, ανοίξτε Software > MultiPHP INI Editor, διαλέξτε το domain σας και αλλάξτε τις τιμές στο Basic Mode. Σύμφωνα με την τεκμηρίωση του cPanel, το Basic Mode αποθηκεύει στα αρχεία php.ini, .user.ini και .htaccess όπου το καθένα υποστηρίζει τη ρύθμιση, οπότε δεν χρειάζεται να ξέρετε ποιο χρησιμοποιεί ο server σας.

Nginx

Το Nginx ελέγχει το μέγεθος του αιτήματος πριν το δει η PHP. Όταν ένα αίτημα είναι μεγαλύτερο από το client_max_body_size, το Nginx επιστρέφει 413 Request Entity Too Large. Η προεπιλογή είναι 1m. Προσθέστε στο μπλοκ server μια τιμή τουλάχιστον όσο το post_max_size:

client_max_body_size 130M;

Ελέγξτε και επαναφορτώστε με sudo nginx -t && sudo systemctl reload nginx. Στον Apache, η αντίστοιχη ρύθμιση είναι το LimitRequestBody, που σπάνια χρειάζεται αλλαγή σε κανονική φιλοξενία WordPress.

Managed hosts και Cloudflare

Κάποιοι managed WordPress hosts αγνοούν το php.ini ή το .user.ini σας και ορίζουν το όριο για όλη την πλατφόρμα. Αν η Υγεία ιστοτόπου δείχνει ακόμη τον παλιό αριθμό μετά την αλλαγή, ρωτήστε τον host σας ποιο είναι το μέγιστο και αν μπορεί να το αυξήσει.

Αν ο ιστότοπος περνά από Cloudflare, η Cloudflare έχει το δικό της όριο. Η τεκμηρίωση cache της αναφέρει μέγιστα μεγέθη μεταφόρτωσης 100 MB στα πακέτα Free και Pro, 200 MB στο Business και έως 5 GB στο Enterprise. Καμία ρύθμιση της PHP δεν μπορεί να το παρακάμψει.

Γιατί το wp-config.php δεν δουλεύει

Πολλά άρθρα προτείνουν να προσθέσετε αυτό στο wp-config.php:

@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );

Και οι δύο ρυθμίσεις είναι INI_PERDIR, και η τεκμηρίωση της PHP λέει ότι ρυθμίσεις αυτού του τύπου δεν μπορούν να οριστούν με ini_set(). Το @ κρύβει την αποτυχία, οπότε οι γραμμές μοιάζουν ακίνδυνες και δεν αλλάζουν τίποτα. Αυτό που μπορεί να αλλάξει το wp-config.php είναι η μνήμη, γιατί το memory_limit ορίζεται οπουδήποτε:

define( 'WP_MEMORY_LIMIT', '256M' );

Αυτό βοηθά όταν μεγάλες εικόνες αποτυγχάνουν κατά την επεξεργασία. Δεν αλλάζει το μέγιστο μέγεθος αρχείου μεταφόρτωσης.

Βήμα 4: Επιβεβαιώστε την αλλαγή

Ξαναφορτώστε τα Πολυμέσα > Προσθήκη νέου και ελέγξτε ότι το μέγιστο μέγεθος αρχείου δείχνει τη νέα τιμή. Αν όχι:

  • Ελέγξτε ότι το post_max_size είναι τουλάχιστον όσο το upload_max_filesize. Το WordPress κρατά το μικρότερο.
  • Βεβαιωθείτε ότι επεξεργαστήκατε το αρχείο που φορτώνει πραγματικά η PHP. Ένα php.ini σε λάθος φάκελο αγνοείται.
  • Περιμένετε πέντε λεπτά μετά από αλλαγή στο .user.ini, ή επανεκκινήστε το PHP-FPM.
  • Αν ο αριθμός στο WordPress άλλαξε αλλά οι μεταφορτώσεις αποτυγχάνουν ακόμη με 413, το εμπόδιο είναι στο Nginx, στον proxy του host σας ή στην Cloudflare.
  • Αν το αρχείο φτάνει στο WordPress και μετά αποτυγχάνει με “Σφάλμα HTTP”, το μέγεθος δεν είναι πια το πρόβλημα. Ο οδηγός μας για το σφάλμα HTTP του WordPress κατά τη μεταφόρτωση εικόνων καλύπτει τις συνηθισμένες αιτίες.

Πόσο ψηλά να το βάλετε;

Βάλτε το στο μεγαλύτερο αρχείο που πραγματικά χρειάζεται να ανεβάσετε, με λίγο περιθώριο, και κρατήστε το post_max_size λίγο πάνω από το upload_max_filesize. Οι μεγάλες μεταφορτώσεις διαρκούν και περισσότερο, οπότε αυξήστε το max_execution_time αν τα μεγάλα αρχεία λήγουν σε αργές συνδέσεις. Για πολύ μεγάλα αρχεία, όπως μεγάλα βίντεο ή αρχεία αντιγράφων ασφαλείας, το ανέβασμα μέσω SFTP ή με πρόσθετο τμηματικής μεταφόρτωσης είναι συνήθως πιο αξιόπιστο από μία τεράστια μεταφόρτωση από τον browser, και το όριο ενός πακέτου Cloudflare μπορεί έτσι κι αλλιώς να αποκλείει τον browser.

Όταν ξέρετε τον στόχο σας, το εργαλείο μέγιστου μεγέθους μεταφόρτωσης γράφει για εσάς τις αντίστοιχες γραμμές PHP. Προσθέστε μόνοι σας τη γραμμή Nginx από αυτόν τον οδηγό αν ο server σας τρέχει Nginx.

FAQ

Ερωτήσεις

Πώς ελέγχω το τρέχον όριο μεταφόρτωσης στο WordPress;

Πηγαίνετε στα Πολυμέσα > Προσθήκη νέου. Η οθόνη μεταφόρτωσης δείχνει το μέγιστο μέγεθος αρχείου. Για τις λεπτομέρειες, ανοίξτε Εργαλεία > Υγεία ιστοτόπου > Πληροφορίες και αναπτύξτε τη Διαχείριση πολυμέσων. Εκεί φαίνονται το μέγιστο μέγεθος ενός αρχείου που ανεβαίνει, το μέγιστο μέγεθος δεδομένων POST και το μέγιστο ισχύον μέγεθος αρχείου, δηλαδή το μικρότερο από τα δύο.

Γιατί το WordPress λέει ότι το αρχείο υπερβαίνει την οδηγία upload_max_filesize στο php.ini;

Το αρχείο είναι μεγαλύτερο από τη ρύθμιση upload_max_filesize της PHP. Το WordPress δεν ορίζει αυτό το όριο, το διαβάζει από την PHP. Αυξήστε μαζί τα upload_max_filesize και post_max_size στο php.ini, στο .user.ini ή, σε Apache με mod_php, στο .htaccess. Η προεπιλογή της PHP για το upload_max_filesize είναι μόλις 2M, αν και οι περισσότεροι hosts βάζουν μεγαλύτερη τιμή.

Μπορώ να αυξήσω το όριο μεταφόρτωσης από το wp-config.php;

Όχι. Τα upload_max_filesize και post_max_size είναι ρυθμίσεις PHP_INI_PERDIR, που η PHP δέχεται μόνο από php.ini, .htaccess, httpd.conf ή .user.ini. Μια γραμμή ini_set() στο wp-config.php τρέχει χωρίς σφάλμα και δεν αλλάζει τίποτα. Το wp-config.php μπορεί να αυξήσει το όριο μνήμης του WordPress, αλλά η μνήμη δεν είναι αυτό που περιορίζει το μέγεθος αρχείου.

Γιατί παίρνω ακόμη 413 Request Entity Too Large αφού αύξησα τα όρια της PHP;

Κάτι μπροστά από την PHP απορρίπτει το αίτημα. Στο Nginx είναι το client_max_body_size, με προεπιλογή 1m, που επιστρέφει σφάλμα 413 όταν ξεπεραστεί. Αυξήστε το στο μπλοκ server και επαναφορτώστε το Nginx. Αν ο ιστότοπός σας περνά από Cloudflare, το όριο μεταφόρτωσης του πακέτου σας μπορεί επίσης να σταματήσει το αίτημα πριν φτάσει στον server σας.

Πρέπει το post_max_size να είναι μεγαλύτερο από το upload_max_filesize;

Πρέπει να είναι τουλάχιστον ίσο, και λίγο μεγαλύτερο είναι πιο ασφαλές. Το αρχείο στέλνεται μέσα σε ένα αίτημα POST μαζί με άλλα δεδομένα της φόρμας, οπότε όλο το αίτημα μετράει στο post_max_size. Το WordPress χρησιμοποιεί τη μικρότερη από τις δύο τιμές ως όριο, άρα αν αυξήσετε μόνο το upload_max_filesize το όριο μένει ίδιο.