用於管理PHP進程池的軟件,用於接收和處理來自Web服務器的請求。php
//這兩個配置是在指定時間內有指定個子進程失效,讓PHP-FPM重啓。
emergency_restart_threshold = 10 emergency_restart_interval = 1m
PHP-FPM進程池中是一系列相關的PHP子進程。html
//擁有這個子進程的系統用戶
user = example group = deploy
//監聽地址和端口號 listen = 127.0.0.1:9000 listen.allowed_slients = 127.0.0.1
//進程池中最多能有多少個進程 pm.max_children = 50
//初始化準備進程數 pm.start_servers = 3
//空閒時最少進程數和最大進程數 pm.min_spare_servers = 2 pm.max_spare_servers = 4
//最多能處理的進程數 pm.max_requests = 1000
//記錄超過指定時間的請求,這個日誌能看到超時前最後具體的調用方法,兩個設置必須配合使用 slowlog = /path/to/slowlog.log request_slowlog_timeout = 5s
//簡單列出平時調試的虛擬主機,僅供參考
server {
listen 80 default_server;
listen [::]:80 default_server;nginx
//主機名web
server_name dev.company *.dev.company; set $sub 'dev'; if ($host ~ "^(.*).dev.company") { set $sub $1; } set $web '/web';
//文檔根目錄 root /home/yangqi/www/$sub$web; sendfile off;
//訪問日誌與錯誤日誌,請確認路經是否存在 access_log /home/yangqi/www/logs/$sub.access.log; error_log /home/yangqi/www/logs/$sub.error.log;
//默認尋找的文件 index index.php index.html index.htm adminer.php; try_files $uri $uri/ /index.php?$args;
//告訴nginx如何處理匹配指定URL模式(try_files)的HTTP請求 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
//設置單個PHP進程能夠使用的內存最大值
memory_limit
//考慮這個值應該思考幾個問題
一共能分配多少內存給PHP?
單個PHP進程平均消耗多少內存?
能負擔得起多少個PHP-FPM進程?
//Zend Opcach 用於緩存操做碼(PHP讀取腳本後編譯獲得)
//爲操做碼緩存分配的內存量
opcache.memory_consumption = 64
//用來存儲駐留字符串 opcache.interned_strings_buffer = 16
//最多能夠緩存的PHP腳本數量(必定要比PHP應用的文件數量大)
opcache.max_accelerated_files = 4000
//是否檢查PHP腳本的變化,頻率由revalidate_freq決定
opcache.validate_timestamps = 1 //生產環境應設爲0 opcache.revalidate_freq = 0
//把對象析構和內存釋放交給Zend Engine的內存管理器完成 opcache.fast_shutdown = 1
file_uploads = 1 upload_max_filesize = 10M max_file_uploads = 3
max_execution_time = 5
//使用文件存儲session會佔用磁盤,並且不便於服務器擴展,使用Redis/Memcached統一更合適
session.save_handler = 'memcached' session.save_part = '127.0.0.2:11211'
//在較少的片斷中把數據返回給請求者的瀏覽器,4096做爲一個片斷,能夠減小一次發送的片斷總數
output_buffering = 4096 lmplict_flush = false
//能夠使用在腳本末尾使用realpath_cache_size()查看實際大小realpath_cache_size = 64k