PHP-fpm.conf 中的优化
pm 参数配置怎样的进程管理 这里有 dynamic , static , ondemand
static : 固定子进程管理
dynamic : 子进程数的管理依赖于 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 这些指令; 在这种模式下, 至少有一个子进程
pm.max_children 同时存在的最大子进程数
pm.start_servers PHP-fpm 启动时开始创建的子进程数
pm.min_spare_servers 最少空闲进程数, 空闲进程数小于这个设定的值时, PHP-fpm 会自动增加空闲进程
pm.max_spare_servers 最大空闲进程数, 空闲进程数大于这个设定的值时, PHP-fpm 会自动杀死多余空闲进程
ondemand :PHP-fpm 不会创建进程数, 只有当请求连接时才会创建, 这个需要通过 pm.max_children 和 pm.process_idle_timeout 这两个指令来控制;
pm.max_children 同时存在的最大子进程数
pm.process_idle_timeout 多少秒后空闲进程会被杀死
如
- pm = dynamic
- pm.max_children = 300
- pm.start_servers = 20
- pm.min_spare_servers = 10
- pm.max_spare_servers = 30
- pm.process_idle_timeout = 60s;
- # 每个子进程在重启之前应该执行的请求数
- pm.max_requests = 500
- # 设置一个超时时间, 在超过该时间后会把 PHP 的调用栈的保存到文件里
- request_slowlog_timeout = 10s
- # 设置一个超时时时, 当超过该时间后会杀死请求, 这个会用于当出于一些原因 PHP.INI 中的 max_execution_time 这个指今设置的时间没有停止脚本时会用到目前这个指令;
- request_terminate_timeout = 180s
- # 捕捉工作进程的标准输出及标准错误输出放入主错误文件中; 如果为 no 调动这些输出会重定向到 / dev/null; 如果开启了这个, 会在一定程序上使页面延迟;
- catch_workers_output = yes
- # 限制 PHP-fpm 会去解析的脚本扩展名, 在安全考虑上尽量 PHP-fpm 去解析. PHP 扩展的, 其它的不要去解析
- security.limit_extensions = .PHP .php3 .php4 .php5 .html .JS .CSS .jpg .jpeg .gif .PNG .htm
- # 开启错误显示
- php_flag[display_errors] = on
- # 开启错误日志
- php_admin_flag[log_errors] = on
- # 指定错误日志路径
- php_admin_value[error_log] = /usr/local/PHP/var/log/PHP-PHP-error-log.log
- # 限制了每个 PHP 进程的内存占用上限
- php_admin_value[memory_limit] = 128M
PHP.INI 中的优化
- short_open_tag = On
- # 每个脚本最大的执行时间
- max_execution_time = 180
- # 每个脚本能消耗的最大的内存
- memory_limit = 128M
- # 设置显示那些错误类型
- error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
- # 是否直接显示错误
- display_errors = Off
- # 是否开启错误日志
- log_errors = On
- # 错误日志的最大长度
- log_errors_max_len = 1024
- # 是否忽略重复错误, 当然后忽略的错误是出现在同一个文件的同一行
- ignore_repeated_errors = Off
- # 是否报告内存泄漏
- eport_memleaks = On
- # 能 post 的最大数据
- post_max_size = 8M
- # 设置 PHP 默认的字符集
- default_charset = "UTF-8"
- # 是否允许文件上传
- file_uploads = On
- # 允许上传文件大小
- upload_max_filesize = 2M
- # 允许上传文件大最大数
- max_file_uploads = 20
- # 是否允许把 RULS 作为文件来处理
- allow_url_fopen = On
- # 基于输入输出流的 socket 超时设置
- default_socket_timeout = 60
- # 文件储存的 session 的路径
- session.save_path = "/tmp"
- # 是否曝光 PHP 安装信息
- expose_php = Off
- # 设置错误日志输出的位置
- error_log = /usr/local/PHP/var/log/PHP-INI-error-log.log
来源: http://www.bubuko.com/infodetail-2819412.html