PHP-php.in,php-fpm.conf文件详解

[root@test ~]# vi /opt/app/php56/etc/php.ini

[PHP]							
#语言选项
engine = On						#php脚本语言,使其在Apache下生效(默认是on)
short_open_tag = On				#允许tags被识别(默认是off)
asp_tags = Off					#允许ASP-style tags(默认是off)
precision = 14					#浮点数显示有效位数(默认是14)
output_buffering = 4096			#输出缓冲大小(默认值是4096,为on是不受限制,为off是关闭)
zlib.output_compression = Off  	#是否启用zlib压缩,off关闭,on开启,或者特定的值,默认是4KB(默认是关闭的)
implicit_flush = Off			#强制刷新,基本是用来debug调试(默认是off)
zend.enable_gc = On				#主要是用来进行垃圾清理,释放内存(默认是on)
expose_php = Off				#是否显示php版本信息(默认是on),为了安全着想,直接off关闭显示

max_execution_time = 30			#每个脚本执行的执行时间(默认是30秒)
max_input_time = 65				#设置每个脚本用于分析数据请求的最长时间(默认是60s,设置为-1的话,是无限制)

max_input_nesting_level = 32 	#设置数组的深度(默认是注释的,且值为64)(优化)
max_input_vars = 5000			#php最大提交表单(控件)数(默认是注释的,且值为1000)(优化)
memory_limit = 128M				#设置脚本运行最大消耗的内存(默认是128M)

#php脚本运行错误信息设置
error_reporting = E_ALL & ~E_NOTICE #设置php代码运行后,出现报错的错误级别,默认值是:E_ALL & ~E_DEPRECATED & ~E_STRICT(除了后面2种级别都报,我们这个设置是除了提醒级别都报)这里的错误是广义的错误,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命错误等
display_errors = Off				#是否将错误信息作为输出一部分打印在屏幕,在生产环境建议关闭,测试环境建议打开(默认是off)
display_startup_errors = Off		#也是错误信息显示的问题,主要用来调试,除了用于调试,其他时间都应该设置为off(默认是off)
log_errors = On						#是否将php程序运行错误信息的记录到error_log中(默认是on)
error_log = /tmp/phperror.log		#设定当前错误信息记录日志路劲
还有很多错误信息的定义请参考此文档:https://www.php.net/manual/zh/errorfunc.configuration.php

variables_order = "GPCS"		#描述了php记录,GPCES是环境变量GET, POST, Cookie, ENV和SERVER的缩写,ENV的话好像是收费的(默认是GPCS),按从左到右记录,新值取代旧值。 
request_order = "GP"			#将哪些环境变量设置为全局变量(默认值是GP)
post_max_size = 8M				#php可以接受post数据的最大值(默认是8M)

register_argc_argv = Off		#是否声明argv和argc变量(没有需求的话关闭此项可以提供性能,默认值是开的)
auto_globals_jit = On	#为on的话,$_SERVER变量和$_ENV变量不会在脚本启动时就创建,而是会在第一次使用$SERVER和$ENV时才会创建。关闭的话可以提升性能(默认为on)

default_mimetype = "text/html"	#默认情况,php将Content-Type header信息作为输出媒体类型,禁用此值的话,设置为空值即可(当前值为默认值)
default_charset = "UTF-8"		#默认字符集为utf-8(默认值)

enable_dl = Off					#是否启用dl函数(默认是off,没有启用)

#http文件设置
file_uploads = On				#是否允许http文件上传(默认为on)
upload_max_filesize = 8M		#上传文件最大大小(默认值是2M)
max_file_uploads = 20			#单个请求可以进行文件上传的最大个数(默认值是20)
allow_url_fopen = On			#是否将url视为文件(http: ftp: )
allow_url_include = Off			#是否将远程的url(httpd: ftp:)文件作为一个php程序来执行

default_socket_timeout = 60		#设置socket流的超时参数(默认是60秒),也就是socket流从建立到传输再到关闭整个过程必须要在这个参数设置的时间以内完成,如果不能完成,那么PHP将自动结束这个socket并返回一个警告。

extension_dir = "/opt/app/php56/lib/php/extensions/no-debug-non-zts-20131226/"	#指定扩展模块所在目录(需要自己定义的)
zend_extension=opcache.so		#指定zend引擎(配置文件默认是没有的)

date.timezone = Asia/Shanghai	#设置默认时区(默认是没有设置的,需要用户自行设置)

[Session]						#安全选项
session.save_handler = files	#用于存储/检索数据的处理程序
session.save_path = "/tmp/phpsession"		#存储数据的路劲(是将参数传给上面那个参数用的)
;session.save_handler = memcache
;session.save_path = tcp://10.0.10.20:10007

session.use_strict_mode = 0	#会话安全管理(0,为严格会话模式,严格会话模式不接受未初始化的会话ID并重新生成会话;1,只使用服务端自己生成的session id,不使用用户客户端生成的session id)
session.use_cookies = 1			#是否启用cookie存放会话(默认是1为启用)
session.use_only_cookies = 1	#指定是否在客户端仅仅使用 cookie 来存放会话 ID。。启用此设定可以防止有关通过 URL 传递会话 ID 的攻击。自PHP 5.3.0开始,默认值为1(启用)
session.name = PHPSESSID		#指定会话名以用做 cookie 的名字。只能由字母数字组成,默认为 PHPSESSID
session.auto_start = 0			#指定会话模块是否在请求开始时自动启动一个会话。默认为 0(不启动)

session.cookie_lifetime = 0		#指定了浏览器接收cookie的会话周期,0的话直到关闭浏览器(默认值为0)
session.cookie_path = /			#指定会话cookie的路劲(默认为/)
session.cookie_domain =			#指定会话cookie的域名(默认为空)
session.cookie_httponly =		#此参数意思就是说对cookie进行标记,只能通过http协议访问也就是不能通过其他脚本语言访问(javascript),设置此参数可以减少身份的盗用(默认为空)。

session.serialize_handler = php	#定义序列化和反序列化的处理器的名字,默认是php

session.gc_probability = 1		#跟下面那个参数联合起来管理gc(垃圾回收)进程启动的概率(默认是为1)
session.gc_divisor = 1000		#同上,概率计算:gc_probabilit/gc_divisor 也就是每条请求运行gc的机会只有0.1%,主要用于大批量生产服务器(主要用session的回收)
session.gc_maxlifetime = 1440	#在经过多少s之后,session数据将被视为垃圾,通过gc程序进行回收。在session启动的时候就开始计算时间(如果被上面2个参数产生的gc程序给干掉了就不计算了,默认值是1440)

session.cache_limiter = nocache	#指定缓冲session会话的方法(有5个值:(none/nocache/private/private_no_expire/public),默认为 nocache。https://www.php.net/manual/zh/function.session-cache-limiter.php 官方文档对这里介绍比较详细
session.cache_expire = 180		#指在缓冲池里面session会话的生存周期,默认是180.此设定对 nocache 缓冲控制方法无效。

session.use_trans_sid = 0		 #默认是0(禁用的,在7.10版本之前启用此选项会带来一些不安全的因素)

session.hash_function = 0		#选择生成会话的hash函数(0 MD5 128位,1 SHA 160位)
session.hash_bits_per_character = 5  #进行转换时,每个字符存储多少位(设置默认值为5,根据默认的设置即可)

[opcache]
opcache.enable=1				#是否启用opcache加速(PHP的解析器是Zend,PHP使用Zend引擎,中间码我们也称作为操作码,OPcache通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。(0为不开启,1位开启)
opcache.enable_cli=0			#在CLi环境下,php是否启用opcache(默认是0,不开启的,1是开启的)
opcache.memory_consumption=128	#opcache共享内存存储单位大小,单位MB
opcache.interned_strings_buffer=4	#默认是为4M,在访问量大的时候,可以有效的节约内存,提高性能(字符串驻留)。
opcache.max_accelerated_files=2000	#设置内存最多可以存储多少个php文件(这个值设置最好大于所有PHP文件的总和)
opcache.max_wasted_percentage=5     #内存浪费达到此值的百分比时候,会重启调度
opcache.use_cwd=1					#开启这条指令, Zend Optimizer + 会自动将当前工作目录的名字追加到脚本键上,但是会牺牲性能。
opcache.validate_timestamps=1		#开启文件时间戳验证
opcache.revalidate_freq=2			#多久检查一次文件的更新时间,单位s ,建议60s
opcache.revalidate_path=1			#是否允许在 include_path 中进行文件搜索的优化(0为禁止,1为允许)
opcache.save_comments=0				#如果禁用,则会从代码中删除所有PHPDoc注释,以减小优化代码的大小。(0为禁止,1为允许)
opcache.load_comments=0				#是否加载文件/函数的注释。(0为禁止,1为允许)
opcache.fast_shutdown=0				#如果启用,则将快速关闭序列,加速代码
opcache.enable_file_override=0		#是否允许覆盖文件存在(file_exists等)的优化特性。

[userconfig](自定义变量,可以通过此设置,php代码能读取php.ini的配置)
environment = TEST
custom_env = dev

[root@test 7]# vim php-fpm.conf

[global]								#全局设置
pid = run/php-fpm.pid					#指定pid
error_log = /data/logs/php/php-fpm.err	#指定错误日志
log_level = notice						#设置日志记录级别
#syslog.facility = daemon				#将日志写进系统日志(还是单独的日志便于分析)
#syslog.ident = php-fpm 				#系统日志标识,当fpm进程过多的时候,需要用这个区分日志是谁的

#emergency_restart_threshold = 0	
#emergency_restart_interval = 0 
#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值(看他们写的文档默认时间都是60)。

#process_control_timeout = 0			#设置子进程接受主进程复用信号的超时时间,默认值位0
#process.max = 128 		#当php-fpm进程动态管理子进程,fpm最多能fork多少个进程(0,表示无限制,这是所有进程能起到子进程的总和,悠着点使用) 
#process.priority = -19 #设置子进程的优先级,在master以root用户启动时候有效,不设置的话,子进程会进程master进程的优先级。

#daemonize = yes 						#设置为no,用于bug调试,默认是yes
#rlimit_files = 1024					#设置master进程最多能打开多少文件
#rlimit_core = 0 						#master进程核心rlimit限制值;可选unlimited或>=0的整数,默认为系统的值。
#events.mechanism = epoll	#事件处理机制,默认自动检测,可选值:select,poll,epoll(linux>=2.5.44),kqueue,/dev/poll,port
#systemd_interval = 10s  				#当fpm被设置为系统服务时,多久向服务器报告一次状态,单位有s,m,h。

#在定义进程池是没有限制的,只要监听端口(重点是监听端口不同即可)及管理选项不同即可
[www]									#设置进程池(名字自定义)
listen = /tmp/php-cgi.sock				#监听端口(可以是sock也可以是ip加端口)
listen.backlog = 8192					#连接队列的限制,-1是无限制,建议是1024,2的幂值
listen.allowed_clients = 127.0.0.1		#允许连接fpm的地址,多个地址用逗号隔开,不配值的话啥地址都可以来连接

listen.owner = www		
listen.group = www		
listen.mode = 0666		
#用socket连接方式时,指定拥有unix socket权限的用户,默认和运行的用户一样;用tcp连接可以注释掉 

user = www
group = www
#以什么用户来允许fpm池

pm = static	#启动子进程的方式(static,启动时创建指定个数的子进程;dynamic,根据实际情况创建,至少会有一个;ondemand,启动时不创建,有需求在创建)
pm.max_children = 40					#该池同时最多存在几个进程,无论以上面那种方法启动子进程都要配置
pm.start_servers = 20					#fpm启动时创建多少个子进程,只适用动态dynamic管理
pm.min_spare_servers = 10				#服务器闲置时最少要有几个进程存在,少了就创建,也只适合动态dynamic管理
pm.max_spare_servers = 40				#服务器闲置时,最多只能存在多少个子进程,多了就kill,也只适合动态dynamic管理
request_terminate_timeout = 300			#单个请求的超时时间,有时候php.ini设置的最大执行时间未生效,这个就会来干掉那个执行太久的请求。
request_slowlog_timeout = 10			#超过这个运行时间就会写慢日志
slowlog = /data/logs/php/phpslow.log 	#慢日志存放位置

其他一些参数:
#pm.process_idle_timeout = 10s			#子进程闲置10s后就会被杀掉。
#pm.max_requests = 500 					#每个子进程最大处理500请求就被回收,可防止内存泄露。
#pm.status_path string					#FPM 状态页面的网址。如果没有设置,则无法访问状态页面,默认值:无。
更多的参考php-fpm.conf.default文件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值