این خطا یعنی فایل شما از سقفی که PHP برای آپلود گذاشته بزرگ‌تر است. راه رفعش در سی‌پنل است: MultiPHP INI Editor را باز کنید، دامنه را انتخاب کنید و دو مقدار upload_max_filesize و post_max_size را بالا ببرید. تغییر همان لحظه اعمال می‌شود و نیازی به تیکت نیست.

شکل‌های مختلف همین خطا

پیام کجا دیده می‌شود
The uploaded file exceeds the upload_max_filesize directive in php.ini وردپرس، هنگام آپلود قالب، افزونه یا رسانه
«پرونده‌ی بارگذاری‌شده از اندازه‌ی مجاز بزرگ‌تر است» همان، در وردپرس فارسی
413 Request Entity Too Large هر سایتی؛ درخواست از سقف وب‌سرور بزرگ‌تر است
The link you followed has expired وردپرس؛ معمولاً همین مشکل با ظاهر دیگر
آپلود تا آخر می‌رود و بعد صفحه‌ی سفید زمان اجرا یا حافظه کم آمده

چهار مقداری که باید با هم جور باشند

تنظیم کارش پیشنهاد برای سایت معمولی
upload_max_filesize بزرگ‌ترین فایل قابل آپلود 64M تا 128M
post_max_size بزرگ‌ترین درخواست؛ باید از مقدار بالا بیشتر یا مساوی باشد همان یا کمی بیشتر
memory_limit حافظه‌ی هر اجرای PHP؛ باید از post_max_size بیشتر باشد 256M
max_execution_time حداکثر زمان اجرا به ثانیه ۱۲۰ تا ۳۰۰

اگر فقط اولی را بالا ببرید و دومی کوچک بماند، خطا سر جایش می‌ماند. رایج‌ترین اشتباه همین است.

قدم‌به‌قدم در سی‌پنل

  1. در سی‌پنل، بخش Software، روی MultiPHP INI Editor بزنید.
  2. در زبانه‌ی Basic Mode از فهرست، دامنه‌ای را که سایت روی آن است انتخاب کنید. اگر Home Directory را انتخاب کنید، تنظیم برای همه‌ی دامنه‌های هاست اعمال می‌شود.
  3. در جدول، ردیف‌های upload_max_filesize و post_max_size را پیدا کنید و مقدار تازه را بنویسید، مثلاً 128M.
  4. اگر لازم است memory_limit و max_execution_time را هم تنظیم کنید.
  5. پایین صفحه Apply را بزنید.
MultiPHP INI Editor سی‌پنل در حالت Basic Mode با تنظیمات PHP یک دامنه
MultiPHP INI Editor در حالت Basic؛ هر ردیف یک تنظیم PHP است

توضیح همه‌ی گزینه‌های این ابزار در آموزش MultiPHP INI Editor آمده.

مطمئن شوید اعمال شده

  • وردپرس: ابزارها، سلامت سایت، زبانه‌ی اطلاعات، بخش سرور؛ مقدار «حداکثر اندازه‌ی بارگذاری» را نشان می‌دهد. در صفحه‌ی افزودن رسانه هم زیر کادر آپلود نوشته شده.
  • هر سایتی: یک فایل با محتوای <?php phpinfo(); بسازید، بازش کنید، مقدارها را ببینید و بعد فایل را حذف کنید.

تغییر دادم ولی اثر نکرد

علت راه
تنظیم را برای دامنه‌ی دیگری زده‌اید در فهرست، همان دامنه‌ای را انتخاب کنید که سایت رویش است
فایل .user.ini یا php.ini دیگری در پوشه‌ی سایت مقدار را برمی‌گرداند فایل‌های مخفی را نشان دهید و آن را بررسی کنید (نمایش فایل‌های مخفی)
افزونه‌ی امنیتی یا خود قالب سقف جدا گذاشته تنظیمات همان افزونه
مقدار در htaccess با دستور دیگری بازنویسی شده خط‌های php_value را در htaccess ببینید
کش مرورگر چند دقیقه صبر کنید و صفحه را تازه کنید

وقتی فایل واقعاً بزرگ است

برای فایل‌های چندصد مگابایتی، بالا بردن سقف PHP راه خوبی نیست. به‌جایش:

  • فایل را با File Manager سی‌پنل یا FTP مستقیم آپلود کنید. این دو به سقف PHP وابسته نیستند. (کار با File Manager، FTP)
  • قالب و افزونه را به‌صورت zip در پوشه‌ی مربوط آپلود و همان‌جا Extract کنید.
  • برای فایل دیتابیس بزرگ، راه‌های مخصوص خودش هست. (ایمپورت دیتابیس بزرگ)

سوال‌های رایج

تا چه عددی می‌توانم بالا ببرم؟

ابزار هر عددی را می‌پذیرد، ولی سقف واقعی را منابع پلن تعیین می‌کند. مقدار خیلی بزرگ فقط راه را برای خطای حافظه باز می‌کند. برای کار روزمره 128M کافی است.

بعد از آپلود، مقدار را برگردانم؟

لازم نیست، ولی ضرری هم ندارد. سقف آپلود پایین‌تر، سوءاستفاده از فرم‌های آپلود سایت را سخت‌تر می‌کند.

این با خطای Memory Limit یکی است؟

نه. آن خطا درباره‌ی حافظه‌ی اجرای PHP است. (خطای Memory Limit)