Skip to content

บันทึกการติดตั้ง PHP-FPM ร่วมกับ Apache2

ได้ยินเสียงร่ำลือว่า PHP-FPM (FastCGI Process Manager) รับ load รับ concurrency ได้เยอะเพราะมีการจัดการ process ดีกว่า mod_php ทำให้ใช้ resource น้อยกว่า ฟีเจอร์อื่นๆ มีอะไรบ้างดูในลิงก์ต้นฉบับครับ

เครื่องที่ติดตั้งของผมเป็น Ubuntu ซอฟต์แวร์ที่ต้องการติดตั้งได้ด้วย APT เลยสบายหน่อย

Installation

ติดตั้ง Apache2 และ mpm-worker

$sudo aptitude install apache2 apache2-mpm-worker

ติดตั้ง module fastcgi, php-fpm, php5

$sudo aptitude install libapache2-mod-fastcgi php5-fpm php5

enable module

$sudo a2enmod actions fastcgi alias

Configuration

Apache2

เนื่องจากเราจะใช้ fastcgi handle ไฟล์ที่เขียนด้วย PHP ต้องคอนฟิกเพิ่มเติม โดยถ้าต้องการใช้เฉพาะ VirtaulHost ก็เพิ่มเฉพาะไฟล์คอนฟิก VirtaulHost นั้นใน  /etc/apache2/sites-enabled/VHOST_CONF_FILE แต่ถ้าต้องการใช้ทุก VirtaulHost แบบ global ก็เพิ่มไว้ที่ /etc/apache2/conf.d/php5-fpm.conf  (ถ้าไม่มีไฟล์ให้สร้างใหม่) โดยเพิ่มคำสั่งตามนี้

FPM

1. /etc/php5/fpm/php.ini

ไฟล์คอนฟิกทั้งหมดของ  php-fpm อยู่ที่  /etc/php5/fpm 

ตอนนี้ php.ini ของเราจะไม่ได้ใช้ที่เดิมที่ /etc/php5/apache2/php.ini  แล้วนะครับ ถ้าจะคอนฟิกอะไรเพิ่มให้ไปคอนฟิกที่ /etc/php5/fpm/php.ini  แทน เช่นผมติดตั้ง MongoDB driver ก็ต้องไปเพิ่ม extension=mongo.so  แทน

2. /etc/php5/fpm/pool.d/www.conf

ไฟล์นี้เป็นการคอนฟิก process manager ของ fpm แต่ละคน แต่ละงานใช้ไม่เหมือนกันก็เอาตามความเหมาะสมครับ ส่วนของผมเป็นตามนี้

เสร็จแล้วก็ restart ทั้ง Apache2 และ FPM

อ้างอิง

Be First to Comment

Leave a Reply

Your email address will not be published.