ปัญหานี้ส่วนใหญ่เกิดจาก hosting ที่เราใช้อยู่นั่นแหละครับ เค้าคงปรับแต่งค่า (Setup/Config) ค่าตั้งต้นโดยเฉพาะค่า memory_limit ในไฟล์ php.ini ซึ่งเกี่ยวข้องกับขีดจำกัดการใช้หน่วยความจำในการประมวลผลชุดคำสั่งในการทำงานตามโปรแกรมนั้นๆ ทั้งนี้ก็เพื่อให้ server ของเค้ามีความสเถียรในการทำงาน สามารถรองรับการใช้งานพร้อมๆกันจากผู้ใช้หลายๆคน (ก็ธรรมดาครับเพราะ Hosting เค้ามีรายได้มากขึ้นจากการ Share Server ให้หลายๆรายมาเช่าใช้พร้อมๆกันนี่ครับ)
สำหรับทางแก้นั้น ก็อาจแก้ไขได้ง่ายๆด้วยการติดต่อผู้ดูแล Hosting เพื่อให้เค้า set ค่าให้เราเป็นพิเศษ ไม่งั้นเราก็ใช้งานไม่ได้ แต่หากไม่อยากรบกวนก็พอมีทางออก 2 วิธีครับ
- หาก Server ที่คุณใช้เป็นระบบ Unix หรือ linux นั้นสามารถตั้งค่าโดยเฉพาะของเราผ่านไฟล์ .htaccess ได้ครับ (ในกรณีที่คุณใช้ระบบ windows อาจข้ามขั้นตอนนี้ไป เพื่อไปทำขั้นตอนที่ 2 ต้องขอความช่วยเหลือผู้ดูแลจริงๆนั่นแหละ) ซึ่งวิธีการก็ง่ายๆ สร้าง text file ธรรมดาๆชื่อ .htaccess แล้วบันทึกคำสั่งลงไปข้างในว่า
php_value memory_limit 128M
แล้วอัพโหลดลงใน Folder (Directory) ที่เก็บไฟล์ .php ของคุณนั่นแหละครับ แค่นี้ก็เรียบร้อย โดย .htaccess นี้เป็นเหมือนกับการตั้งค่าเฉพาะการทำงานใน Folder ที่มันอยู่เท่านั้น ถ้าทุกอย่างลงตัว Error ก็จะหายไป หรือไม่ก็ลองกำหนดค่า 128M ให้มากขึ้นอีก แต่หากไม่มีอะไรเปลี่ยนแปลง บางครั้งก็เป็นด้วยเหตุว่าระบบไม่รองรับ หรือตั้งค่าให้ไม่รองรับ .htaccess อีก อันนี้ก็ต้องหาวิธีใหม่กันไปครับ ก็วิธีนี้ไม่เวอร์คซะแล้วนี่ - หากไม่ใช่ Server Unix/Linux หรือผู้ดูแลเค้าไม่ให้้ตั้งค่าผ่าน .htaccess ก็ต้องใช้วิธีนี้ครับ ตั้งค่าผ่านฟังก์ชั่นที่ทางผู้พัฒนาภาษา PHP เค้าเตรียมไว้ให้ ฟังก์ชั่น ini_set() โดยเพิ่มคำสั่ง
ini_set("memory_limit","12M");
ลงไปในส่วนหัวของไฟล์ (ต้นๆโปรแกรม) โดยฟังก์ชั่น ini_set() นี้มีไว้เพื่อให้คุณสามารถบอกให้ PHP มันรู้ว่าคุณอยากให้ตั้งค่าอะไรต่างๆเป็นแบบนั้นแบบนี้เป็นพิเศษก็ง่ายๆแค่นี้แหละครับ ลองดูละกันนะครับเวอร์คไม่เวอร์คบอกกันด้วย
ปล. หากท่านเป็นนักพัฒนาเว็บแอพพลิเคชั่นละก็อย่าพลาดหาอ่านเพิ่มเติม .htaccess และ ini_set() เชียวนะครับ เพราะมันทำอะไรได้อีกเพียบเลย โดยเฉพาะการแก้ปัญหาเกี่ยวกับการกำหนด environment ของ server หรือ hosting ที่เช่าใช้เนี่ยแหละของจำเป็นต้องรู้เลยครับ เพราะบางครั้งค่าที่เค้ากำหนดก็เป็นค่าที่เราใช้ไม่ได้ ทางแก้ก็คือ ปรับแก้โปรแกรมให้สามารถทำงานได้ในข้อกำหนดของเค้า หรือไม่ก็คือปรับตั้งค่าให้สภาพแวดล้อมเหมาะกับการทำงานของโปรแกรมเราครับ ซึ่งจริงๆแล้วการพัฒนาโปรแรกมภาคปฏิบัตินั้นไม่มีอะไรตายตัว โชคดีครับ
0 ความคิดเห็น