خطأ 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.
تأكيد أنه بعد المعالجة ، وليس نقل
قم بتصغير نفس الصورة وحاول مرة أخرى. النجاح في الأبعاد الأصغر يستبعد الشبكة والأذونات ونوع الملف في اختبار واحد.
تحقق من مكتبة الصور التي لديها PHP بالفعل
يفضل WordPress Imagick ويعود إلى GD. معرفة أي واحد في اللعب يقرر أين يبحث بعد ذلك.
php -r 'var_dump(extension_loaded("imagick"), extension_loaded("gd"));'اقرأ حدود ImageMagick الخاصة
هذه منفصلة عن PHP وغالبا ما تكون السقف الحقيقي على المكدسات المشتركة.
identify -list resource
قوة GD إذا Imagick هو المشكلة
يقوم مرشح إسقاط في تبديل تنفيذ المحرر دون لمس الخادم ، وهو ما يكفي لتأكيد التشخيص.
add_filter( 'wp_image_editors', function () { return [ 'WP_Image_Editor_GD' ]; } );شاهد السجل أثناء إعادة المحاولة
تحميل مرة واحدة مع السجل مفتوحة. قاتلة من مكتبة الصور ورفض من WAF لا تبدو على حد سواء ، وهذا هو المكان الذي تصبح فيه مميزة.
tail -f wp-content/debug.log
ما تتولاه المنصة عنك.
كلا مكتبتي الصور موجودتان ويتم تعيين حدود الموارد الخاصة بهما على ذاكرة الخطة بدلاً من تركها عند التوزيع الافتراضي ، لذلك يتم تغيير حجم الصورة الكبيرة بدلاً من الموت في منتصف الطريق. يتم رفع حدود PHP لطلبات المشرف بشكل منفصل عن الطلبات الأمامية ، لأن توليد ستة أحجام مصغرة ليس هو نفس شكل العمل الذي يخدم الصفحة.
الأسئلة الشائعة.
لماذا يتم تحميل نفس الصورة على جهاز الكمبيوتر المحمول الخاص بي؟
هل التحويل إلى WebP أو JPEG قبل تحميل المساعدة؟
هل هذا هو نفس نوع الملف غير مسموح به؟
الخطأ متقطع في نفس الملف. ماذا يعني ذلك؟
إن لم يكن هذا هو السبب.
قد تبدو هذه الأخطاء متشابهة في المتصفح.