เมื่อมีการ add domain เยอะ process ของ httpd ทุกตัวจะมีการเปิดไฟล์จำนวนมาก สมมติ 1 httpd เปิดไฟล์ 2000 ไฟล์ ถ้ามี httpd 20 ตัวทำงานอยู่ ก็เท่ากับว่าจะมีการเปิดไฟล์ถึง 4หมื่นไฟล์เลยทีเดียว ซึ่ง centos จะมีการ limit จำนวน file open descriptor อยู่
คำสั่งในการตรวจสอบ maximum file open ของทั้งระบบ
cat /proc/sys/fs/file-max
คำสั่งตรวจสอบ max file open สำหรับ user
ulimit -n
เพิ่มจำนวน max file open สำหรับ user ให้เป็น 500000
ulimit -n 500000
แต่ค่าที่ set ด้วยคำสั่ง ulimit -n ในข้างต้น จะถูก reset กลับไปเป็น default เมื่อเรา reboot ดังนั้นวิธีที่ทำให้ apache ทำงานได้ เราจะต้อง set ulimit -n ก่อนโหลด apache สามารถทำได้ง่ายๆด้วยคำสั่ง
nano /etc/init.d/httpd
แล้วเพิ่ม ulimit -n 500000
เข้าไป บรรทัดบนสุด แล้ว save ลอง reboot ดูว่า apache โหลดตอน boot หรือไม่
เท่านี้ก็แก้ปัญหา apache ไม่ start เมื่อ add domain เยอะๆ ได้แล้ว
ปล. ถ้า apache ไม่ start อีก ลองเปลี่ยน 500000 เป็นค่าอื่นที่สูงกว่าดู