PHP 相關配置

1. php-fpm的pool

  • 編輯「php-fpm」配置文件「php-fpm.con」
    vim /usr/local/php/etc/php-fpm.conf //在[global]部分增長
    include = etc/php-fpm.d/*.conf # 至關與Nginx的虛擬主機文件 「vhost」 的配置
  • 建立存放「pool」配置文件目錄
    mkdir /usr/local/php/etc/php-fpm.d/
    cd /usr/local/php/etc/php-fpm.d/
  • 建立「www」 的pool配置文件
    vim www.conf //內容以下php

    [test]
    listen = /tmp/test.sock
    listen.mode=666
    user = php-fpm
    group = php-fpm
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024
  • 繼續建立「test2」的pool配置文件
    vim test2.conf //內容以下html

    [admin]
    listen = /tmp/test2.sock
    listen.mode=666
    user = php-fpm
    group = php-fpm
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024

    /usr/local/php/sbin/php-fpm –t
    /etc/init.d/php-fpm restartnginx

2. php-fpm 執行慢日誌

  • 編輯「php-fpm」的「pool」文件;
    vim /usr/local/php-fpm/etc/php-fpm.d/test2.conf//添加慢日誌記錄配置,如:下內容vim

    request_slowlog_timeout = 1    # 超過1秒的php解析 記錄一次慢日誌,實際生產環境中 設置2秒
    slowlog = /usr/local/php-fpm/var/log/test2-slow.log  # 慢日誌存放路徑、名稱
  • 測試慢日誌是否生效
    • 配置nginx的虛擬主機test2.com.conf,把unix:/tmp/php-fcgi.sock改成unix:/tmp/test2.sock
    • 從新加載nginx服務
    • 建立測試html頁面
      vim /data/wwwroot/test2.com/sleep.php//寫入以下內容瀏覽器

      <?php
          echo "test slow log";
          sleep(2);
          echo "done";
      ?>

      curl -x127.0.0.1:80 test2.com/sleep.php
      cat /usr/local/php-fpm/var/log/test2-slow.log架構

3. php-fpm定義open_basedir

  • open_basedir 限制php解析的目錄(LAMP 架構中 也能夠在 Apache 的配置中設置open_basedir;LNMP 架構直接在php的設置文件中設置)
    vim /usr/local/php-fpm/etc/php-fpm.d/admin.conf//配置文件中加入以下內容
    …… php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/ # 這裏限制的目錄爲「/data/wwwroot/test.com」/和「/tmp/」目錄 ……
    建立測試php腳本,進行測試
    再次更改test.conf,修改open_basedir路徑,再次測試
    配置錯誤日誌、再次測試、查看錯誤日誌curl

  • php-fpm的錯誤日誌配置
    • 編輯配置文件:vim /opt/php-fpm/etc/php.iniphp-fpm

      ……
      display_errors = Off        ;錯誤顯示「Off 關閉」「On 開啓」,開啓後會在瀏覽器中顯示錯誤信息;生產環境不開啓
      ……
      error_log = error_log = /opt/php-fpm/var/log/error.log       ;定義日誌位置、日誌名稱
      ……
      error_reporting = E_ALL       ;定義日誌級別
      ……
    • 建立錯誤日誌文件,並設置權限777(建立日誌文件,設置權限,防止因權限問題致使日誌沒法記錄)
      touch /opt/php-fpm/var/log/error.log
      chmod 777 /opt/php-fpm/var/log/error.log測試

4. php-fpm 進程管理

  • php-fpm.conf 配置文件的部分參數說明;url

    pm = dynamic  //動態進程管理,也能夠是static
    pm.max_children = 50 //最大子進程數,ps aux能夠查看
    pm.start_servers = 20 //啓動服務時會啓動的進程數
    pm.min_spare_servers = 5 //定義在空閒時段,子進程數的最少數量,若是達到這個數值時,php-fpm服務會自動派生新的子進程。
    pm.max_spare_servers = 35 //定義在空閒時段,子進程數的最大值,若是高於這個數值就開始清理空閒的子進程。
    pm.max_requests = 500  //定義一個子進程最多處理的請求數,也就是說在一個php-fpm的子進程最多能夠處理這麼多請求,當達到這個數值時,它會自動退出。
相關文章
相關標籤/搜索