آخرین بروزرسانی در تاریخ جولای 18, 2026 توسط PersiaWebAdmin
وقتی دکمهٔ آپلود دشمن شما میشود
سناریوی تکراری: یک فایل ویدئویی ۲۰ مگابایتی آماده کردهاید، یا یک قالب حرفهای با حجم ۱۵ مگابایت خریداری نمودهاید، به بخش «افزودن رسانه» میروید، فایل را انتخاب میکنید و… هیچ. فقط یک جملهٔ بیروح: «حداکثر حجم آپلود: ۲ مگابایت». گاهی حتی پیغام خطایی هم نمیبینید و صفحه برای همیشه در حال چرخیدن میماند.
این محدودیت آزاردهنده، یکی از شایعترین موانعی است که هر مدیر سایت وردپرسی حداقل یکبار با آن برخورد کرده است. نکتهٔ گمراهکننده اینجاست: محدودیت از طرف خود وردپرس نیست. این سرور (وبسرور Apache/Nginx) و زبان برنامهنویسی PHP هستند که برای حفظ امنیت و پایداری، دست شما را میبندند.
در این راهنما، ابتدا به شما میگویم همین الان محدودیت واقعی شما چقدر است (بدون حدس)، سپس ۸ روش مختلف را از سادهترین (بدون دانش فنی) تا تخصصیترین (برای مدیران سرور) آموزش میدهم. در انتها هم اگر همه چیز شکست خورد، یک چکلیست عیبیابی کامل داریم.

چه چیزی واقعاً آپلود را محدود میکند؟ (۴ زنجیر که باید با هم پاره شوند)
برای افزایش حجم آپلود، فقط یک عدد را تغییر نمیدهیم؛ بلکه باید ۴ تنظیم کلیدی PHP را به صورت هماهنگ افزایش دهیم. در غیر این صورت، زنجیر پاره نمیشود و ارورهای عجیبی دریافت میکنید.
| تنظیم | توضیح ساده | قانون طلایی |
|---|---|---|
upload_max_filesize | حداکثر حجم هر فایل تکی | عددی که در خطای وردپرس میبینید معمولاً همین است. |
post_max_size | حداکثر حجم کل دادههای ارسالی (مثلاً چند فایل همزمان + متن) | باید بزرگتر از upload_max_filesize باشد. |
memory_limit | حافظهٔ RAM که PHP اجازه مصرف دارد | پردازش و فشردهسازی تصاویر، حافظه میخواهد. |
max_execution_time | مدت زمان (ثانیه) که PHP منتظر اتمام کار میماند | آپلود فایل حجیم با اینترنت کند، زمان میبرد. |
مثال: اگر میخواهید فایل ۶۴ مگابایتی آپلود کنید، upload_max_filesize=64M و post_max_size حداقل 68M (ترجیحاً 128M اگر چند فایل همزمان آپلود میکنید). memory_limit را هم روی 256M و max_execution_time را روی 300 ثانیه قرار دهید.

پیشنهاد مطالعه : راهنمای جامع و تخصصی حذف متن کپیرایت فوتر در وردپرس
قدم صفر: محدودیت فعلی خود را دقیق بشناسید (بدون حدس و گمان)
قبل از هر تغییری، ببینید الان چه اعدادی روی سرور شما حاکم است.
الف) سادهترین راه (پیشخوان وردپرس):
به رسانه > افزودن جدید بروید. در اکثر سایتها، پایین کادر آپلود نوشته شده: «حداکثر حجم آپلود: X مگابایت». این عدد upload_max_filesize است.
ب) دقیقترین راه (ساخت فایل phpinfo):
۱. یک فایل جدید با نام check.php روی دسکتاپ بسازید.
۲. داخل آن این کد را بچسبانید و ذخیره کنید:
<?php
phpinfo();
?>

۳. با FTP یا File Manager هاست، فایل را به ریشهٔ سایت (جایی که wp-config.php است) منتقل کنید.
۴. در مرورگر به yourdomain.com/check.php بروید. یک صفحهٔ طولانی با تمام اطلاعات PHP میبینید. Ctrl+F بزنید و مقادیر زیر را پیدا کنید: upload_max_filesize، post_max_size، memory_limit، max_execution_time.
۵. مهم: بعد از بررسی، فایل check.php را حتماً حذف کنید چون اطلاعات حساس سرور را نمایش میدهد.
ج) از طریق ابزار سلامت سایت وردپرس:
به ابزارها > سلامت سایت بروید. روی زبانهٔ «اطلاعات» کلیک کرده و بخش «سرور» را باز کنید. محدودیتهای اصلی PHP را میتوانید آنجا ببینید. البته ممکن است بعضی مقادیر مثل post_max_size را نشان ندهد، پس روش phpinfo دقیقتر است.
پیشنهاد مطالعه : راهنمای رفع خطای “ایجاد اتصال به پایگاه داده” در وردپرس
روشهای افزایش حجم آپلود — ۸ راهکار از مبتدی تا پیشرفته
اصل موضوع: محل قرار دادن کدها بستگی به نوع وبسرور و سطح دسترسی شما دارد. ما از سادهترین به پیچیدهترین پیش میرویم.
روش ۱: ویرایش فایل .htaccess (مناسب ۸۰٪ کاربران هاست اشتراکی)
اگر هاست شما از Apache (یا Litespeed) استفاده میکند (اکثر هاستهای ایرانی مثل ایرانسرور، پارسپک و…)، این سریعترین و امنترین راه است.
۱. با File Manager هاست یا FTP به ریشهٔ سایت بروید (پوشهای که wp-config.php در آن است).
۲. فایل .htaccess را پیدا کنید (اگر نیست، یک فایل جدید با همین نام بسازید). قبل از هر تغییری یک بکاپ از این فایل بگیرید.
۳. کد زیر را در انتهای فایل اضافه کنید:
<IfModule mod_php.c> php_value upload_max_filesize 64M php_value post_max_size 68M php_value max_execution_time 300 php_value memory_limit 256M </IfModule>

نکته: بهتر است کدها را داخل تگ <IfModule mod_php.c> بگذارید تا اگر PHP بهعنوان CGI اجرا میشود، خطای ۵۰۰ ندهد.
۴. فایل را ذخیره کرده و یک بار دیگر محدودیت را چک کنید.
اگر با خطای ۵۰۰ مواجه شدید: یعنی هاست شما php_value را پشتیبانی نمیکند. کدها را پاک کنید و به روش بعدی بروید.
روش ۲: ویرایش فایل php.ini یا .user.ini (استاندارد طلایی cPanel)
در بسیاری از هاستها، شما میتوانید یک فایل php.ini محلی (Local) برای خودتان بسازید تا تنظیمات PHP را فقط برای سایت خودتان لغو (Override) کند.
۱. یک فایل جدید با نام php.ini روی دسکتاپ ایجاد کنید.
۲. کد زیر را در آن قرار دهید:
upload_max_filesize = 64M post_max_size = 68M max_execution_time = 300 memory_limit = 256M
۳. این فایل را در ریشهٔ سایت آپلود کنید.
۴. حالا مهمترین نکته: فایل php.ini را یک بار دیگر در پوشهٔ /wp-admin/ هم آپلود کنید (چون گاهی وردپرس تنظیمات را از آن مسیر میخواند).
۵. محدودیت را دوباره چک کنید.
اگر جواب نداد:
- نام فایل را به
php.iniتغییر دهید (برخی هاستها فقط این نام را میشناسند). - اگر از cPanel استفاده میکنید، گزینهٔ سادهتر: به MultiPHP INI Editor بروید (در بخش Software)، دامنهٔ خود را انتخاب کرده و مستقیماً مقادیر را تغییر دهید.
روش ۳: کدنویسی در wp-config.php (نیمهموفق)
فایل wp-config.php قلب وردپرس است. میتوانیم با افزودن چند خط کد، حافظه و زمان اجرا را زیاد کنیم. اما نمیتوانیم به طور قطع upload_max_filesize را از اینجا تغییر دهیم (چون از نوع PHP_INI_PERDIR است و با ini_set روی اکثر هاستها جواب نمیدهد). با این حال، امتحانش ضرر ندارد.
کد زیر را در wp-config.php، درست قبل از خطی که میگوید /* That's all, stop editing! */ اضافه کنید:
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '68M');
@ini_set('memory_limit', '256M');
@ini_set('max_execution_time', 300);
نتیجه: اگر خوششانس باشید و هاست تنظیمات سختگیرانه نداشته باشد، مشکل حل میشود. در غیر این صورت، بدون هیچ خطایی، تغییری اعمال نمیشود.
روش ۴: کدنویسی در functions.php (آخرین شانس برنامهنویسی)
دقیقاً مشابه روش قبل، کد زیر را در انتهای فایل functions.php پوستهٔ فرزند (Child Theme) خود اضافه کنید (هرگز پوستهٔ اصلی را ویرایش نکنید):
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '68M');
@ini_set('memory_limit', '256M');
@ini_set('max_execution_time', 300);
روش ۵: استفاده از افزونه (برای کسانی که با کد میانه خوبی ندارند)
اگر هیچکدام از روشهای بالا را متوجه نشدید یا راحت نیستید، افزونهها معجزه میکنند:
- افزونهٔ Increase Max Upload File Size: افزونهای بسیار ساده و سرراست. فقط نصب کنید، در صفحهٔ افزونه مقادیر فعلی را میبینید و میتوانید آنها را افزایش دهید.
- افزونهٔ WP Max Upload Size: مقادیر را در یک رابط گرافیکی نشان میدهد و توضیح میدهد که کدام یک از روشهای دستی (htaccess, php.ini) را امتحان کرده و جواب داده است.
محدودیت: این افزونهها هم دقیقاً همان کاری را انجام میدهند که شما به صورت دستی انجام میدهید. اگر هاست قفل کرده باشد، افزونه هم شکست میخورد.
روش ۶: تنظیمات مستقیم در هاست (cPanel / DirectAdmin)
اگر از کنترل پنل استفاده میکنید، بهترین و قدرتمندترین راه همین جاست:
- cPanel: به Select PHP Version بروید. روی Options یا Switch to PHP Options کلیک کنید. در صفحهٔ بازشده، میتوانید اسلایدرهای
upload_max_filesize،post_max_size،memory_limitوmax_execution_timeرا مستقیماً تغییر دهید. - DirectAdmin: در بخش Account Manager روی PHP Settings کلیک کنید. میتوانید فایل
php.iniاختصاصی دامنه را به صورت گرافیکی ویرایش کنید.
روش ۷: تنظیمات NGINX (برای سرورهای ابری و VPS)
اگر هاست شما از NGINX استفاده میکند (مثلاً در لینود، دیجیتال اوشن، یا سرورهای اختصاصی)، .htaccess بیتأثیر است. اینجا دو قدم داریم:
قدم اول) فایل Nginx:
در فایل کانفیگ سایت (مثلاً /etc/nginx/sites-available/yourdomain)، داخل بلاک server خط زیر را اضافه کنید:
client_max_body_size 64M;
قدم دوم) فایل PHP-FPM:
در فایل www.conf (معمولاً در /etc/php/8.x/fpm/pool.d/) این مقادیر را تنظیم کنید:
php_admin_value[upload_max_filesize] = 64M php_admin_value[post_max_size] = 68M php_admin_value[max_execution_time] = 300 php_admin_value[memory_limit] = 256M
سپس هم NGINX و هم PHP-FPM را ریاستارت کنید.
روش ۸: تماس با پشتیبانی هاست (آخرین راهحل قطعی)
اگر پس از امتحان همهٔ روشها همچنان محدودیت تغییر نکرده، احتمالاً شرکت هاستینگ تنظیمات PHP را در سطح سرور (Master Value) قفل کرده است. یک تیکت ساده به پشتیبانی بزنید و بنویسید:
«لطفاً مقدار
upload_max_filesizeرا برای حساب کاربری من به ۶۴ مگابایت وpost_max_sizeرا به ۶۸ مگابایت افزایش دهید.»
معمولاً در هاستهای معتبر، این کار ظرف چند دقیقه انجام میشود.
بخش ویژه: وردپرس چندسایته (Multisite)
اگر شبکهٔ وردپرس دارید، یک لایهٔ محدودیت اضافی وجود دارد. بعد از افزایش محدودیتهای PHP، باید به پیشخوان شبکه > تنظیمات > تنظیمات بارگذاری بروید و فیلد «حداکثر اندازهٔ فایل بارگذاری» را به کیلوبایت (مثلاً 64000 برای ۶۴MB) تغییر دهید. این عدد نمیتواند از upload_max_filesize در PHP بیشتر باشد.
تنظیمات امنیتی: چقدر افزایش دهیم و از چه خطراتی بپرهیزیم؟
- حجم ایدهآل: برای ۹۰٪ وبسایتها (حتی فروشگاهی)، حجم ۳۲ تا ۶۴ مگابایت برای رسانهها کافی است. فایلهای ویدئویی بهتر است روی سرویسهای ابری (مثل آپارات) آپلود و لینک شوند.
- خطر امنیتی: افزایش حجم آپلود به ۲۵۶ مگابایت یا بیشتر، یعنی یک کاربر خرابکار میتواند با آپلود همزمان چند فایل حجیم، RAM و CPU سرور شما را بخورد و سایت را از دسترس خارج کند (DoS).
- فایروال: گاهی اوقات ModSecurity یا افزونههای امنیتی، آپلود فایلهای حجیم را حمله تلقی کرده و مسدود میکنند. اگر بعد از همهٔ تغییرات خطای «Forbidden» دیدید، این مورد را با پشتیبانی هاست چک کنید.
- فضای دیسک: فراموش نکنید که با باز کردن دروازهٔ آپلود فایلهای ۶۴ مگابایتی، حجم هاست شما زودتر از چیزی که فکرش را بکنید پر میشود.
پیشنهاد مطالعه : راهنمای افزایش حافظه وردپرس (رفع خطای Memory Size Error)
عیبیابی نهایی: چرا با وجود همهٔ این کارها، محدودیت تغییر نمیکند؟
اگر صفحهٔ «افزودن رسانه» همچنان عدد قدیمی را نشان میدهد، ناامید نشوید و این چکلیست را بررسی کنید (۹۰٪ مواقع یکی از اینها مقصر است):
۱. کَش (Cache): کش مرورگر (Ctrl+F5)، کش وردپرس (افزونهٔ کش مثل WP Rocket) و کش سرور (مثل لایتاسپید Cache) را کاملاً خالی کنید. حتی گاهی CDN (مثل Cloudflare) هم کش کرده است.
۲. محدودیت Cloudflare: اگر از Cloudflare رایگان استفاده میکنید، حداکثر آپلود رایگان آنها ۱۰۰ مگابایت است. اگر فایل شما ۱۰۱ مگابایت است و همه تنظیمات درست، مشکل از Cloudflare است.
۳. مالکیت فایلها (Permissions): اگر پوشهٔ wp-content/uploads مجوز نوشتن (مثلاً ۷۵۵) نداشته باشد، فایل آپلود نمیشود. خطای واقعی را با فعالسازی WP_DEBUG در wp-config.php ببینید:
define('WP_DEBUG', true);
۴. فایل php.ini در جای درستی نیست: در برخی هاستها، فایل .user.ini یا php.ini باید دقیقاً در پوشهای باشد که اسکریپت در حال اجراست. امتحان کنید فایل را یک بار دیگر در /wp-admin/ هم کپی کنید.
۵. Suhosin یا محدودیتهای امنیتی سرور: در صفحهٔ phpinfo() عبارت suhosin را جستجو کنید. اگر suhosin.upload.max_size فعال باشد، یک سقف شیشهای برای شما تعیین میکند که از طریق php.ini شکسته نمیشود. باید با پشتیبانی تماس بگیرید.
۶. خطای HTTP Error هنگام آپلود: این خطا معمولاً به memory_limit ناکافی یا مشکل mod_security برمیگردد. حافظه را به ۲۵۶M افزایش دهید و از هاست بپرسید آیا ModSecurity آپلود را بسته است.
۷. ارور آماده نبودن فایل (The uploaded file could not be moved): یعنی PHP نتوانسته فایل را از پوشهٔ موقت (tmp) به پوشهٔ اصلی منتقل کند. معمولاً مشکل از مالکیت پوشههاست. پشتیبانی هاست در ۲ دقیقه حلش میکند.
پیشنهاد مطالعه :راهنمای جامع تأمین امنیت وبسایت
چکلیست نهایی و جمعبندی
اگر میخواهید یک بار برای همیشه خیالتان را راحت کنید، به ترتیب از این مسیر بروید:
- ۱. با
phpinfo()چهار مقدار اصلی (upload, post, memory, time) را یادداشت کنید. - ۲. سادهترین روش: فایل
.htaccessرا با کدهای بخش ۴.۱ ویرایش کنید. - ۳. اگر خطای ۵۰۰ گرفتید: فایل
php.iniرا با کدهای بخش ۴.۲ بسازید و هم در ریشه و هم درwp-adminآپلود کنید. - ۴. اگر از cPanel استفاده میکنید: مستقیم از بخش MultiPHP INI Editor مقادیر را تغییر دهید.
- ۵. اگر از افزونههای کش یا Cloudflare استفاده میکنید: تمام کشها را خالی کنید.
- ۶. تست نهایی: یک فایل دقیقاً هماندازه با سقف جدید آپلود کنید. اگر خطای «HTTP Error» یا «Forbidden» گرفتید، سراغ بخش عیبیابی شماره ۷ بروید.
- ۷. اگر هیچ چیز جواب نداد، مستقیماً از پشتیبانی هاست بخواهید مقادیر را برایتان تنظیم کند.
با انجام این مراحل، محدودیتهای آپلود دیگر مانع شما نخواهند بود. اگر همچنان با خطای خاصی مواجه هستید یا نیاز به کمک فوری دارید، میتوانید از خدمات پشتیبانی فنی پرشیا وب استفاده کنید. ما در پرشیا وب تمام این مراحل را برای شما انجام میدهیم تا بدون درگیری با کد، فایلهای حجیم خود را آزادانه آپلود کنید.
اگر با هیچ روشی موفق نشدید، با پشتیبانی وبسایت یا هاست خود تماس بگیرید یا پلن هاستینگ خود را ارتقا دهید.
بنیامین ولادوست، بنیانگذار و مدیر تیم تخصصی پرشیا وب، بیش از یک دهه تجربه حرفهای در عرصۀ طراحی وبسایت، سئو، تولید محتوا، فروش رپورتاژ و بکلینک دارد. او با ترکیب دانش فنی و درک عمیق از رفتار کاربران، به برندها و کسبوکارها کمک میکند تا نهتنها ظاهر دیجیتال قدرتمندی داشته باشند، بلکه در نتایج جستجوی گوگل هم بدرخشند.
از سال ۲۰۱۳ فعالیت حرفهای خود را در حوزه طراحی وب آغاز کرد و تاکنون بیش از 300 پروژه طراحی سایت و بهینهسازی سئو در صنایع مختلف اجرا کرده است. تجربه عملی او در پروژههای واقعی، به ویژه در کسبوکارهای ایرانی، موجب شده است بتواند راهکارهایی کاملاً کاربردی و بومی برای رشد آنلاین ارائه دهد.
طراحی و توسعه وبسایتهای شرکتی، فروشگاهی و شخصی با تمرکز بر سرعت، امنیت و تجربه کاربری (UX)
استراتژیهای سئو فنی، on-page و off-page برای افزایش رتبه در نتایج گوگل
تحلیل رقبا، تحقیق کلمات کلیدی و اجرای کمپینهای تولید محتوا
مشاوره و اجرای رپورتاژ آگهی و لینکسازی هدفمند برای بهبود اعتبار دامنه
طراحی کمپینهای دیجیتال مارکتینگ یکپارچه برای برندهای نوپا و فعال
مطالب آموزشی و مقالات سئویی که توسط بنیامین ولادوست در وبلاگ “پرشیا وب” منتشر میشوند، بر پایه جدیدترین الگوریتمهای گوگل و استانداردهای جهانی تدوین شدهاند. او به عنوان متخصص مورد اعتماد در حوزه دیجیتال مارکتینگ، تاکنون در بیش از ۲۰ مجموعه آموزشی و ورکشاپ تخصصی سخنرانی و تدریس داشته است. بسیاری از کسبوکارهای آنلاین موفق، مسیر رشد خود را با آموزشها و راهنماییهای او آغاز کردهاند.
تمام راهکارها و خدماتی که توسط بنیامین ولادوست و تیم “پرشیا وب” ارائه میشوند، بر پایه صداقت، شفافیت و تحلیل دادههای واقعی بنا شدهاند. هدف او ارائه مشاورهای است که نه بر اساس تبلیغات، بلکه بر پایه داده و عملکرد واقعی کسبوکارها باشد.