مواد پر جائیں
کنفیگریشن

WordPress میں زیادہ سے زیادہ اپ لوڈ فائل سائز بڑھائیں

تین سیٹنگز آپ کی WordPress اپ لوڈ حد کو کنٹرول کرتی ہیں، اور ان سب کا آپس میں مطابقت رکھنا ضروری ہے۔ اصل حد upload_max_filesize، post_max_size اور آپ کے ویب سرور کی درخواست کی حد میں سے سب سے چھوٹی ہوتی ہے۔

شائع شدہ

تین سیٹنگز آپ کی WordPress اپ لوڈ حد کو کنٹرول کرتی ہیں، اور ان سب کا آپس میں متفق ہونا ضروری ہے۔ اصل حد upload_max_filesize، post_max_size اور آپ کے ویب سرور کی درخواست کی حد میں سے سب سے چھوٹی ہوتی ہے۔ ایک کو بڑھا دیں، باقی دو کو کم چھوڑ دیں، اور کچھ نہیں بدلتا — یہی وجہ ہے کہ زیادہ تر لوگ سمجھ لیتے ہیں کہ ان کا حل “کام نہیں کیا۔” پہلے اپنے موجودہ اعداد WordPress max upload size tool سے چیک کریں؛ یہ وہی ویلیوز پڑھتا ہے جو WordPress رپورٹ کرتا ہے اور آپ کو دکھاتا ہے کہ کون سی ویلیو آپ کو روک رہی ہے۔

یہ حد کیوں موجود ہے اور کہاں رہتی ہے

WordPress اپ لوڈ حد سیٹ نہیں کرتا۔ یہ صرف اسے رپورٹ کرتا ہے۔ جب آپ کو “The uploaded file exceeds the upload_max_filesize directive in php.ini” نظر آئے، تو یہ پیغام سیدھا PHP سے آتا ہے۔

تین الگ الگ ویلیوز ایک اپ لوڈ کو گیٹ کرتی ہیں، اور اصل حد وہ ہے جو سب سے کم ہو:

  • upload_max_filesize (PHP) — سب سے بڑی واحد فائل جو PHP قبول کرے گا۔
  • post_max_size (PHP) — سب سے بڑا کُل POST باڈی۔ آپ کی فائل POST درخواست کے اندر دیگر فارم فیلڈز کے ساتھ سفر کرتی ہے، اس لیے یہ upload_max_filesize سے بڑی ہونی چاہیے۔
  • ویب سرور کی باڈی حد — Nginx پر client_max_body_size، یا Apache پر LimitRequestBody۔ یہ PHP سے مکمل طور پر باہر رہتی ہے، یہی وجہ ہے کہ Nginx کے پیچھے صرف PHP والے حل خاموشی سے ناکام ہو جاتے ہیں۔

ایک چوتھی ویلیو، max_execution_time، سائز کو محدود نہیں کرتی لیکن کمزور کنکشن پر سست بڑی اپ لوڈ کو درمیان میں ہی روک دے گی۔ یہ ایک الگ علامت ہے، سائز کی حد کا حصہ نہیں۔

پھندا: آپ upload_max_filesize = 256M سیٹ کرتے ہیں، ری لوڈ کرتے ہیں، پھر بھی 100 MB کی فائل اپ لوڈ نہیں کر سکتے — کیونکہ post_max_size اب بھی 8M ہے۔ PHP فائل کو دیکھنے سے پہلے ہی کُل باڈی پر درخواست مسترد کر دیتا ہے۔ حد نے آپ کو نظرانداز نہیں کیا۔ ایک مختلف حد نے اسے پہلے پکڑ لیا۔

اسے کیسے ٹھیک کریں، ترتیب سے

سب سے زیادہ کارآمد سے آخری حربے تک کام کریں۔

1. php.ini ایڈٹ کریں (صحیح جگہ)۔ وہ فائل تلاش کریں جو آپ کی سائٹ اصل میں لوڈ کرتی ہے — <?php phpinfo(); والا صفحہ چلائیں اور “Loaded Configuration File” پڑھیں، یا اپنے ہوسٹ سے پوچھیں۔ دونوں PHP ویلیوز سیٹ کریں، اور 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 کو ری اسٹارٹ کریں۔ جب تک PHP پروسیس ری اسٹارٹ نہ ہو، تبدیلیاں کچھ نہیں کرتیں۔

2. php.ini تک رسائی نہیں؟ .htaccess استعمال کریں (صرف Apache + mod_php)۔ اپنے WordPress روٹ کے .htaccess میں شامل کریں:

php_value upload_max_filesize 256M
php_value post_max_size 260M
php_value max_execution_time 300

یہ صرف تب کام کرتا ہے جب PHP ایک Apache ماڈیول کے طور پر چلتا ہو۔ PHP-FPM، CGI یا FastCGI کے تحت، php_value ایک 500 ایرر دیتا ہے — اس ناکامی کا مطلب ہے کہ آپ غلط راستے پر ہیں، نہ کہ نمبر غلط ہے۔ .user.ini پر منتقل ہو جائیں:

upload_max_filesize = 256M
post_max_size = 260M

3. ویب سرور کی حد بڑھائیں — وہ قدم جسے ہر کوئی بھول جاتا ہے۔ Nginx پر، PHP کو حد سے زیادہ بڑی درخواست کبھی نظر ہی نہیں آتی؛ Nginx پہلے ہی 413 Request Entity Too Large لوٹا دیتا ہے۔ اپنے سرور بلاک میں:

client_max_body_size 256M;

sudo nginx -t && sudo systemctl reload nginx سے ری لوڈ کریں۔ اگر آپ Nginx پر ہیں اور آپ کی PHP تبدیلیوں نے “کچھ نہیں کیا”، تو تقریباً ہمیشہ یہی وجہ ہوتی ہے۔

کسی بھی تبدیلی کے بعد، رپورٹ کی گئی ویلیوز دوبارہ چیک کریں۔ max upload size tool آپ کو نئی اصل حد بتائے گا اور آپ کے سیٹ اپ کے لیے بالکل درست اسنیپٹ بنا دے گا، تاکہ آپ کو اندازہ نہ لگانا پڑے کہ تینوں میں سے کون سی اب بھی کم ہے۔

کیا نہ کریں

wp-config.php ایڈٹ کر کے یہ توقع نہ رکھیں کہ یہ حد بڑھا دے گا۔ وسیع پیمانے پر کاپی کی جانے والی لائن وہ نہیں کرتی جو بلاگ پوسٹس دعویٰ کرتی ہیں:

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

upload_max_filesize ایک PHP_INI_PERDIR ویلیو ہے۔ اسے ini_set() کے ذریعے رن ٹائم پر PHP سے تبدیل نہیں کیا جا سکتا۔ یہ صرف php.ini، .htaccess یا .user.ini سے نئی ویلیوز قبول کرتا ہے — کبھی ایپلیکیشن کوڈ سے نہیں۔ یہ لائن بغیر کسی ایرر کے چلتی ہے اور کچھ نہیں کرتی، جو اسے WordPress میں سب سے زیادہ اعتماد کے ساتھ دہرائے جانے والے غلط مشوروں میں سے ایک بنا دیتی ہے۔

@ini_set('post_max_size', ...) بھی پیسٹ نہ کریں — وہی پابندی، وہی خاموش بے اثر عمل۔

WP_MEMORY_LIMIT سیٹ کر کے یہ نہ سمجھیں کہ یہ اپ لوڈ حد ہے۔ یہ کوڈ چلانے کے لیے PHP کی میموری کی حد کو کنٹرول کرتا ہے۔ اس کا اس سے کوئی تعلق نہیں کہ سرور کتنی بڑی فائل قبول کرتا ہے۔

ایک ہی فائل پر مت رکیں۔ سب سے عام ناکامی صرف upload_max_filesize تبدیل کرنا اور پھر حل کو خراب قرار دینا ہے۔ تینوں تبدیل کریں، اور post_max_size کو upload_max_filesize سے اوپر رکھیں۔

“احتیاطاً” حدود کو مضحکہ خیز حد تک اونچا نہ کریں۔ 2 GB کی حد وسائل کے ختم ہونے کے مسائل کو دعوت دیتی ہے اور مدد نہیں کرتی — اگر آپ کو واقعی ملٹی گیگابائٹ فائلوں کی ضرورت ہے، تو انہیں براؤزر کے باہر اپ لوڈ کریں (SFTP، یا ایک chunked-upload plugin) بجائے اس کے کہ انہیں زبردستی ایک واحد PHP POST سے گزاریں۔

اب بھی پھنسے ہوئے ہیں؟

اگر تینوں ویلیوز بڑھا دی گئی ہیں اور پھر بھی آپ دیوار سے ٹکراتے ہیں، تو درخواست آپ کے سرور سے اوپر کہیں محدود کی جا رہی ہے: ایک CDN یا پراکسی (Cloudflare کا ڈیش بورڈ اپنے طور پر اپ لوڈ باڈی سائز کو محدود کرتا ہے)، ایک منظم ہوسٹ کی پلیٹ فارم حد جو آپ کی php.ini کو نظرانداز کرتی ہے، یا ایک .user.ini جو ابھی تازہ نہیں ہوئی — یہ PHP کے user_ini.cache_ttl کا احترام کرتی ہے، اس لیے یہ آپ کے سیو کرنے کے بعد چند منٹ پیچھے رہ سکتی ہے۔ اس بات کی تصدیق کریں کہ سرور اصل میں کیا رپورٹ کرتا ہے، نہ کہ وہ جو آپ نے فائل میں لکھا، اور اس پرت کو ٹھیک کریں جو اب بھی کم ہے۔ جب رپورٹ کیا گیا نمبر آخرکار آپ کے ہدف سے مل جائے، تو اپ لوڈ کام کرتا ہے۔