در ادامه مقالات آموزش وردپرس در این مقاله به موضوع خطا 413 request entity too large که یکی از خطاهای رایج در وردپرس است میپردازیم. در این مقاله ضمن معرفی این خطای رایج در وردپرس راههای رفع آن را هم به شما آموزش میدهیم.
خطای 413 Request Entity Too Large چیست؟
شاید برای شما هم پیش آمده باشد که بخواهید یک افزونه ، قالب ، عکس یا هر نوع فایل دیگری را روی هاست سایت وردپرسی خود بارگذاری کنید ولی به علت حجم بالای آن فایل ، امکان آپلود آن فایل وجود نداشته باشد. خطای 413 Request Entity Too Large زمانی رخ میدهد که کاربر نتواند فایل مورد نظر خود را روی هاست سایت وردپرسی بارگذاری کند و علت آن هم این است که هاست برای حجم فایلی که آپلود میشود یک محدودیت قرار داده و نمیتوان در آن فایلی با حجم بیش از حداکثر مقداری که تعیین شده است آپلود کرد.
نحوه رفع خطای 413 Request Entity Too large
قبل از این که به دنبال راهی برای حل مشکل413 Request Entity Too Large باشید در گام اول مجوزهای سرور را بررسی کنید که آیا کاربر اجازه آپلود فایل حجیم را دارد زیرا ممکن است در بخش تنظیمات دسترسی کاربران ، به یک یا چند کاربر اجازه آپلود فایل حجیم داده نشده باشد اگر محدودیتی در مجوزها برای آپلود فایل وجود نداشت برای رفع خطا میتوان از روشهایی که در ادامه این مقاله بیان میکنیم استفاده کنید.
برای رفع این خطا چند راه حل ساده وجود دارد که این راه حلها شامل موارد زیر میشود:
- استفاده از پروتکل FTP یا SFTP برای آپلود فایلهای حجیم روی هاست
- ویرایش فایل php وردپرس برای افزایش حداکثر حجم قابل آپلود
- ویرایش فایل htaccess. وردپرس برای افزایش حداکثر حجم قابل آپلود
استفاده از پروتکل FTP یا SFTP برای آپلود فایلهای حجیم روی هاست
یکی از راههای دور زدن محدودیت حداکثر حجم قابل آپلود روی سایتهای وردپرسی استفاده از پروتکلهای انتقال فایل مثل FTP یا SFTP است که با استفاده از آنها میتوان فایلهای حجیم را روی هاست آپلود کرد برای استفاده از این پروتکلها میتوان از برنامه هایی مثل Filezila هم استفاده کرد.
برای انتقال فایل روی هاست سایت وردپرسی ، باید فایل مورد نظر را در محل درست آن فایل آپلود کرد برای مثال اگر میخواهید یک افزونه حجیم را روی هاست سایت وردپرسی آپلود کنید باید آن را در بخش پلاگینها که در مسیر زیر قرار دارد آپلود کنید:
Wp-content -> plugins
بعد از آپلود فایل زیپ افزونه باید به مسیر بالا روی هاست بروید و با کلیک روی گزینه Extract آن را از حالت فشرده خارج کنید تا افزونه در پنل مدیریت سایت اضافه شود و در صورت نیاز میتوان آن را از بخش پلاگینها در پنل مدیریت سایت فعال کرد.
همانطور که در تصویر زیر میبینید روی هاست سایت وردپرسی فایلها و پوشه های زیادی وجود دارد برای مثال پوشه plugins برای افزونه ها و پوشه themes برای قالبهای سایت وردپرسی است.
به همین راحتی و با استفاده از پروتکلهای انتقال فایل مثل FTP و SFTP میتوان خطای 413 Request Entity Too large را دور زد و هر تعداد فایل حجیم که مورد نیاز است را روی هاست آپلود کرد البته در آپلود فایلهای حجیم باید میزان حافظه هاست سایت را هم در نظر داشت زیرا هر هاست میزان حافظه مشخص و محدودی دارد.
ویرایش فایل php وردپرس برای افزایش حداکثر حجم قابل آپلود
برای افزایش حداکثر حجم قابل آپلود روی هاست سایت وردپرسی میتوان از فایل functions.php استفاده کرد برای این منظور ابتدا از طریق پنل مدیریت هاست یا حتی با استفاده از پروتکل FTP از بخش روت فایلهای هاست که در Cpanel فایل public_html است فایل functions.php را پیدا کنید و آن را با یک ویرایشگر متن مثل Notepad++ باز کنید و کدهای زیر را به آن اضافه کنید :
@ini_set( ‘_max_size’ , ’64M’ );
@ini_set( ‘post_max_size’, ’64M’);
@ini_set( ‘max_execution_time’, ‘300’ );
با اضافه کردن این 3 خط کد به فایل functions.php ضمن افزایش حداکثر حجم قابل آپلود روی هاست به 64 مگابایت ، حداکثر زمان آپلود فایل نیز افزایش می یابد.
اگر نیاز به آپلود فایلی با حجم بیشتر از 64 مگابایت بود میتوان سقف حجم آپلود را بیش از این مقدار در نظر گرفت.
ویرایش فایل htaccess. وردپرس برای افزایش حداکثر حجم قابل آپلود
روش دیگر افزایش حداکثر حجم قابل آپلود روی هاست سایت وردپرسی اصلاح فایل htaccess. است البته تفاوت فایل .htaccess با functions.php این است که این فایل شامل پیکربندی برای سرورهای آپاچی است و معمولا به صورت hidden است.
برای افزایش حداکثر حجم قابل آپلود روی هاست با استفاده از فایل .htaccess باید از طریق پنل مدیریت هاست سایت این فایل را در بین فایلهای هاست پیدا کنید و آن را با استفاده از یک ویرایشگر متن مثل Notepad++ باز کنید و چند خط کد زیر را به این فایل اضافه کنید:
php_value upload_max_filesize 64Mphp_value post_max_size 64Mphp_value max_execution_time 300php_value max_input_time 300
البته این چند خط کد باید مطابق شکل زیر به انتهای فایل .htaccess و بعد از بخش # END WordPress اضافه شود :
بعد از اضافه کردن این چند خط کد ، آن را ذخیره کنید و دوباره سعی کنید فایل مورد نظرتان را آپلود کنید.
با افزایش حداکثر حجم قابل آپلود روی هاست به راحتی میتوان خطای 413 Request Entity Too large را رفع کرد.
افزایش حجم آپلود با ویرایش فایل ini برای افزایش حداکثر حجم قابل آپلود
در فایل php.ini میتوان تنظیمات پیشفرض php را تعریف کرد و حداکثر حجم قابل آپلود فایل را نیز افزایش داد.
برای پیدا کردن فایل php.ini در بین فایلهای وردپرس باید در پنل مدیریت هاست به دنبال این فایل بود و اگر هم این فایل را پیدا نکردید میتوانید مطابق شکل زیر آن را ایجاد کنید.
سپس با استفاده از یک ویرایشگر متن دو خط کد زیر را به فایل php.ini اضافه کنید تا حداکثر حجم قابل آپلود به 32 مگابایت افزایش یابد.
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
بعد از وارد کردن این دو خط کد در php.ini آن را ذخیره کنید.
البته باید به این نکته توجه داشته باشید که برخی از هاستها اجازه تغییر فایل php.ini را نمیدهند و در این موارد باید به دنبال روش دیگری بود.
پیکربندی سرور Nginx برای افزایش حجم فایل قابل آپلود
روش بعدی برای حل خطای 413 Request Entity Too large مختص سایتهایی است که از سرور Nginx استفاده میکنند که هدف این مرحله مثل اصلاح فایل .htaccess است با این تفاوت که در این حالت با سرور سروکار داریم. در سرورهای Nginx برخلاف سرورهای آپاچی ، فایل .htaccess وجود ندارد و به جای این فایل در سرورهای Nginx باید به دنبال فایل nginx.conf بود
البته در سایتهایی که از سرور Nginx استفاده میکنند باید هر دو فایل php.ini و nginx.config را اصلاح کرد.
در سرور Nginx فایل php.ini را در مسیر زیر میتوان یافت:
/etc/php/7.4/fpm/php.ini
بسته به اینکه کدام نسخه PHP را نصب کرده اید، مسیر دقیق ممکن است کمی متفاوت باشد.
بعد از یافتن فایل php.ini باید مطابق آنچه در بخش قبلی همین مقاله بیان شد دو خط کد زیر را به این فایل اضافه کنیم:
upload_max_filesize = 64M
post_max_size = 128M
بعد از ذخیره فایل php.ini تغییرات با راه اندازی مجدد PHP-FPM با استفاده از کد زیر فعال میشوند
sudo service php7.4-fpm restart
البته کد بالا با توجه به نسخه PHP شما ممکن است کمی متفاوت باشد.
در مرحله بعدی برای افزایش حجم آپلود فایل باید مقدار فیلد
client_max_body_size در فایل nginx.config را با دستور زیر افزایش داد
http {
…
client_max_body_size 128M;
}
تغییرات را ذخیره کنید و با دستور زیر Nginx را مجددا راه اندازی کنید تا تغییرات اعمال شود:
sudo service nginx reload
که با اجرای مراحل بالا حداکثر حجم قابل آپلود روی هاست سایت وردپرسی افزایش مییابد و دیگر مشکلی برای آپلود فایلهای حجیم در وردپرس ایجاد نمیشود.
کلام آخر
در این مقاله در مورد خطای 413 Request Entity Too large که یکی از خطاهای رایج در وردپرس است صحبت کردیم و راههای رفع این مشکل را هم به شما آموزش دادیم. برای رفع این مشکل میتوان فایل را از طریق پروتکلهای انتقال فایل مثل FTP منتقل کرد یا با ایجاد برخی تغییرات در برخی فایلهای وردپرس حداکثر حجم قابل آپلود را افزایش داد تا این خطا ایجاد نشود البته اگر خواستید تغییراتی در فایلهای وردپرس ایجاد کنید حتما یک نسخه بکآپ از آنها داشته باشید تا در صورت بروز مشکل استفاده کنید. امیدواریم این مقاله برای شما مفید بوده باشد اگر هر گونه انتقاد یا پیشنهادی در مورد این مقاله داشتید خوشحال میشویم از طریق کانالهای ارتباطی با ما در میان بگذارید.
سجاد ارجمند 3 سال عضو همیار وردپرس
خیلی خوب بود ممنون
من از سرور nginx استفاده میکنم و با مقاله شما به راحتی و در سریعترین زمان ممکن تونستم این خطا رو برطرف کنم
bahareh koohestani 11 سال عضو همیار وردپرس
سلام
موفق باشید دوست عزیز