因為老舊機器跑 Apache 實在太費力了,不少朋友都推薦 Nginx 來取代 Apache。網路上不少效能測試也顯示 Nginx 使用的系統資源比較少。
Install Nginx from ports:
cd /usr/ports/www/nginx
make config # select modules you want
make install clean
Install php52 from ports:
cd /usr/ports/lang/php52
make config # Enable FPM
make install clean
安裝 PHP-FPM (Fastcgi Process Manager) 後,在 /etc/rc.conf 加入啟動設定並啟動 php-fpm:
echo php_fpm_enable="YES" >> /etc/rc.conf
/usr/local/etc/rc.d/php-fpm start
依照預設值 FPM 會 listen port 9000,可以用 sockstat 看一下是否啟動成功:
$ sockstat
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
www php-cgi 2736 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 2735 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 2734 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 2733 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 2732 0 tcp4 127.0.0.1:9000 *:*
root php-cgi 2731 4 stream -> ??
root php-cgi 2731 5 stream -> ??
root php-cgi 2731 6 tcp4 127.0.0.1:9000 *:*
若要修改 listen port 可以開啟 /usr/local/etc/php-fpm.conf,搜尋「listen_address」,設定檔是以 XML 的方式撰寫,把 127.0.0.1:9000 改成自己要得即可。
修改 Nginx 設定檔 /usr/local/etc/nginx/nginx.conf,大約在 60 行左右可以看到「pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000」,將該段落的設定檔取消註解。
另外 Nginx 設定檔有個很怪的地方,就是 fastcgi_param 的預設值不是在網頁目錄底下,要將後方的「/scripts」改成「/usr/local/www/nginx-dist」,這樣 Nginx 才會將網頁目錄底下的 PHP 程式交給 FPM 執行。
設定完畢存檔,/usr/local/etc/rc.d/nginx start 啟動 nginx 就可以弄個 phpinfo 來測試了。