How to install Apache worker + PHP FastCGI and PHP-FPM on Ubuntu 12.04 LTS
Apache worker เหมาะสำหรับ web server ที่ต้องรับโหลดหนักแต่มีทรัพยากรในระบบไม่เยอะมาก เนื่องจาก Apache worker จะมีการใช้ memory ที่น้อยกว่า Prefork mode
การติดตั้ง Apache worker ให้รองรับการทำงานร่วมกับ PHP จะมีความยุ่งยากมากกว่าแบบ Prefork เนื่องจากว่า Apache worker ไม่รองรับการทำงานร่วมกับ PHP module ดังนั้นจึงจำเป็นต้องทำการติดตั้ง PHP FastCGI และ PHP-FPM เข้ามาใช้งานแทน
การติดตั้ง Apache worker + PHP FastCGI + PHP-FPM บน Ubuntu 12.04 LTS
- Login เป็น root user ด้วยคำสั่ง
$ sudo su -
- เนื่องจาก php fastcgi ubuntu ได้เก็บ package ไว้ที่ repo multiverse ดังนั้นจึงต้องทำการ add multiverse เข้าไปยังไฟล์ /etc/apt/sources.list
root@Ezylinux:~# vi /etc/apt/sources.list
และเพิ่มข้อมูลด้านล่างลงไป
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse - หลังจากแก้ไขไฟล์ /etc/apt/sources.list เรียบร้อยแล้ว ก็จะทำการติดตั้ง Apache worker, PHP fastcgi และ PHP FPM ด้วยคำสั่ง
root@Ezylinux:~# apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php5
- แก้ไขการตั้งค่า PHP FPM โดยให้ listen ที่ TCP port 9000
root@Ezylinux:~# vi /etc/php5/fpm/pool.d/www.conf
และให้เพิ่มข้อมูลด้านล่างเข้าไป
listen = 127.0.0.1:9000
- เปิดการใช้งาน fastcgi และ alias modules ด้วยคำสั่ง
root@Ezylinux:~# a2enmod actions fastcgi alias
และให้เพิ่มข้อมูลด้านล่างไปที่ไฟล์ /etc/apache2/apache2.conf
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php
FastCgiExternalServer /usr/lib/cgi-bin/php -host 127.0.0.1:9000 -pass-header Authorization
</IfModule> - ติดตั้ง PHP modules อื่นๆเพิ่มเติม
root@Ezylinux:~# apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
- Start PHP-FPM service ด้วยคำสั่ง
root@Ezylinux:~# service php-fpm start
- Start Apache service ด้วยคำสั่ง
root@Ezylinux:~# service apache2 start
การทดสอบการติดตั้ง apache worker และ PHP-PFM
- สร้างไฟล์ phpinfo โดยสร้างไฟล์ที่ /var/www/info.php
root@Ezylinux:~# vi /var/www/info.php
- เพิ่ม phpinfo funtion เข้าไปตามตัวอย่าง
<?php phpinfo(); ?>
- ทดสอบด้วยการเปิดเวป โดยเข้าไปยัง URL ตามนี้ http://YOURIP/info.php (YOURIP คือ IP ของ Web Server)