ความผิดพลาด:
ข้อผิดพลาดร้ายแรง: ขนาดหน่วยความจำที่อนุญาตเป็น X ไบต์หมดไป (พยายามจัดสรร Y ไบต์)
การแปลงไบต์ X ลงใน MB หาร 1024 * 1024 หรือตรวจสอบที่วุลแฟรม
เกิดขึ้นเมื่อ PHP พยายามจัดสรร Y ไบต์ แต่มีข้อ จำกัด อย่างหนักใน X ไบต์ที่กำหนดโดยmemory_limit
การตั้งค่าการกำหนดค่าPHP
ขีด จำกัด ปัจจุบันสามารถตรวจสอบได้โดยไปที่การบริหาร»รายงาน»รายงานสถานะ» PHP (URL:) /admin/reports/status/php
หรือโดยการพิมพ์ini_get('memory_limit')
ใน PHP (โปรดทราบว่าขีด จำกัด นั้นจะแตกต่างกันสำหรับ UI และ CLI)
ในการแก้ไขปัญหาคุณจะต้องลดการใช้ทรัพยากรเช่น:
ปิดใช้งานโมดูลการพัฒนาใด ๆ ที่คุณไม่ได้ใช้ในปัจจุบัน (แนะนำ)
ซึ่งรวมถึง: Devel, Devel Themer (หากเปิดใช้งาน)
ปิดการใช้งานโมดูลใด ๆ ที่คุณไม่ได้ใช้
ปิดใช้งานตัวแปรดีบักบางตัวซึ่งอาจส่งผลต่อทรัพยากรหน่วยความจำของคุณเช่นตัวอย่างบางส่วนด้วยdrush
:
drush -y vset rules_debug 0
drush -y vset rules_debug_log 0
ปิดใช้งานส่วนขยาย PHP ที่แน่นอนเช่น XDebug
- เปิดใช้งานแคช redis / memcached และแคช PHP บางอัน (เช่น OPCache / XCache)
- ในที่สุดถ้าข้างต้นจะไม่ช่วย - การเพิ่มขึ้น
memory_limit
ในการกำหนดค่าของ PHP
หากคุณตัดสินใจที่จะเพิ่มขีด จำกัด หน่วยความจำผู้คนจำนวนมากที่นี่แนะนำให้แฮ็คคอร์ของคุณโดยการวางโค้ด PHP ลงในindex.php
เพื่อเพิ่มหน่วยความจำ PHP ของคุณ - อย่าทำอย่างนั้น ! มันเป็นการปฏิบัติที่แย่มาก
แทนที่จะแก้ไขของคุณsettings.php
(หรือsettings.local.php
ถ้าคุณรวมไว้) และวางรหัสต่อไปนี้ไว้ที่ท้าย:
ini_set('memory_limit', '512M');
หรือวิธีที่ดีกว่าในการทำเช่นนี้คือแก้ไขไฟล์กำหนดค่า PHP ( php.ini
) และเปลี่ยนบรรทัดต่อไปนี้:
memory_limit = 512M ; Maximum amount of memory a script may consume
หากคุณไม่แน่ใจว่าอยู่ที่ไหนphp.ini
ให้ตรวจสอบโดย:
drush status
คำสั่ง
/admin/reports/status/php
หรือไปที่
เพื่อตรวจสอบเพิ่มเติมว่าหน้า / ส่วนประกอบใดที่ใช้หน่วยความจำมากที่สุดคุณมีความเป็นไปได้ดังต่อไปนี้:
สำหรับข้อมูลเพิ่มเติมตรวจสอบ: