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

WordPress میں اپ لوڈ کی حد کیسے بڑھائیں (کسی بھی ہوسٹ پر)

پہلے اپنی موجودہ WordPress اپ لوڈ حد چیک کریں، پھر اپنے ہوسٹ کے مطابق درست جگہ بڑھائیں: php.ini، .user.ini، .htaccess، cPanel، Nginx یا Cloudflare۔

شائع شدہ اپڈیٹ شدہ

WordPress میں اپ لوڈ کی حد بڑھانے کے لیے دو PHP settings، upload_max_filesize اور post_max_size، کو اس configuration فائل میں بڑھائیں جو آپ کا ہوسٹ واقعی پڑھتا ہے۔ اپنے کنٹرول والے server پر یہ php.ini ہے، PHP-FPM یا FastCGI چلانے والے زیادہ تر shared hosts پر .user.ini، صرف تب .htaccess جب Apache PHP کو module کے طور پر چلاتا ہو، یا cPanel میں MultiPHP INI Editor۔ اگر آپ کا server Nginx چلاتا ہے تو client_max_body_size بھی بڑھائیں۔ wp-config.php edit کرنے سے اپ لوڈ حد نہیں بدلے گی۔

WordPress max upload size tool ایک ہدف سائز کو php.ini (یا .user.ini)، .htaccess اور wp-config.php کے لیے مطابقت رکھنے والی values میں بدل دیتا ہے، تاکہ آپ انہیں ہاتھ سے لکھنے کے بجائے paste کر سکیں۔

مرحلہ 1: اپنی موجودہ اپ لوڈ حد چیک کریں

کچھ بھی بدلنے سے پہلے معلوم کریں کہ ابھی حد کیا ہے اور کون سی setting اسے طے کر رہی ہے۔

  • Media > Add New۔ اپ لوڈ screen زیادہ سے زیادہ اپ لوڈ فائل سائز دکھاتی ہے۔ یہی وہ نمبر ہے جسے آپ بڑھانا چاہتے ہیں۔
  • Tools > Site Health > Info۔ Media handling کھولیں۔ Site Health documentation بتاتی ہے کہ وہاں کیا دکھایا جاتا ہے: post data کا زیادہ سے زیادہ اجازت شدہ سائز، uploaded فائل کا زیادہ سے زیادہ سائز، اور max effective file size، جو دونوں میں سے چھوٹا ہوتا ہے۔ Server والا حصہ مزید PHP values دکھاتا ہے۔
WordPress کی Upload Media سکرین، اپ لوڈ والے حصے کے نیچے یہ لائن: Maximum upload file size: 2 GB
اپ لوڈ سکرین پر حد یہاں نظر آتی ہے، اپ لوڈ والے حصے کے نیچے۔ 2 GB ہمارے ٹیسٹ سرور کی value ہے؛ بہت سے ہوسٹ اس سے کہیں کم رکھتے ہیں۔
WordPress کی Site Health Info کا Media Handling حصہ، جس میں max size of post data allowed، max size of an uploaded file اور max effective file size درج ہیں
ہماری ٹیسٹ سائٹ پر Tools > Site Health > Info > Media Handling، جہاں post data، اپ لوڈ فائل اور مؤثر حد الگ الگ قطاروں میں ہیں۔

WordPress اپنی حد wp_max_upload_size() میں حساب کرتا ہے، جو PHP سے upload_max_filesize اور post_max_size پڑھتا ہے اور چھوٹی value استعمال کرتا ہے۔ اگر ایک 64M اور دوسری 8M ہے تو آپ کی حد 8M ہے۔

مرحلہ 2: جانیں کون سی settings اہم ہیں

Settingکیا محدود کرتی ہےPHP defaultکہاں بدلی جا سکتی ہے
upload_max_filesizeسب سے بڑی ایک uploaded فائل2Mphp.ini، .user.ini، .htaccess، httpd.conf
post_max_sizeپوری POST request، فائل سمیت8Mphp.ini، .user.ini، .htaccess، httpd.conf
memory_limitچلتے وقت PHP جتنی memory استعمال کر سکتا ہے128Mکہیں بھی، wp-config.php سمیت
max_execution_timescript کتنے seconds چل سکتا ہے30کہیں بھی، wp-config.php سمیت
client_max_body_size (Nginx)request body جو Nginx قبول کرے گا1mصرف Nginx config

PHP defaults اور change modes php.ini directives list سے لیے گئے ہیں؛ Nginx default Nginx core module documentation سے ہے۔ زیادہ تر ہوسٹ PHP کے defaults سے زیادہ values رکھتے ہیں، اسی لیے اپنے اصل نمبر Site Health میں دیکھنے چاہئیں۔

upload_max_filesize اور post_max_size وہ settings ہیں جنہیں PHP INI_PERDIR کہتا ہے: یہ “php.ini، .htaccess، httpd.conf یا .user.ini میں set کی جا سکتی ہیں” اور کہیں اور نہیں۔ memory_limit فائل سائز محدود نہیں کرتی، مگر WordPress کو بڑی تصاویر کی resized کاپیاں بنانے کے لیے memory چاہیے، اس لیے بڑا upload پہنچنے کے بعد بھی memory exhausted error کے ساتھ fail ہو سکتا ہے۔

مرحلہ 3: اپنے ہوسٹ کے مطابق درست جگہ حد بڑھائیں

آپ کا setupکہاں set کریںنوٹس
VPS یا dedicated serverوہ php.ini جو آپ کا PHP واقعی load کرتا ہےبعد میں PHP-FPM یا Apache restart کریں
PHP-FPM یا FastCGI والا shared hostWordPress root میں .user.iniلاگو ہونے میں 5 منٹ تک لگ سکتے ہیں
PHP بطور module والا Apache (mod_php)php_value کے ساتھ .htaccessPHP-FPM یا FastCGI پر 500 error دیتا ہے
cPanel ہوسٹSoftware > MultiPHP INI Editorآپ کے لیے php.ini، .user.ini یا .htaccess لکھتا ہے
PHP کے سامنے NginxPHP values کے ساتھ client_max_body_size بھیورنہ Nginx 413 دیتا ہے
Managed WordPress ہوسٹہوسٹ کا dashboard یا supportبہت سے ہوسٹ platform کی سطح پر uploads محدود کرتے ہیں
Cloudflare کے پیچھے siteCloudflare کی اپنی اپ لوڈ حدFree اور Pro plans پر 100 MB

php.ini (آپ کے کنٹرول والا server)

پہلے load ہونے والی فائل تلاش کریں۔ ایک عارضی فائل بنائیں جس میں <?php phpinfo(); ہو، اسے browser میں کھولیں، “Loaded Configuration File” والی line پڑھیں، پھر فائل delete کر دیں۔ اس php.ini کو edit کریں:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

پھر PHP restart کریں تاکہ وہ تبدیلی پڑھ لے۔ PHP-FPM میں service کے نام میں version شامل ہوتا ہے، مثلاً Debian یا Ubuntu پر sudo systemctl restart php8.3-fpm۔ mod_php کے ساتھ Apache restart کریں۔

.user.ini (زیادہ تر shared hosting)

PHP .user.ini فائلیں صرف تب پڑھتا ہے جب وہ CGI یا FastCGI کے طور پر چل رہا ہو، جس میں PHP-FPM شامل ہے۔ اس folder میں .user.ini بنائیں یا edit کریں جس میں wp-config.php ہے:

upload_max_filesize = 128M
post_max_size = 130M

PHP یہ فائلیں ہر user_ini.cache_ttl seconds بعد دوبارہ پڑھتا ہے، جس کا default 300 ہے۔ یہ فیصلہ کرنے سے پہلے کہ کام نہیں ہوا، پانچ منٹ انتظار کریں، یا ممکن ہو تو PHP-FPM restart کریں۔

.htaccess (صرف mod_php والا Apache)

php_value upload_max_filesize 128M
php_value post_max_size 130M

PHP manual ان directives کو Apache module کے طور پر چلنے والے PHP کے لیے بیان کرتا ہے۔ اگر save کرتے ہی آپ کی site 500 Internal Server Error دکھائے تو PHP، FastCGI یا PHP-FPM کے طور پر چل رہا ہے۔ یہ lines ہٹا دیں اور ان کی جگہ .user.ini استعمال کریں۔

cPanel MultiPHP INI Editor

cPanel میں Software > MultiPHP INI Editor کھولیں، اپنا domain چنیں، اور Basic Mode میں values بدلیں۔ cPanel کی documentation کے مطابق Basic Mode، setting کو php.ini، .user.ini اور .htaccess فائلوں میں وہاں محفوظ کرتا ہے جہاں ہر ایک اسے support کرے، اس لیے آپ کو یہ جاننے کی ضرورت نہیں کہ آپ کا server کون سی استعمال کرتا ہے۔

Nginx

Nginx request کا سائز PHP تک پہنچنے سے پہلے چیک کرتا ہے۔ جب کوئی request client_max_body_size سے بڑی ہو تو Nginx 413 Request Entity Too Large لوٹاتا ہے۔ default 1m ہے۔ اپنے server block میں کم از کم post_max_size جتنی بڑی value شامل کریں:

client_max_body_size 130M;

sudo nginx -t && sudo systemctl reload nginx سے test اور reload کریں۔ Apache پر اس جیسی setting LimitRequestBody ہے، جسے عام WordPress hosting پر شاذ و نادر ہی بدلنا پڑتا ہے۔

Managed hosts اور Cloudflare

کچھ managed WordPress ہوسٹ آپ کی php.ini یا .user.ini کو نظر انداز کرتے ہیں اور پورے platform کے لیے حد طے کرتے ہیں۔ اگر تبدیلی کے بعد بھی Site Health پرانا نمبر دکھائے تو اپنے ہوسٹ سے پوچھیں کہ زیادہ سے زیادہ حد کیا ہے اور کیا وہ اسے بڑھا سکتے ہیں۔

اگر site Cloudflare سے گزرتی ہے تو Cloudflare کی اپنی حد ہے۔ اس کی cache documentation زیادہ سے زیادہ اپ لوڈ سائز یوں بتاتی ہے: Free اور Pro plans پر 100 MB، Business پر 200 MB، اور Enterprise پر 5 GB تک۔ کوئی PHP setting اس سے آگے نہیں جا سکتی۔

wp-config.php کیوں کام نہیں کرتی

بہت سے articles wp-config.php میں یہ شامل کرنے کا مشورہ دیتے ہیں:

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

دونوں settings INI_PERDIR ہیں، اور PHP کی documentation کہتی ہے کہ اس mode کی settings ini_set() سے set نہیں کی جا سکتیں۔ @ ناکامی کو چھپا دیتا ہے، اس لیے یہ lines بے ضرر لگتی ہیں اور کچھ نہیں بدلتیں۔ wp-config.php جو بدل سکتی ہے وہ memory ہے، کیونکہ memory_limit کہیں بھی set ہو سکتی ہے:

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

یہ تب مدد کرتا ہے جب بڑی تصاویر processing کے دوران fail ہوں۔ یہ زیادہ سے زیادہ اپ لوڈ فائل سائز نہیں بدلتا۔

مرحلہ 4: تبدیلی کی تصدیق کریں

Media > Add New دوبارہ load کریں اور چیک کریں کہ زیادہ سے زیادہ اپ لوڈ فائل سائز آپ کی نئی value دکھا رہا ہے۔ اگر نہیں:

  • چیک کریں کہ post_max_size کم از کم upload_max_filesize جتنا بڑا ہو۔ WordPress چھوٹی value استعمال کرتا ہے۔
  • تصدیق کریں کہ آپ نے وہی فائل edit کی جو PHP واقعی load کرتا ہے۔ غلط folder میں رکھی php.ini نظر انداز ہو جاتی ہے۔
  • .user.ini کی تبدیلی کے لیے پانچ منٹ انتظار کریں، یا PHP-FPM restart کریں۔
  • اگر WordPress میں نمبر بدل گیا مگر uploads اب بھی 413 کے ساتھ fail ہوں تو رکاوٹ Nginx، آپ کے ہوسٹ کی proxy یا Cloudflare میں ہے۔
  • اگر upload WordPress تک پہنچ کر “HTTP error” کے ساتھ fail ہو تو مسئلہ اب سائز نہیں۔ ہماری WordPress میں image upload پر HTTP error والی guide عام وجوہات بتاتی ہے۔

اسے کتنا زیادہ رکھنا چاہیے؟

اسے اس سب سے بڑی فائل کے مطابق رکھیں جو آپ کو واقعی upload کرنی ہے، تھوڑی گنجائش کے ساتھ، اور post_max_size کو upload_max_filesize سے تھوڑا اوپر رکھیں۔ بڑے uploads میں وقت بھی زیادہ لگتا ہے، اس لیے اگر سست connections پر بڑی فائلیں time out ہوں تو max_execution_time بڑھائیں۔ بہت بڑی فائلوں، جیسے لمبی videos یا backup archives، کے لیے SFTP یا chunked upload plugin سے upload کرنا عام طور پر ایک بہت بڑے browser upload سے زیادہ قابل اعتماد ہے، اور Cloudflare plan کی حد ویسے بھی browser والا راستہ بند کر سکتی ہے۔

جب آپ کو اپنا ہدف معلوم ہو تو max upload size tool آپ کے لیے مطابقت رکھنے والی PHP lines لکھ دیتا ہے۔ اگر آپ کا server Nginx چلاتا ہے تو اس guide سے Nginx والی line خود شامل کریں۔

FAQ

سوالات

WordPress میں اپنی موجودہ اپ لوڈ حد کیسے چیک کروں؟

Media > Add New پر جائیں۔ اپ لوڈ screen زیادہ سے زیادہ اپ لوڈ فائل سائز دکھاتی ہے۔ اس کی تفصیل کے لیے Tools > Site Health > Info کھولیں اور Media handling کو کھولیں، جہاں uploaded فائل کا زیادہ سے زیادہ سائز، post data کا زیادہ سے زیادہ سائز، اور max effective file size درج ہوتا ہے، جو ان دونوں میں سے چھوٹا ہوتا ہے۔

WordPress یہ کیوں کہتا ہے کہ uploaded فائل php.ini کی upload_max_filesize directive سے بڑی ہے؟

فائل PHP کی upload_max_filesize setting سے بڑی ہے۔ یہ حد WordPress خود طے نہیں کرتا، بلکہ PHP سے پڑھتا ہے۔ upload_max_filesize اور post_max_size دونوں کو ایک ساتھ php.ini، .user.ini میں، یا mod_php والے Apache پر .htaccess میں بڑھائیں۔ PHP کا اپنا default برائے upload_max_filesize صرف 2M ہے، اگرچہ زیادہ تر ہوسٹ اس سے زیادہ value رکھتے ہیں۔

کیا میں wp-config.php سے اپ لوڈ حد بڑھا سکتا ہوں؟

نہیں۔ upload_max_filesize اور post_max_size، PHP_INI_PERDIR settings ہیں، جنہیں PHP صرف php.ini، .htaccess، httpd.conf یا .user.ini سے قبول کرتا ہے۔ wp-config.php میں ini_set() والی line بغیر error کے چلتی ہے اور کچھ نہیں بدلتی۔ wp-config.php، WordPress کی memory limit بڑھا سکتی ہے، مگر فائل سائز کو memory محدود نہیں کرتی۔

PHP limits بڑھانے کے بعد بھی مجھے 413 Request Entity Too Large کیوں ملتا ہے؟

PHP کے سامنے کوئی چیز request کو رد کر رہی ہے۔ Nginx میں یہ client_max_body_size ہے، جس کا default 1m ہے اور حد سے بڑھنے پر 413 error دیتا ہے۔ اسے server block میں بڑھائیں اور Nginx reload کریں۔ اگر آپ کی site Cloudflare سے گزرتی ہے تو اس کے plan کی اپ لوڈ سائز حد بھی request کو آپ کے server تک پہنچنے سے پہلے روک سکتی ہے۔

کیا post_max_size کو upload_max_filesize سے بڑا ہونا چاہیے؟

یہ کم از کم اتنا بڑا ہونا چاہیے، اور تھوڑا بڑا ہونا زیادہ محفوظ ہے۔ فائل دوسرے form data کے ساتھ ایک POST request میں بھیجی جاتی ہے، اس لیے پوری request post_max_size میں شمار ہوتی ہے۔ WordPress دونوں values میں سے چھوٹی کو اپ لوڈ حد بناتا ہے، اس لیے صرف upload_max_filesize بڑھانے سے حد وہیں رہتی ہے۔