جديدالجمعة السوداء: خصم ٥٠٪ على دفعتك الأولى
استكشاف أخطاء ووردبريس

خطأ HTTP عند تحميل الصور

نقل الملف ، ثم فشل شيء ما أثناء قيام WordPress بإنشاء الصور المصغرة. الرسالة هي نفسها مهما كان هذا الشيء.

HTTP error.

الإجابة المختصرة

التحميل نفسه يعمل. الفشل في مرحلة ما بعد المعالجة. جرب نفس الصورة بحجم بكسل أصغر - إذا نجح ذلك ، فإن السبب هو الذاكرة أو مكتبة الصور بدلاً من أي شيء يتعلق بالشبكة أو نوع الملف.

التشخيص

الأسباب الأرجح أولًا.

افحص القائمة بالترتيب. يتيح لك كل فحص تأكيد السبب أو استبعاده قبل تغيير أي شيء، لأن الحلول تختلف والتخمين يكلّف أكثر من تنفيذ أمر للتحقق.

السببكيفية التحققالإصلاح
حجم ينفد من الذاكرةتفشل الصور ذات الأبعاد الكبيرة بينما تنجح الصور الصغيرة من نفس التنسيق. يهم عدد البكسل هنا ، وليس حجم الملف: تحتاج 6000 4000 PNG إلى ذاكرة أكثر بكثير مما تشير إليه ميغابايت.رفع memory_limit للطلب. يجب أن تتناسب الصورة النقطية غير المضغوطة للعرض الارتفاع 4 بايت مع الذاكرة قبل كتابة أي شيء.
ImageMagick مفقود أو مكسور أو مغطى بالمواردلا تسرد Site Health أي وحدة معالجة للصور ، أو سياسة ImageMagick الخاصة.xml قبعات الذاكرة والمنطقة أدناه ما تحتاجه الصورة.تثبيت أو إصلاح ملحق Imagick ، أو رفع الحدود في سياسة ImageMagick.xml. إجبار WordPress على استخدام GD بدلاً من ذلك هو الحل السريع عندما لا يكون أي منهما ممكنًا.
قاعدة أمنية ترفض الطلبفشل التحميل على الفور بدلاً من التوقف بعد فترة ، وسجل خادم الويب أو سجل WAF الرفض في اللحظة التي نقرت فيها.ابحث عن قاعدة التشغيل وإعفاء async-upload.php للمحررين المصادق عليهم. مجموعة القواعد الافتراضية لـ ModSecurity هي المصدر المعتاد على أكوام نمط cPanel.
أوقات الطلب خارج منتصف الحجمالمتصفح ينتظر وقتا طويلا ثم يبلغ عن الخطأ، ويظهر سجل PHP أن الطلب قد قتل بدلا من الانتهاء.رفع max_execution_time لطلبات المشرف ، أو تحميل صورة أصغر. يتم إنشاء العديد من أحجام الصور المصغرة في طلب واحد ، وبالتالي فإن العمل هو مجموع كل منهم.
الدليل

الإصلاح خطوة بخطوة.

تفترض الأوامر توفر WP-CLI والوصول إلى سطر الأوامر. إن لم يتوفرا، تشرح كل خطوة الإجراء كي تنفذه من لوحة التحكم أو عبر SFTP.

  1. تأكيد أنه بعد المعالجة ، وليس نقل

    قم بتصغير نفس الصورة وحاول مرة أخرى. النجاح في الأبعاد الأصغر يستبعد الشبكة والأذونات ونوع الملف في اختبار واحد.

  2. تحقق من مكتبة الصور التي لديها PHP بالفعل

    يفضل WordPress Imagick ويعود إلى GD. معرفة أي واحد في اللعب يقرر أين يبحث بعد ذلك.

    php -r 'var_dump(extension_loaded("imagick"), extension_loaded("gd"));'
  3. اقرأ حدود ImageMagick الخاصة

    هذه منفصلة عن PHP وغالبا ما تكون السقف الحقيقي على المكدسات المشتركة.

    identify -list resource
  4. قوة GD إذا Imagick هو المشكلة

    يقوم مرشح إسقاط في تبديل تنفيذ المحرر دون لمس الخادم ، وهو ما يكفي لتأكيد التشخيص.

    add_filter( 'wp_image_editors', function () {
        return [ 'WP_Image_Editor_GD' ];
    } );
  5. شاهد السجل أثناء إعادة المحاولة

    تحميل مرة واحدة مع السجل مفتوحة. قاتلة من مكتبة الصور ورفض من WAF لا تبدو على حد سواء ، وهذا هو المكان الذي تصبح فيه مميزة.

    tail -f wp-content/debug.log
على MagicWP

ما تتولاه المنصة عنك.

كلا مكتبتي الصور موجودتان ويتم تعيين حدود الموارد الخاصة بهما على ذاكرة الخطة بدلاً من تركها عند التوزيع الافتراضي ، لذلك يتم تغيير حجم الصورة الكبيرة بدلاً من الموت في منتصف الطريق. يتم رفع حدود PHP لطلبات المشرف بشكل منفصل عن الطلبات الأمامية ، لأن توليد ستة أحجام مصغرة ليس هو نفس شكل العمل الذي يخدم الصفحة.

الأسئلة الشائعة

الأسئلة الشائعة.

لماذا يتم تحميل نفس الصورة على جهاز الكمبيوتر المحمول الخاص بي؟
عادة ما يكون للمكدس المحلي حد ذاكرة أعلى بكثير ولا يوجد WAF أمامه. الصورة متطابقة ؛ البيئة المعالجة ليست كذلك.
هل التحويل إلى WebP أو JPEG قبل تحميل المساعدة؟
يساعد إذا كان السبب هو الذاكرة ، لأن أبعاد البكسل التي تم فك تشفيرها تنخفض معها. لا يتغير شيء إذا كانت قاعدة الأمان ترفض الطلب ، ولهذا السبب يأتي اختبار الصورة الأصغر أولاً.
هل هذا هو نفس نوع الملف غير مسموح به؟
لا. يحدث هذا الخطأ بعد أن يقبل WordPress النوع وبدأ العمل. يتم رفض نوع مرفوض مقدمًا برسالة تسمي التقييد.
الخطأ متقطع في نفس الملف. ماذا يعني ذلك؟
ضغط الذاكرة دائمًا تقريبًا. ينجح التحميل عندما يكون للعملية مساحة وتفشل عندما لا تفعل ذلك ، لذلك يتتبع أي شيء آخر يعمل بدلاً من أي شيء عن الصورة.
أخطاء مرتبطة

إن لم يكن هذا هو السبب.

قد تبدو هذه الأخطاء متشابهة في المتصفح.