सीधे कंटेंट पर जाएं
Configuration

WordPress में Maximum Upload File Size कैसे बढ़ाएं

आपकी WordPress upload limit को तीन settings कंट्रोल करती हैं, और तीनों का एक-दूसरे से मेल होना ज़रूरी है। असली limit upload_max_filesize, post_max_size में से सबसे छोटी वाली होती है।

Published

आपकी WordPress upload limit को तीन settings कंट्रोल करती हैं, और तीनों का आपस में मेल होना ज़रूरी है। असल limit upload_max_filesize, post_max_size, और आपके web server की request cap में से सबसे छोटी वाली होती है। एक को बढ़ा दो और बाकी दो को कम छोड़ दो, तो कुछ नहीं बदलेगा — और यही वजह है कि ज़्यादातर लोग सोच लेते हैं कि उनका fix “काम नहीं आया।” पहले अपने मौजूदा नंबर WordPress max upload size tool से चेक करें; यह वही values पढ़ता है जो WordPress रिपोर्ट करता है और आपको बताता है कि इनमें से कौन-सी आपको रोक रही है।

limit क्यों होती है और कहाँ रहती है

WordPress upload limit सेट नहीं करता। यह सिर्फ़ उसे रिपोर्ट करता है। जब आपको “The uploaded file exceeds the upload_max_filesize directive in php.ini” दिखता है, तो वह message सीधे PHP से आता है।

तीन अलग-अलग values एक upload को गेट करती हैं, और असली सीमा वही होती है जो सबसे कम हो:

  • upload_max_filesize (PHP) — सबसे बड़ी single file जिसे PHP स्वीकार करेगा।
  • post_max_size (PHP) — सबसे बड़ी कुल POST body। आपकी file बाकी form fields के साथ POST request के अंदर सफ़र करती है, इसलिए यह upload_max_filesize से बड़ी होनी चाहिए।
  • web server की body limit — Nginx पर client_max_body_size, या Apache पर LimitRequestBody। यह पूरी तरह PHP के बाहर रहती है, इसीलिए Nginx के पीछे सिर्फ़ PHP वाले fixes चुपचाप फ़ेल हो जाते हैं।

एक चौथी value, max_execution_time, size को cap नहीं करती लेकिन खराब connection पर धीमे बड़े upload को बीच ट्रांसफ़र में रोक देती है। यह एक अलग symptom है, size सीमा का हिस्सा नहीं।

जाल यह है: आप upload_max_filesize = 256M सेट करते हैं, reload करते हैं, फिर भी 100 MB की file upload नहीं कर पाते — क्योंकि post_max_size अब भी 8M है। PHP file को देखने से पहले ही कुल body पर request को reject कर देता है। limit ने आपको अनदेखा नहीं किया। एक दूसरी limit ने उसे पहले पकड़ लिया।

इसे ठीक कैसे करें, क्रम से

सबसे ज़्यादा टिकने वाले से लेकर आख़िरी उपाय तक काम करें।

1. php.ini एडिट करें (सही जगह)। वह file ढूँढें जो आपकी site असल में load करती है — <?php phpinfo(); वाला एक page चलाएँ और “Loaded Configuration File” पढ़ें, या अपने host से पूछें। दोनों PHP values सेट करें, और post_max_size को upload_max_filesize से बड़ा रखें:

upload_max_filesize = 256M
post_max_size = 260M
max_execution_time = 300

PHP-FPM (sudo systemctl restart php8.2-fpm) या Apache को restart करें। जब तक PHP process restart नहीं होता, बदलाव कुछ नहीं करते।

2. php.ini का access नहीं है? .htaccess इस्तेमाल करें (सिर्फ़ Apache + mod_php)। अपने WordPress root की .htaccess में जोड़ें:

php_value upload_max_filesize 256M
php_value post_max_size 260M
php_value max_execution_time 300

यह सिर्फ़ तभी काम करता है जब PHP एक Apache module के रूप में चलता हो। PHP-FPM, CGI, या FastCGI के तहत php_value एक 500 error देता है — वह failure बताता है कि आप गलत रास्ते पर हैं, न कि यह कि नंबर गलत है। .user.ini पर स्विच करें:

upload_max_filesize = 256M
post_max_size = 260M

3. web server की limit बढ़ाएँ — वह step जिसे हर कोई भूल जाता है। Nginx पर PHP oversized request को देखता तक नहीं; Nginx पहले ही 413 Request Entity Too Large लौटा देता है। अपने server block में:

client_max_body_size 256M;

sudo nginx -t && sudo systemctl reload nginx से reload करें। अगर आप Nginx पर हैं और आपके PHP बदलावों ने “कुछ नहीं किया,” तो लगभग हमेशा यही वजह होती है।

किसी भी बदलाव के बाद, रिपोर्ट की गई values दोबारा चेक करें। max upload size tool आपको नई असरदार सीमा बताएगा और आपके setup के लिए बिल्कुल सही snippet बना देगा, ताकि आपको अंदाज़ा न लगाना पड़े कि तीनों में से कौन-सी अब भी कम है।

क्या न करें

wp-config.php एडिट करके यह उम्मीद न करें कि इससे limit बढ़ेगी। वह लाइन जिसे हर जगह copy किया जाता है, वह नहीं करती जो blog posts दावा करती हैं:

@ini_set( 'upload_max_filesize' , '256M' );

upload_max_filesize एक PHP_INI_PERDIR value है। इसे ini_set() से runtime पर PHP से नहीं बदला जा सकता। यह नई values सिर्फ़ php.ini, .htaccess, या .user.ini से स्वीकार करती है — कभी application code से नहीं। वह लाइन बिना error के चलती है और कुछ नहीं करती, जो इसे WordPress की सबसे आत्मविश्वास से दोहराई जाने वाली गलत सलाहों में से एक बना देती है।

@ini_set('post_max_size', ...) भी paste न करें — वही पाबंदी, वही चुपचाप no-op।

WP_MEMORY_LIMIT सेट करके यह न सोचें कि यह upload limit है। वह चलते code के लिए PHP की memory सीमा को कंट्रोल करता है। इसका इससे कोई लेना-देना नहीं कि server कितनी बड़ी file स्वीकार करता है।

एक file पर मत रुकें। सबसे आम failure यही है कि सिर्फ़ upload_max_filesize बदल देना और fix को टूटा हुआ घोषित कर देना। तीनों बदलें, और post_max_size को upload_max_filesize से ऊपर रखें।

“सुरक्षित रहने के लिए” limits को बेतुके ढंग से ऊँचा मत सेट करें। 2 GB की limit resource-exhaustion की दिक्कतों को न्योता देती है और मदद नहीं करती — अगर आपको सच में multi-gigabyte files चाहिए, तो उन्हें एक ही PHP POST से गुज़ारने के बजाय browser के बाहर upload करें (SFTP, या कोई chunked-upload plugin)।

अब भी अटके हुए हैं?

अगर तीनों values बढ़ी हुई हैं और फिर भी आप दीवार से टकराते हैं, तो request आपके server से ऊपर कहीं cap हो रही है: एक CDN या proxy (Cloudflare का dashboard अपने आप upload body size को cap करता है), एक managed host की platform limit जो आपकी php.ini को अनदेखा कर देती है, या एक .user.ini जो अभी refresh नहीं हुई — यह PHP की user_ini.cache_ttl का पालन करती है, इसलिए save करने के बाद यह कुछ मिनट पीछे रह सकती है। यह confirm करें कि server असल में क्या रिपोर्ट करता है, न कि आपने file में क्या लिखा, और उस layer को ठीक करें जो अब भी कम है। जब रिपोर्ट किया गया नंबर आख़िरकार आपके target से मेल खा जाता है, तो upload काम कर जाता है।