پیام «خطای HTTP» هنگام آپلود تصویر در وردپرس، علت فنی مشخصی را بهتنهایی نشان نمیدهد. ممکن است درخواست به محدودیت حجم، خطای PHP، مشکل پردازش تصویر، کمبود فضا یا قانون امنیتی برخورد کرده باشد. راهحل از پیدا کردن پاسخ واقعی درخواست شروع میشود؛ غیرفعالکردن کلی ModSecurity یا افزایش تصادفی منابع، روش تشخیص قابل اتکایی نیست.
با یک آزمون ساده مسئله را محدود کنید
- یک تصویر کوچک و سالم با نام ساده و فرمت مجاز مانند JPEG آپلود کنید. اگر آن هم شکست خورد، مشکل فقط حجم فایل اصلی نیست.
- اگر فقط یک فایل مشکل دارد، ابعاد پیکسلی، سالمبودن و فرمت واقعی آن را بررسی کنید؛ تغییر پسوند، فرمت فایل را تبدیل نمیکند.
- زمان دقیق خطا و مسیر آپلود را ثبت کنید. در ابزار Network مرورگر، پاسخ درخواست آپلود را ببینید؛ اطلاعات نشست و توکنها را در تصویر عمومی منتشر نکنید.
کد پاسخ چه چیزی میگوید؟
| پاسخ یا نشانه | بررسی بعدی |
|---|---|
| 413 | سقف حجم در وبسرور، پراکسی یا PHP |
| 403 | احراز هویت، nonce یا قانون امنیتی WAF |
| 500 یا خطای بحرانی | لاگ PHP و کتابخانه پردازش تصویر |
| قطع درخواست یا timeout | زمان پردازش، ظرفیت worker و ارتباط شبکه |
فضا، مسیر و دسترسی را کنترل کنید
پرشدن حجم یا inode هاست و نامناسببودن مالکیت پوشه uploads میتواند ذخیره را مختل کند. مسیر آپلود و خطای مجوز را از لاگ پیدا کنید؛ مجوز 777 یا تغییر بازگشتی همه فایلها راهحل عمومی نیست. در مهاجرت سایت، مالک فایلها ممکن است با کاربر اجرای PHP تفاوت پیدا کرده باشد و به اصلاح محدود توسط مدیر هاست نیاز داشته باشد.
پردازش تصویر را از دریافت فایل جدا کنید
ممکن است فایل دریافت شود، اما ساخت اندازههای بندانگشتی شکست بخورد. تصویر با ابعاد بسیار بزرگ حتی با حجم فشرده کم، حافظه زیادی میخواهد. یک نسخه با ابعاد متناسب بسازید و رفتار GD یا Imagick فعال روی همان PHP وبسرور را بررسی کنید. نصب دوباره چند افزونه بهینهسازی تصویر بدون آزمون، احتمال تداخل را بیشتر میکند.
برخورد با افزونه یا WAF
تغییر اخیر افزونه، قالب یا محافظت امنیتی را روی کپی آزمایشی بررسی کنید. اگر WAF درخواست را رد کرده، شناسه قانون و زمان رخداد را از پشتیبانی بخواهید. در صورت تأیید خطای مثبت، استثنای محدود و مستند مناسبتر از خاموشکردن سراسری حفاظت است. برای عبور یک فایل، احراز هویت همه مسیرهای upload یا xmlrpc را باز نکنید.
کنترل رفع خطا
پس از اصلاح، فایل کوچک و فایل اصلیِ بهینهشده را جداگانه آزمایش کنید. فقط وجود فایل در پوشه کافی نیست؛ تصویر باید در کتابخانه رسانه، اندازههای موردنیاز و صفحه عمومی درست نمایش داده شود. هر تغییر موقت دیباگ را برگردانید و فایل آزمون غیرضروری را پاک کنید.
مطالعه مرتبط
- رفع خطای 413 Request Entity Too large در وردپرس
- نحوه نصب اکستنشن ImageMagick و Imagick PHP در اوبونتو
منابع و مستندات
بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵.