رفع خطای آپلود فایل و عکس در وردپرس (HTTP Error)



تقریبا تمام کاربران وردپرس حداقل یک بار با خطای معروف “HTTP Error” هنگام آپلود عکس یا فایل‌های دیگر مواجه شده‌اند. این خطا به خصوص آزاردهنده است، زیرا هیچ اطلاعات دقیقی در مورد دلیل بروز آن به شما نمی‌دهد. دلایل مختلفی، از مشکلات ساده در نام فایل گرفته تا محدودیت‌های پیچیده سرور، می‌توانند باعث بروز این خطا شوند.

این مقاله یک راهنمای جامع و قدم‌به‌قدم برای عیب‌یابی و حل تمام مشکلات رایج مربوط به آپلود فایل در وردپرس است. برای جلوگیری از بسیاری از این خطاها که ریشه در محدودیت منابع دارند، خرید سرور مجازی با منابع کافی، یک قدم اساسی است.

 

قدم اول: راه حل‌های سریع و اولیه

قبل از اینکه به سراغ تنظیمات پیچیده بروید، همیشه با ساده‌ترین راه‌حل‌ها شروع کنید.

 

۱. نام فایل را بررسی کنید

مطمئن شوید که نام فایل شما حاوی کاراکترهای غیرمجاز مانند (@, #, $, %) یا حروف فارسی نیست. همیشه از نام‌های ساده انگلیسی برای فایل‌های خود استفاده کنید.

 

۲. حجم فایل را کاهش دهید

گاهی اوقات، حجم بالای عکس (مثلا بیشتر از ۵ مگابایت) می‌تواند باعث بروز خطا شود. قبل از آپلود، با استفاده از ابزارهای آنلاین یا نرم‌افزارهایی مانند فتوشاپ، حجم عکس خود را بدون افت کیفیت محسوس، کاهش دهید.

 

۳. حافظه پنهان (Cache) مرورگر را پاک کنید

در موارد نادر، ممکن است مشکل از کش مرورگر شما باشد. حافظه پنهان مرورگر خود را پاک کرده و دوباره تلاش کنید.

 

بخش دوم: بررسی‌های داخل وردپرس

اگر راه حل‌های سریع جواب نداد، مشکل به احتمال زیاد از تداخل در خود وردپرس یا محدودیت‌های آن است.

 

۱. غیرفعال کردن تمام افزونه‌ها

تداخل افزونه‌ها، به خصوص افزونه‌های بهینه‌سازی تصویر، یکی از شایع‌ترین دلایل بروز این خطاست. تمام افزونه‌های خود را غیرفعال کرده و دوباره آپلود را امتحان کنید. اگر مشکل حل شد، افزونه‌ها را یکی‌یکی فعال کنید تا افزونه مشکل‌ساز را پیدا کنید.

 

۲. افزایش حافظه PHP وردپرس

وردپرس برای پردازش تصاویر به حافظه (RAM) نیاز دارد. اگر حافظه اختصاص داده شده به PHP کم باشد، فرآیند آپلود با خطا مواجه می‌شود. برای افزایش آن:

  1. فایل wp-config.php در ریشه هاست خود را باز کنید.
  2. کد زیر را قبل از خط /* That's all, stop editing! Happy publishing. */ اضافه کنید:
define( 'WP_MEMORY_LIMIT', '256M' );

 

بخش سوم: تنظیمات سمت سرور و هاستینگ

اگر همچنان مشکل پابرجاست، به احتمال زیاد دلیل آن به تنظیمات و محدودیت‌های سرور شما باز می‌گردد. برای دسترسی به این تنظیمات، خرید vps به شما کنترل کاملی می‌دهد.

 

۱. بررسی دسترسی‌ها (Permissions) پوشه uploads

وردپرس برای آپلود فایل‌ها نیاز به دسترسی نوشتن (Write) در پوشه /wp-content/uploads/ دارد. مطمئن شوید که دسترسی این پوشه و تمام زیرپوشه‌های آن روی 755 تنظیم شده باشد.

 

۲. افزایش محدودیت‌های PHP در سرور

سرور شما محدودیت‌هایی برای حجم آپلود و زمان اجرای اسکریپت‌ها دارد. برای افزایش این مقادیر، می‌توانید کد زیر را به فایل .htaccess در ریشه هاست خود اضافه کنید:

<IfModule php7_module>
    php_value upload_max_filesize 64M
    php_value post_max_size 64M
    php_value max_execution_time 300
    php_value max_input_time 300
</IfModule>

اگر از cPanel استفاده می‌کنید، می‌توانید این مقادیر را به راحتی از بخش “MultiPHP INI Editor” نیز تغییر دهید.

 

۳. اطمینان از نصب بودن کتابخانه GD یا Imagick

وردپرس برای پردازش تصاویر به یکی از این دو کتابخانه PHP نیاز دارد. در بخش “سلامت سایت” (Site Health) در پیشخوان وردپرس، می‌توانید از نصب بودن آن‌ها مطمئن شوید. اگر نصب نبودند، باید از طریق WHM یا با کمک پشتیبانی هاست خود آن‌ها را فعال کنید.

 

۴. بررسی فایروال وب اپلیکیشن (ModSecurity)

گاهی اوقات فایروال سرور (ModSecurity) ممکن است به اشتباه فرآیند آپلود را به عنوان یک فعالیت مخرب شناسایی و مسدود کند. برای بررسی این مورد، می‌توانید به صورت موقت کد زیر را در فایل .htaccess خود قرار دهید:

<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

 

اگر با اضافه کردن این کد مشکل حل شد، به این معنی است که یکی از قوانین فایروال باعث بروز مشکل شده و باید از پشتیبانی هاست خود بخواهید آن را برای شما بررسی و اصلاح کند. نگه داشتن این کد به صورت دائمی، امنیت سایت شما را کاهش می‌دهد.