- ใน apache error log ขึ้นประมาณนี้
- หา bug อยู่ตั้งนาน นึกว่าเราไปเผลอ แก้ไขตรงใหนหา ไม่เจอ bug
- ปัญหาเกี่ยวกับ paging ของ datatable plugin jquery
- ถ้าเราตั้งค่าแสดง row เริ่มต้น ตั้งแต่ 500 - All แล้ว json ที่เราไป load data มาลงให้ databable ผ่าน ajax เค้า มัน post error 500 ซะงั้น
- แต่ถ้าตั้ง row เริ่มต้น 10 - 100 อันนี้ json load data มาใส่ datatable ได้ปกติซะงั้น
- ดูใน inspect -> console มันขึ้นแบบนี้ น่ะ งงเลยคับ
- ไปใล่ดูใน apache log พบปัญหาประมาณนี้
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 33706237 bytes)
Solved 1 อันนี้แก้เป็นรายระบบไป
- ระบบเราใช้ CI4 ให้เราไปเพิ่ม
- ini_set('memory_limit', '512M'); หรือ ini_set('memory_limit', '-1');
- ใน method ใจ controller สำหรับ json ของเรา วางไว้ประมาณบรรทัดแรก เลย
Solved 2 อันนี้แก้สำหรับรองรับทุกระบบ (แต่ server ต้อง ram เยอะๆ หน่อย)
- แก้ไข php.ini ค้นหา memory_limit
- กำหนดค่าลงไปว่าใช้ mem เท่าไหร่
- -1 คือ unlimited นะคับระวังไว้ด้วย สำหรับการใส่ค่าคอนฟิกแบบนี้
- แก้ไขเสร็จแก้ restart apache สักรอบน่าจะใช้ได้แล้ว
เพิ่มเติม
- ระบบปัจจุบันของผู้เขียนนั้น php.ini ตั้งค่าเริ่มต้น memory_limit = 128M ซึ่งมันไม่พอใช้ทำให้ระบบ error คับ ทดลองปรับไปใช้ 256M ก็ไม่ได้
- ต้องไปใช้ 512M หรือ -1 ไปเลย ถึงจะผ่าน
Ref
- https://stackoverflow.com/questions/561066/fatal-error-allowed-memory-size-of-134217728-bytes-exhausted-codeigniter-xml