เมื่อเร็ว ๆ นี้มีข้อเสนอแนะให้ฉันว่าฉันใช้ FastCGI กับ PHP ตอนนี้ฉันไปที่หน้า FastCGI และอ่าน แต่ฉันไม่เข้าใจจริงๆว่าข้อดีคืออะไร
เมื่อเร็ว ๆ นี้มีข้อเสนอแนะให้ฉันว่าฉันใช้ FastCGI กับ PHP ตอนนี้ฉันไปที่หน้า FastCGI และอ่าน แต่ฉันไม่เข้าใจจริงๆว่าข้อดีคืออะไร
คำตอบ:
การใช้ mod_php ผู้ปฏิบัติงาน Apache แต่ละคนมีล่าม PHP ทั้งหมดโหลดไว้ เนื่องจาก Apache ต้องการหนึ่งกระบวนการของผู้ปฏิบัติงานต่อการร้องขอที่เข้ามาคุณสามารถจบลงด้วยการใช้งาน Apache หลายร้อยคนโดยแต่ละคนมีล่าม PHP ของตัวเองโหลดไว้จำนวนมากใช้หน่วยความจำจำนวนมาก
(โปรดทราบว่านี่ไม่เป็นความจริง แต่อย่างใด Apache ของworker_mpm
อนุญาตให้คุณให้บริการหลายคำขอกับผู้ปฏิบัติงาน Apache เธรดเดียวอย่างไรก็ตามแม้ในปี 2009 นี่ไม่ใช่วิธีที่แนะนำในการปรับใช้ PHP เนื่องจากสงสัยว่ามีปัญหาเธรดกับส่วนขยาย PHP)
โดยใช้ PHP ในโหมด fast_cgi (การใช้บางอย่างเช่นspawn-fcgiจากแพ็คเกจ lighttpd) มีข้อดีดังต่อไปนี้
FastCGI หมายความว่าบิต php ไม่ได้ทำงานในกระบวนการเดียวกันกับบิต apache ซึ่งแตกต่างจาก mod_php การแยกนี้อาจมีข้อได้เปรียบที่แน่นอนเมื่อพูดถึงการรีสตาร์ทเซิร์ฟเวอร์หรือจัดการกับแอปพลิเคชันที่ไม่ทำงาน - ในกรณี mod_php ซึ่งหมายความว่ามันเป็นกระบวนการอาปาเช่ที่ "หนี" แต่ภายใต้ fastcgi เป็นเพียงกระบวนการที่อาปาเช่กำลังพูดถึง เซิร์ฟเวอร์ทั้งหมดไม่จำเป็นต้องถูกลบออก
ข้อดีอีกอย่างที่ยังไม่ได้กล่าวถึงคือความจริงที่ว่าด้วยmod_fcgid
(ซึ่งเป็นการนำมาใช้ใหม่สำหรับการใช้ FastCGI บน Apache) และ suexec คุณสามารถตระหนักถึงการตั้งค่าที่ vhosts ที่แตกต่างกันใช้ผู้ใช้ Linux ที่แตกต่างกัน .
ด้วย mod_php, vhosts ทั้งหมดจะแชร์ผู้ใช้คนเดียวกันซึ่งก็คือผู้ใช้ของ Apache ซึ่งอาจนำไปสู่ปัญหาด้านความปลอดภัย