ماجنتو يُبلغ بحدّ ذاكرة خاطئ
يقرأ فحص الجاهزية في ماجنتو إعدادات PHP لسطر الأوامر لا إعدادات الويب — فيبدو رفع memory_limit في .user.ini بلا أثر.
يُبلغ فحص الجاهزية في ماجنتو بقيمة memory_limit أقل مما ضبطته، ورفعها لا يُحدث
فرقًا. ينطبق على الاستضافة المشتركة والموزِّعة والمميّزة.
والخطأ يبدو هكذا:
Your current PHP memory limit is 512M. Magento 2 requires it to be set to 756M or more.
بينما يعرض phpinfo() القيمة التي ضبطتها — memory_limit 1024M مثلًا.
لماذا يحدث
القراءتان صحيحتان. فهما تقرآن إعدادَي PHP مختلفين.
فلـ PHP على حسابك إعدادان منفصلان: واحد للصفحات المقدَّمة عبر الويب، وآخر لـ
سطر الأوامر (CLI). وفحص الجاهزية في ماجنتو يعمل عبر سطر الأوامر، فيقرأ حدّه
— لا حدّ الويب الذي رفعته في .user.ini أو في محدّد PHP.
عالجه
اضبط الإصدار والحدود لسطر الأوامر أيضًا:
- في cPanel، افتح Select PHP Version.
- تأكّد أن إصدار CLI يطابق الإصدار الذي يعمل عليه موقعك.
- افتح Options واضبط
memory_limitعلى756Mأو أعلى.
ثم امسح ذاكرة ماجنتو المؤقتة، فهو يخزّن نتيجة الجاهزية:
php /home/cpaneluser/public_html/bin/magento cache:flushوأعد تشغيل فحص الجاهزية.
تأكّد أي حدّ تقرأ
لرؤية قيمة سطر الأوامر مباشرة:
php -i | grep memory_limitقارنها بما يعرضه phpinfo() في متصفح. فإن اختلفتا، فسطر الأوامر هو ما يقرأه
ماجنتو.