百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

详解php-fmp.conf和php.ini文件

off999 2025-03-06 18:26 22 浏览 0 评论

我的mac上php配置文件的安装路径是/usr/local/etc/php/7.3,编译安装php的话 configure 编译参数指定,目录下有conf.d/ pear.conf php-fpm.conf php-fpm.d/ php.ini几个文件目录。


php.ini文件是php虚拟机的配置文件,是php解释器本身的配置文件

expose_php = On //PHP信息暴露在http头中 X-Powered-By:PHP/7.2.27 Off关闭
disable_functions = phpinfo,system,exec,shell_exec,passthru,popen,dl,proc_open,popen,curl_exec,curl_multi_exec
//禁止使用函数列表 ,分割
error_reporting //错误报告级别  E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
display_errors = Off //关闭错误输出显示,可以用日志代替,避免暴露安全信息
display_startup_errors  // PHP 启动过程中的错误信息也不会被显示
allow_url_fopen = Off //允许打开远程文件
log_errors //脚本运行的错误信息记录到服务器错误日志或者error_log
log_errors_max //  log_errors 的最大字节数 默认值为1024,如果设置为0表示不限长度
error_log //错误文件

php-fpm的配置文件在
/usr/local/etc/php/7.3/php-fpm.conf,格式和ini文件差不多

pid = run/php-fpm.pid //pid文件
error_log = log/php-fpm.log //错误日志
syslog.ident = php-fpm  // 用于FPM多实例情况
log_level = notice //日志级别alert, error, warning, notice, debug
log_limit = 4096 //日志大小 默认1024
emergency_restart_threshold = 0 //子进程在时间段内有IGSEGV或SIGBUS退出,重启
emergency_restart_interval //设置间隔时间段
process_control_timeout // 子进程等待master进程对信号的回应时间
process.max = 128 //最大子进程数
;rlimit_files = 1024      //  设置主进程文件描述符rlimit的数量
;rlimit_core = 0        //   设置主进程rlimit最大核数
;events.mechanism = epoll   //  使用处理event事件的机制
   ;- select     (any POSIX os)
  ; - poll       (any POSIX os)
  ; - epoll      (linux >= 2.5.44)
  ; - kqueue     (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0)
  ; - /dev/poll  (Solaris >= 7)
  ; - port       (Solaris >= 10)
daemonize = yes // 将fpm转至后台运行,如果设置为“no”,那么fpm会运行在前台

//进程池
user = nobody  //进程的发起用户和
group = nobody  //用户组  用户必须设置,group不是
listen = 127.0.0.1:9000   //监听ip和端口
pm = dynamic //选择进程池管理器如何控制子进程的数量
     static://对于子进程的开启数路给定一个锁定的值(pm.max_children)
    dynamic: //子进程的数目为动态的,它的数目基于下面的指令的值(以下为dynamic适用参数)
        pm.max_children: //同一时刻能最大子进程的数量
        pm.start_servers: //启动时启动的子进程数量
        pm.min_spare_servers: //"idle"状态的最小子进程,如果空闲进程数量小于这个值,子进程会被创建
        pm.max_spare_servers: //最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。
      ondemand: //启动时不会创建,只有当发起请求链接时才会创建(pm.max_children, pm.process_idle_timeout)
pm.process_idle_timeout = 10s;  //空闲进程超时时间
pm.max_requests = 500 //在派生新的子进程前,每一个子进程应该处理的请求数目
pm.status_path = /status        //配置一个URI,以便查看fpm状态页
;ping.path = /ping    //该ping URI将会去调用fpm监控页面,如果这个没有设置,那么不会有URI被做为ping页
;ping.response = pong  //用于ping制平请求的响应,响应的格式text/plain(对200响应代码)
;access.log = log/$pool.access.log //access日志
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
;slowlog = log/$pool.log.slow   //慢请求日志
request_slowlog_timeout = 0    //慢日志请求超时时间,对一个php程序进行跟踪。
;request_terminate_timeout = 0  //终止请求超时时间,在worker进程被杀掉之后,提供单个请求的超时间隔。由于某种原因不停止脚本执行时,应该使用该选项,0表示关闭不启用
;rlimit_files = 1024 //设置打开文件描述符的限制
;rlimit_core = 0 //设置内核对资源的使用限制,用于内核转储
security.limit_extensions = .php .php3 .php4 .php5  //限制FPM执行解析的扩展名

Nginx 504 Gateway Time-out的含义是没有请求到可以执行的PHP-CGI;Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于读取资源的等没有执行完毕而导致PHP-CGI进程终止。php-cgi的内存消耗大约20M-30M,适当的设置max_children,以免打满报504;max_requests指明了每个children最多处理多少个请求后便会被关闭,如果该值设置过小会导致 children频繁的自杀和建立而浪费 大量时间,若所有的children差不多都在这个时候自杀,则重建前将没有children响应请求会502,php 程序执行时间过长而超时,超过request_terminate_timeout会502。

相关推荐

阿里云国际站ECS:阿里云ECS如何提高网站的访问速度?

TG:@yunlaoda360引言:速度即体验,速度即业务在当今数字化的世界中,网站的访问速度已成为决定用户体验、用户留存乃至业务转化率的关键因素。页面加载每延迟一秒,都可能导致用户流失和收入损失。对...

高流量大并发Linux TCP性能调优_linux 高并发网络编程

其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文所面对的情况为...

性能测试100集(12)性能指标资源使用率

在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#1.CPU使用率定义:CPU处理任务的时间占比,计算公式为1-空闲时间/总...

Linux 服务器常见的性能调优_linux高性能服务端编程

一、Linux服务器性能调优第一步——先搞懂“看什么”很多人刚接触Linux性能调优时,总想着直接改配置,其实第一步该是“看清楚问题”。就像医生看病要先听诊,调优前得先知道服务器“哪里...

Nginx性能优化实战:手把手教你提升10倍性能!

关注△mikechen△,十余年BAT架构经验倾囊相授!Nginx是大型架构而核心,下面我重点详解Nginx性能@mikechen文章来源:mikechen.cc1.worker_processe...

高并发场景下,Spring Cloud Gateway如何抗住百万QPS?

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。高并发场景下网关作为流量的入口非常重要,下面我重点详解SpringCloudGateway如何抗住百万性能@m...

Kubernetes 高并发处理实战(可落地案例 + 源码)

目标场景:对外提供HTTPAPI的微服务在短时间内收到大量请求(例如每秒数千至数万RPS),要求系统可弹性扩容、限流降级、缓存减压、稳定运行并能自动恢复。总体思路(多层防护):边缘层:云LB...

高并发场景下,Nginx如何扛住千万级请求?

Nginx是大型架构的必备中间件,下面我重点详解Nginx如何实现高并发@mikechen文章来源:mikechen.cc事件驱动模型Nginx采用事件驱动模型,这是Nginx高并发性能的基石。传统...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

Docker-基础操作_docker基础实战教程二

一、镜像1、从仓库获取镜像搜索镜像:dockersearchimage_name搜索结果过滤:是否官方:dockersearch--filter="is-offical=true...

你有空吗?跟我一起搭个服务器好不好?

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。昨天闲的没事的时候,随手翻了翻写过的文章,发现一个很严重的问题。就是大多数时间我都在滔滔不绝的讲理论,却很少有涉及动手...

部署你自己的 SaaS_saas如何部署

部署你自己的VPNOpenVPN——功能齐全的开源VPN解决方案。(DigitalOcean教程)dockovpn.io—无状态OpenVPNdockerized服务器,不需要持久存储。...

Docker Compose_dockercompose安装

DockerCompose概述DockerCompose是一个用来定义和管理多容器应用的工具,通过一个docker-compose.yml文件,用YAML格式描述服务、网络、卷等内容,...

京东T7架构师推出的电子版SpringBoot,从构建小系统到架构大系统

前言:Java的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论...

Kubernetes (k8s) 入门学习指南_k8s kubeproxy

Kubernetes(k8s)入门学习指南一、什么是Kubernetes?为什么需要它?Kubernetes(k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...

取消回复欢迎 发表评论: