Aug. 11
19

เออเร่อ Fatal error: Allowed memory size of 25165824 bytes exhausted

Ploumanac'h

เออเร่อตัวนี้ แจ้งรายละเอียดมายาวเกือบศอก Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 19500140 bytes) in C:\AppServ\www\phpMyAdmin\libraries\unzip.lib.php on line 324 แต่เราไม่ต้องสนใจบรรทัดที่มันเออเร่อ สนใจแค่นี้ก็พอ
Fatal error: Allowed memory size

เออเร่อตัวนี้ผมว่า ผู้ฝึกเขียน PHP แทบทุกคนจะต้องเจอ ในเออเร่อแจ้งว่า เราอนุญาติให้ใช้หน่วยความจำแค่นี้นะ แต่รู้สึกว่าจะมีการใช้หน่วยความจำเกินที่กำหนดไว้

เหตุกาณ์ที่เกิด มักเกิดตอนที่ประมวลผลไฟล์ขนาดใหญ่ ซึ่ง PHP จำเป็นจะต้องใช้หน่วยความจำปริมาณมาก เช่น อิมพอร์ตข้อมูลขนาดบิ๊กเข้าฐานข้อมูล mysql หรือ ประมวลผลโค้ดสร้างไฟล์ภาพ เป็นต้น

สำหรับวิธีแก้ก็ไม่มีอะไรมาก เราก็แค่กำหนดขนาดของหน่วยความจำ ที่อนุญาติให้ PHP ใช้เสียใหม่ ให้เยอะขึ้น เท่านั้นเอง จิ๊บๆ ง่ายๆ

1. เปิดไฟล์ C:\Windows\php.ini ขึ้นมา ด้วยโปรแกรม notepad
เสริมนิดหนึ่งว่า ไฟล์ php.ini นี้เป็นไฟล์กำหนดค่าต่างๆของภาษา PHP ไฟล์คอนฟิกนั่นแหละป๋า

2. หาคำว่า memory_limit มันจะอยู่แถวๆบรรทัดที่ 256 แก้ไขตัวเลขหลังเครื่องหมาย = ให้เป็น 256M หรือ 512M เลยก็ได้ถ้าแรมในเครื่องป๋าเยอะ
php-ini

3. บันทึก ซะ

4. รีสตาร์ท apache วิธีการอ่านได้ที่บทความนี้ วิธีรีสตาร์ท apache ถ้ายังทำไม่เป็น

บทความน่าสนใจ

  1. Error ที่ (น่าจะ) เจอบ่อย ของ PHP
  2. วิธีแก้ปัญหา Parse error: syntax error, unexpected ‘}’
  3. syntax error คือ
  4. PHPExcel Fatal error: Allowed memory size
  5. Fatal error: Cannot redeclare is_admin()
This entry was posted in PHP. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. iPong Firefox 6.0 Windows XP
    Posted 26/08/2011 at 18:47 | Permalink

    ขอบคุณครับ

    ยังไม่เคยเจอครับ เพราะงานที่ทำเป็นระดับปลาซิวครับ ไว้ได้ทำงานขนาดปลาช่อนปลาชะโดบิ๊กๆ คงได้เจอแน่ๆ ได้รู้ไว้อุ่นใจเยอะเลย

Post a Comment

You must be logged in to post a comment.