PHP fpm的安裝與設定教學 - 吉姆的電腦閣誌

吉姆的電腦閣誌

HTML5,Jquery,PHP,FreeBSD分享教學。電腦是用來節省時間及提升樂趣,不是用來把人綁住的。隨心而行,順著生命的脈動重新創造屬於自己的生活。

Breaking

Home Top Ad

Responsive Ads Here

Post Top Ad

Responsive Ads Here

2015-04-09

PHP fpm的安裝與設定教學

FPM的全名是FastCGI Process Manager,針對負載較大的網站而發展出的一套PHP FastCGI。經典的特色有:
  1. 使用命令列stop/start來管理處理程序
  2. 可以使用不同的php.ini來啟動php-fpm之外,更能以不同的uid/gid/chroot/listening port的環境變數來處理不同的工作
  3. 具備標準輸出及錯誤記錄檔功能
  4. 在程式碼出錯時(accidental opcode cache destruction)能緊急重新啟動
  5. 支援加速上傳
  6. 額外的函式fastcgi_finish_request()在比較耗時的時機(如影片轉檔或顯示處理進度時),可用來重整資料(flush)

  1. 系統環境

    FreeBSD 8.4-RELEASE

  2. 準備工作

    1. 下戴 php5.6.7並解壓縮
      [root@dmz /data/work]#wget http://tw1.php.net/get/php-5.6.7.tar.gz/from/this/mirror -O php5.6.7.tar.gz
      [root@dmz /data/work]#tar zxvf php5.6.7.tar.gz
  3. 安裝 php 5.2.7

    1. 編譯參數

      ./configure --with-apxs2=/usr/local/apache24/bin/apxs --with-pear \
      --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql \
      --with-unixODBC --with-gd --with-zlib --with-jpeg-dir=/usr/local/lib \
      --with-png-dir=/usr/local/lib --with-png-dir=/usr/local/lib \
      --with-curl=/usr/local/bin/curl --with-gettext=/usr/local/lib \
      --with-freetype-dir=/usr/local/share/fonts/TrueType \
      --with-iconv=/usr/local/include --with-mcrypt=/usr/local/lib \
      --enable-fpm --with-mysqli --with-openssl --enable-dba --enable-bcmath \
      --enable-phpdbg-debug --enable-calendar --enable-ftp --enable-mbregex \
      --enable-mbstring --disable-debug --disable-ipv6
      
    2. 編譯

      [root@dmz /data/work/php-5.6.7]# make
    3. 編譯測試(可省略)

      [root@dmz /data/work/php-5.6.7]# make test
    4. 安裝

      [root@dmz /data/work/php-5.6.7]# make install
    5. 調整設定

      由解壓縮後的範例檔來建立php.ini
      cp /data/work/php-5.6.7/php.ini-production /usr/local/etc/php.ini

      小編吉姆調整的參數如以下所示:
       short_open_tag = On
       display_errors = On
       post_max_size = 100M
       include_path = "/usr/local/lib/php"
       cgi.fix_pathinfo=1
       upload_max_filesize = 100M
       extension=phalcon.so
       date.timezone = "Asia/Taipei"
       session.save_path = "/tmp"
       opcache.enable=1
       opcache.memory_consumption=64
       opcache.max_accelerated_files=2000
       opcache.revalidate_freq=2
       opcache.consistency_checks=1
      
      其它的調整視個人喜好及系統需求,請自行更改。
  4. 設定 php-fpm

    因為這次是手動自行編譯安裝,所以要注意在編譯時不要忘了加上--enable-fpm之外,也不比使用port或pkg安裝時那麼方便,安裝過程會自動建立啟動檔。所以這裡要自行建立開機啟動檔案。
    1. php-fpm設定檔(php-fpm.conf)

      直接複製範例設定檔,再自行依需求編修即可。
      cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
    2. 開機自動執行檔

      [root@dmz /data/work/php-5.6.7]# cp sapi/fpm/init.d.php-fpm /usr/local/etc/rc.d/php-fpm
    3. rc.conf設定

      加入這行:
      # php_fpm
      php_fpm_enable="YES"
      
    4. 啟動php-fpm
       [root@dmz ~]#/usr/local/etc/rc.d/php-fpm start
      Starting php-fpm  done
    5. 檢查php-fpm是否正常運行

      因為預設的port是9000,所以我們只要檢查9000這個port是否有在待命中。 
      [root@dmz ~]#netstat -a | egrep '9000'
      tcp4   0  0 localhost.9000   *.*   LISTEN
      有看到這行就代表正常在運作,到此為止,已經完成了php-fpm相關的安裝及設定,想打造快速又能負載高流量的Server請搭配安裝nginx
參考來源
  1. FastCGI Process Manager (FPM)

沒有留言:

Post Bottom Ad

Responsive Ads Here

Pages