How to Increase PHP memory limit
webmaster ที่ใช้ PHP อาจเคยเจอปัญหา Fatal Error: PHP Allowed Memory Size Exhausted หลังเรียกใช้บางคำสัง กันมาบ้างแล้ว ซึ่งปัญหานี้เกิดจากหน่วยความจำไม่พอหรือใช้เกิน maximum memory limit ทางแก้คือต้องเพิ่ม php memory limit
แรกเลย ดูก่อนว่า ควรใช้หน่วยความจำเท่าไหร่
PHP Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y) in whatever.php
ค่าเริ่มต้นส่วนใหญ่จะเป็น 8M หรือ 16M โดยเราสามารถดูค่าของระบบได้ในไฟล์ php.ini แล้วหา memory_limit:
memory_limit = 16M ; Maximum amount of memory a script may consume (16MB)
วิธีการแก้ไข 3 วิธี มีข้อดี-ข้อเสียต่างกันไป
1. แก้ไข memory_limit ทั้งระบบจาก php.ini
วิธีง่ายที่สุดคือการแก้ไขไฟล์ php.ini และ เปลี่ยนค่าใน the memory_limit ตามที่ต้องการ ex:
memory_limit = 32M
วิธีนี้เราต้องมีสิทธิในการเข้าถึงไฟล์ php.ini และการแก้ไขมีผลต่อทั้งระบบ หลังจากแก้ไขแล้วต้อง restart เครื่องจึงจะเห็นผล
Note: ถ้าไม่ต้องการจำกัดหน่วยความจำ ให้ตั้งค่าเป็น -12. แก้ไข memory_limit โดยใช้ .htaccess สำหรับ folder/vhost
การแก้ไข memory_limit ทั้งระบบอาจไม่ใช่ความคิดที่ดี เราสามารถตั้งค่าเฉพาะสำหรับใน folder (normally one application or virtual host) โดยเพิ่มคำสั่งลงใน .htaccess อย่างในนี้:
php_value memory_limit 64M
การแก้ไขนี้ส่งผลเฉพาะที่ และใช้ได้ดีสำหรับ webmasters ที่ไม่มีสิทธิในการแก้ไขไฟล์ระบบ โดยการวิธีนี้สามารถเห็นผลได้ทันทีที่เรียกใช้งาน
3. แก้ไข memory_limit จากใน php script เอง
สำหรับ การความคุมที่มีประสิทธิภาพมากขึ้น เราสามารถตั้งค่าจากใน php script ได้เลย โดยใส่คำสั่งลงใน code:
ini_set('memory_limit', '64M');
วิธีนี้สามารถควบคุมให้ส่งผลเฉพาะที่ได้เลย โดยจะเห็นผลทันทีหลังแก้ไข เหมือนกับวิธีที่ 2
- 3737 reads


Comments
Post new comment