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

الملف الذي تم تحميله يتجاوز التوجيه upload_max_filesize

رفض PHP الملف قبل أن يرى WordPress بايت منه. الرقم في الرسالة هو سقف PHP ، وليس WordPress.

The uploaded file exceeds the upload_max_filesize directive in php.ini.

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

أربعة حدود منفصلة يمكن أن تنتج هذا ، ورفع الخطأ واحد لا يغير شيئا. طباعة ما تقارير PHP حاليا ل upload_max_filesize و post_max_size ، مقارنة على حد سواء ضد الملف الخاص بك ، وتذكر آخر _max_size يجب أن يكون أكبر من اثنين أو فشل تحميل بصمت بدلا من ذلك.

التشخيص

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

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

السببكيفية التحققالإصلاح
upload_max_filesize أقل من حجم الملفوسائل الإعلام إضافة جديد يطبع الحد الأقصى الفعال تحت منطقة الإسقاط. إذا كان هذا الرقم أصغر من الملف ، فهذا هو.رفع upload_max_filesize في تكوين PHP الذي يتم تحميله بالفعل. القيمة في php.ini لا تقرأ العملية هي السبب المعتاد وراء عدم فعل التحرير لأي شيء.
حجم post_max_size أصغر من upload_max_filesizeفشل التحميل مع مصفوفة $_FILES فارغة بدلاً من هذه الرسالة ، أو إعادة تحميل شاشة المشرف بدون أي خطأ على الإطلاق.تعيين post_max_size أعلاه upload_max_filesize. PHP يتجاهل الجسم طلب كامل أولا، لذلك الحد من ملف سخي وراء حد هيئة صغيرة يحصل أبدا استشارة.
يقوم خادم الويب بتخطي الطلب قبل تشغيل PHPيعرض المتصفح 413 من nginx أو Apache بدلاً من شاشة WordPress. لا يظهر أي شيء في سجل PHP لأنه لم يتم الوصول إلى PHP أبدًا.رفع client_max_body_size in nginx, أو LimitRequestBody in Apache, إلى قيمة PHP على الأقل. يتم فرض هذا الحد على Content-Length ، لذلك يرفض الطلب قبل تخزين أي منه.
حد شبكة متعدد المواقعيحتوي "الإعدادات" على حقل "حجم ملف تحميل الحد الأقصى" بالكيلوبايت ، وهو أقل من حد PHP.رفع إعداد الشبكة. يتم تطبيقه لكل موقع بغض النظر عن ما يسمح به PHP ، ويتم قياسه بالكيلوبايت بينما كل حد آخر هنا هو MB.
الدليل

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

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

  1. اسأل PHP ما الذي يفرضه ، من داخل WordPress

    القيمة التي تهم هي تلك التي عملية التشغيل لديها، والتي ليست بالضرورة واحدة في php.ini قمت بتحريرها.

    wp eval 'echo ini_get("upload_max_filesize"), " / ", ini_get("post_max_size"), PHP_EOL;'
  2. أوجد أي php.ini يتم تحميل هذه العملية فعليًا

    يمكن أن يكون للكومة عدة. فقط المحملة واحدة لها أي تأثير ، ويتم طباعة المسار لك.

    php --ini | head -n 3
  3. رفع كلا القيمتين، مع الحفاظ على post_max_size أكبر

    اجمعهم معاً. رفع واحد دون الآخر هو الطريقة الأكثر شيوعاً التي يتم بها إصلاح نصف هذا.

    upload_max_filesize = 256M
    post_max_size = 320M
    memory_limit = 512M
  4. رفع حد خادم الويب لمطابقة

    PHP لا يرى طلب خادم الويب مرفوض بالفعل ، لذلك يجب أن يتحرك هذا أيضًا.

    # nginx
    client_max_body_size 320m;
    
    # then
    nginx -t && systemctl reload nginx
  5. تأكيد السقف الجديد هو العيش

    أعد قراءته من WordPress بدلاً من الوثوق بالملف. إذا لم يتغير ، لم يتم إعادة تحميل PHP-FPM.

    systemctl reload php*-fpm
    wp eval 'echo ini_get("upload_max_filesize"), PHP_EOL;'
على MagicWP

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

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

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

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

رفعت upload_max_filesize ولم يتغير شيء. لماذا؟
إما أن التعديل ذهب إلى php.ini العملية لا يتم تحميلها ، أو لم يتم إعادة تحميل PHP-FPM بعد ذلك ، أو post_max_size لا يزال أصغر من الاثنين. قراءة القيمة مرة أخرى من داخل WordPress بدلاً من الملف يخبرك بذلك ، لأنه يبلغ عن ما تحتويه عملية التشغيل.
ما الفرق بين هذا و "فشل في كتابة ملف إلى قرص"؟
هذا هو الحد الأقصى لحجم رفض الطلب. أن واحد هو مشكلة نظام الملفات: وصل تحميل, والدليل الذي يجب أن الأرض في كامل, مفقود أو غير قابل للكتابة من قبل المستخدم PHP.
هل هناك حد أقصى لا ينبغي أن أتجاوزه؟
ليست عملية صعبة ، ولكن التحميلات الكبيرة جدًا من خلال متصفح تفشل لأسباب أخرى - المهلة والذاكرة بدلاً من الحد الأقصى. بعد بضع مئات ميغابايت ، SFTP أكثر موثوقية من مكتبة الوسائط.
هل يمكنني رفع الحد الأقصى لموقع واحد على شبكة متعددة المواقع فقط؟
ينطبق إعداد الشبكة على كل موقع ، وبالتالي فإن النهج العملي هو تعيين قيمة الشبكة لأعلى حاجة لديك والتحكم في الباقي بالأدوار. لاحظ أنه يتم التعبير عنه بالكيلوبايت.
أخطاء مرتبطة

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

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