php笔记

【1】windows下php运行环境安装
【2】php连接MySQL
【3】centos7下用yum的方式安装php7.2
【4】编译式安装php
【5】php日志文件
【6】php.ini配置
【7】php-fpm.conf重要参数详解
【8】扩展mysql


【1】windows下php运行环境安装
参考连接

#下载地址
     https://windows.php.net/download#php-7.3
#解压安装包至任意目录
#结合apache或nginx进行配置即可

###名词解释
    php-fpm 	#PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
    php-fastcgi 	#只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。
    php-cgi	#在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下,因此被php-fastcgi取代123456789

【2】php连接MySQL
参考连接

PHP 5 及以上版本建议使用以下方式连接 MySQL :
    MySQLi extension ("i" 意为 improved)
    PDO (PHP Data Objects)
PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。

###修改php.ini文件
    extension=mysqli
    extension_dir = "D:/Tools/PHP/php-7.3.12-Win32-VC15-x64/ext"
#执行命令
    php.exe -m12345678910

【3】centos7下用yum的方式安装php7.2
参考资料

#检查是否安装了php
    yum list installed |grep php	#yum安装检查
    rpm -qa |grep php	#rpm安装检查
    #自己编译安装的有多种方式查询,例如查找php的执行程序,或者检查进程ps -ef |grep php等方法。
#配置php源
    yum install epel-release
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#安装php
    yum install php72w-fpm	#安装php-fpm
    yum -y install  php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-pear php72w-devel #安装php的扩展
#查看是否成功安装
    php -v  #查看是否成功安装
    php -m  #查看所有的扩展
#配置文件所在的位置
    php.ini                   /etc/php.ini
    phpize                   /usr/bin/phpize
    php-config             /usr/bin/php-config
    php-fpm.conf         /etc/php-fpm.conf
    php-fpm.pid           /var/run/php-fpm/php-fpm.pid
#修改 /etc/php-fpm.d/www.conf 文件
    listen = 127.0.0.1:9000 	#修改php-fpm的监听端口
    listen.allowed_clients= 127.0.0.1	#连接的报名单,注释掉或为空则允许所有
#启动php-fpm
    service php-fpm start/stop/restart123456789101112131415161718192021222324
  • 其他扩展,按需安装

php72w-cli 
php72w-common 
php72w-devel 
php72w-embedded 
php72w-fpm 
php72w-gd 
php72w-mbstring 
php72w-mysqlnd 
php72w-opcache 
php72w-pdo 
php72w-xml 
php72w 
php72w-bcmath 
php72w-dba 
php72w-enchant 
php72w-imap 
php72w-interbase
php72w-intl 
php72w-ldap  
php72w-mcrypt 
php72w-odbc 
php72w-pdo_dblib 
php72w-pear 
php72w-pecl-apcu 
php72w-pecl-imagick 
php72w-pecl-xdebug 
php72w-pgsql 
php72w-phpdbg 
php72w-process 
php72w-pspell 
php72w-recode 
php72w-snmp 
php72w-soap 
php72w-tidy 
php72w-xmlrpc 
php72w-pecl-igbinary 
php72w-intl 
php72w-memcached 
php72w-pecl-mongodb123456789101112131415161718192021222324252627282930313233343536373839

【4】编译式安装php

1.下载php版本安装包
    wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
2.解压包
    tar -xvf php-7.1.1.tar.gz
3.进入php目录
    cd php-7.1.1
4.安装依赖包
    yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
5.编译配置
    ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --with-libxml-dir \ --with-xmlrpc \ --with-openssl \ --with-mcrypt \ --with-mhash \ --with-pcre-regex \ --with-sqlite3 \ --with-zlib \ --enable-bcmath \ --with-iconv \ --with-bz2 \ --enable-calendar \ --with-curl \ --with-cdb \ --enable-dom \ --enable-exif \ --enable-fileinfo \ --enable-filter \ --with-pcre-dir \ --enable-ftp \ --with-gd \ --with-openssl-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --with-freetype-dir \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-gettext \ --with-gmp \ --with-mhash \ --enable-json \ --enable-mbstring \ --enable-mbregex \ --enable-mbregex-backtrack \ --with-libmbfl \ --with-onig \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-zlib-dir \ --with-pdo-sqlite \ --with-readline \ --enable-session \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-libxml-dir \ --with-xsl \ --enable-zip \ --enable-mysqlnd-compression-support \ --with-pear \ --enable-opcache
6.安装
    make && make install
7.配置环境变量
    vim /etc/profile
        PATH=$PATH:/usr/local/php/bin 	#在尾部添加
        export PATH
    source /etc/profile	#执行命令使得改动立即生效
8.配置php-fpm
    cp php.ini-production /etc/php.ini 
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf 
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf 
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 
    chmod +x /etc/init.d/php-fpm
9.启动php-fpm
    /etc/init.d/php-fpm start12345678910111213141516171819202122232425

【5】php日志文件

#通过 <?php phpinfo(); ?> 可以查看日志文件位置。
#确定web服务器 ( IIS, APACHE, NGINX 等) 以哪一种方式支持PHP,通常是有下面2种方式
    1.通过模块加载的方式, 适用于apache 
    2.通过 CGI/fastCGI 模式, 该模式一般web服务器都是支持的
###通过模块加载的方式
    php程序中配置 > httpd.conf > php.ini中配置
###通过 CGI/fastCGI 模式
    php程序中配置 > php.ini中配置  123456789

【6】php.ini配置

[PHP]
engine = On		         #是否启用PHP解析引擎,使 PHP scripting language engine(PHP 脚本语言引擎)在 Apache下有效。 
short_open_tag = On		#使用简洁标志, 允许 tags 将被识别
asp_tags = Off			#不允许ASP类标志
precision = 14			#浮点类型数显示时的有效位数
y2k_compliance = On		#是否强制打开2000年适应(可能在非Y2K适应的浏览器中导致问题)。
output_buffering = 4096		#输出缓冲区大小(字节)。建议值为4096~8192。 
zlib.output_compression = Off	#zlib输出压缩
implicit_flush = Off		#是否要求PHP输出层在每个输出块之后自动刷新数据,强制flush(刷新)让PHP 告诉输出层在每个输出块之后自动刷新自身数据。
unserialize_callback_func =	#如果解串行器发现有未定义类要被实例化,将会调用 unserialize() 回调函数(用该未定义类名作为参数)。如果指定函数不存在,或者此函数没有包含/实现该未定义类,则显示警告。所以仅在确实需要实现这样的回调函数时才设置该选项。
serialize_precision = 17 		#;将浮点型和双精度型数据序列化存储时的精度(有效位数)。 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。 
disable_functions = 		#该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。
disable_classes = 		#该指令接受一个用逗号分隔的类名列表,以禁用特定的类
zend.enable_gc = On 		#启用或禁用循环引用记数搜集器,在PHP中,GC默认是开启的,你可以通过ini文件中的 zend.enable_gc 项来开启或则关闭GC。
				#当GC开启的时候,垃圾分析算法将在节点缓冲区(roots buffer)满了之后启动。缓冲区默认可以放10,000个节点,当然你也可以通过修改Zend/zend_gc.c中的GC_ROOT_BUFFER_MAX_ENTRIES 来改变这个数值,需要重新编译链接PHP。
				#当GC关闭的时候,垃圾分析算法就不会运行,但是相关节点还会被放入节点缓冲区,这个时候如果缓冲区节点已经放满,那么新的节点就不会被记录下来,这些没有被记录下来的节点就永远也不会被垃圾分析算法分析。
				#如果这些节点中有循环引用,那么有可能产生内存泄漏。之所以在GC关闭的时候还要记录这些节点,是因为简单的记录这些节点比在每次产生节点的时候判断GC是否开启更快,另外GC是可以在脚本运行中开启的,所以记录下这些节点,在代码运行的某个时候如果又开启了GC,这些节点就能被分析算法分析。
				#当然垃圾分析算法是一个比较耗时的操作。在PHP代码中我们可以通过gc_enable()和gc_disable()函数来开启和关闭GC,也可以通过调用gc_collect_cycles()在节点缓冲区未满的情况下强制执行垃圾分析算法。这样用户就可以在程序的某些部分关闭或则开启GC,也可强制进行垃圾分析算法。 

expose_php = On			#在网页头部显示php信息
max_execution_time = 30   		#每个脚本最大执行秒数
max_input_time = 60  		#每个脚本用来分析请求数据的最大限制时间                                                 
memory_limit = 1024M          	#每个脚本执行的内存限制
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT               #显示所有的错误,除了提醒 
display_errors = On          	#显示失误(该关闭,换成日志显示)
display_startup_errors = Off       	#显示启动失误,甚至当display_erroes打开了,发生于PHP的启动的步骤中 的错误也不会被显示,强烈建议保持使 display_startup_errors 关闭, 除了在改错过程中。 
log_errors = On                   	#生成错误错误日志显示
log_errors_max_len = 1024       	#设定error_log最大长度
ignore_repeated_errors = Off    	#打开后,不记录重复的信息
ignore_repeated_source = Off   	#打开后当记录重复的信息时忽略来源
report_memleaks = On             	#报告内存泄露,仅在debug编译模式下有效
track_errors = Off           	#保存最近一个 错误/警告 消息于变量 $php_errormsg (boolean) 
html_errors = On                	#是否开启静态网页错误提示
variables_order = "GPCS"        	#这条指示描述了PHP 记录 GET, POST, Cookie,Environment and Built-in 这些变量的顺序。 (以 G, P, C, E & S 代表,通常以 EGPCS 或 GPC 的方式引用)。按从左到右记录,新值取代旧值。
request_order = "GP"         	#此指令描述的顺序PHP注册GET,POST和COOKIE变量_REQUEST数组。注册是由左到右,新的值将覆盖旧值。如果这个指令没有设置,variables_order中使用$ _REQUEST内容。请注意,默认分配的php.ini文件中不包含’C’饼干,出于安全方面的考虑。
register_argc_argv = Off        	#此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息). 如果你不使用这些变量,为了提升性能应该关闭此选项.                        
auto_globals_jit = On             	#当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.为了使此指令有效,PHP指令 register_globals, register_long_arrays,以及 register_argc_argv 必须被关闭.
post_max_size = 10M      		#PHP可以接受的最大的POST数据大小
auto_prepend_file =              	#在任何PHP文档之前或之后自动增加文件
auto_append_file =             	#两个有趣的变量是auto_prepend_file以及auto_append_file。这些变量指定PHP自动添加到任何PHP文档文件头或文件尾的其他文件。这对于为PHP产生的页面添加页眉或页脚非常有用,可以节省为每个PHP文档添加代码的时间。但需要注意这里的指定文件将会添加到所有的PHP文档中,所以这些变量必须适合单应用程序(single-application)的服务器。所包含的文件要么是PHP脚本,要么是普通的HTML文档。嵌入式PHP代码必须用标准<?php…?>标记括起来。
default_mimetype = "text/html"     	#PHP内建默认为text/html
doc_root =                 	#PHP的"根目录"。仅在非空时有效,如果safe_mode=On,则此目录之外的文件一概被拒绝。  如果编译PHP时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行, 则必须设置此指令(参见手册中的安全部分)。替代方案是使用的cgi.force_redirect指令
user_dir =                       	#告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。 也就是在用户目录之下使用PHP文件的基本目录名,例如:"public_html" 
extension_dir = "/usr/local/php-5.6.27/lib/php/extensions/no-debug-non-zts-20131226"  ##存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录
enable_dl = Off                   	#是否允许使用dl()函数。dl()函数仅在将PHP作为apache模块安装时才有效,禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。 在安全模式下始终禁用dl()函数,而不管此处如何设置。
file_uploads = On               	#是否允许HTTP方式文件上载 
;upload_tmp_dir = "/tmp"        	#用于HTTP上载的文件的临时目录(未指定则使用系统默认) 
upload_max_filesize = 10M       	#上载文件的最大许可大小
max_file_uploads = 20           	#最大同时可以上传20个文件
allow_url_fopen = On               	#是否允许打开远程文件
allow_url_include = Off          	#是否允许include/require远程文件
default_socket_timeout = 60        	#默认的socket超时时间

[CLI Server]
cli_server.color = On             	#控制内置Web Server的终端输出有无颜色

[Date]
;date.timezone = PRC
date.timezone = "Asia/Shanghai"   	#在未设定 TZ 环境变量时用于所有日期/时间函数的默认时区

[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000       	#Ped_mysql的缓存大小
pdo_mysql.default_socket=        	#默认的socket时间

[Phar]
[mail function]
SMTP = localhost                   	#仅用于win32系统 
smtp_port = 25                    	#邮件端口号默认是25
mail.add_x_header = On            	#是否开启最大的header
[SQL]
sql.safe_mode = Off              	#如果启用,指定默认值的数据库连接函数将使用这些值代替任何用户提供的参数。有关默认值的详细信息,请参阅相关连接功能的文档。

[ODBC]
odbc.allow_persistent = On        	#允许或阻止持久连接
odbc.check_persistent = On         	#在重用前检查连接是否可用
odbc.max_persistent = -1           	#持久连接的最大数目,-1意味着没有限制.
odbc.max_links = -1               	#最大连接数(持久 + 非持久).-1意味着没有限制
odbc.defaultlrl = 4096             	#长字段处理.返回变量的字节数.0 意味着略过
odbc.defaultbinmode = 1           	#二进制数据处理.0意味着略过,1按照实际返回,2转换到字符.;查看odbc_binmode和odbc_longreadlen 的文档来获取针对uodbc.defaultlrl和uodbc.defaultbinmode的解释
[Interbase]
ibase.allow_persistent = 1       	#允许或阻止持久连接
ibase.max_persistent = -1        	# 持久连接的最大数目,-1意味着没有限制.
ibase.max_links = -1               	#最大连接数(持久 + 非持久).-1意味着没有限制.
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"  	#数据库时间记录模式
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"

[MySQL]
mysql.allow_local_infile = On     	#是否允许本地文件连接数据库
mysql.allow_persistent = On       	#允许或禁止 持久连接
mysql.cache_size = 2000            	#mysql缓存大小
mysql.max_persistent = -1          	#持久连接的最大数目. -1 意味着没有限制.
mysql.max_links = -1           	#连接的最大数目(持久和非持久)。-1 代表无限制
mysql.default_port =         	#mysql_connect() 使用的默认端口,如不设置,mysql_connect() 将使用变量 $MYSQL_TCP_PORT,或在/etc/services 下的mysql-tcp 条目(unix), 或在编译是定义的 MYSQL_PORT(按这样的顺序) Win32环境,将仅检查MYSQL_PORT。 
mysql.default_socket =            	#用于本地 MySql 连接的默认的套接字名。为空,使用 MYSQL 内建值
mysql.default_host =               	#mysql_connect() 默认使用的主机(安全模式下无效) 
mysql.default_user =               	#mysql_connect() 默认使用的用户名(安全模式下无效) 
mysql.default_password =           	#mysql_connect() 默认使用的密码(安全模式下无效) 
mysql.connect_timeout = 60         	#连接超时时间,默认是60s
mysql.trace_mode = Off            	#跟踪模式

[MySQLi]
mysqli.max_persistent = -1         	#持久连接的最大数目. -1 意味着没有限制
mysqli.allow_persistent = On       	#允许或拒绝之久连接
mysqli.max_links = -1               #最大连接数. -1 意味着没有限制
mysqli.cache_size = 2000           	#连接缓存大小
mysqli.default_port = 3306         	#连接的端口号,mysqli_connect()默认的端口号.如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT;或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).;Win32 只会查找MYSQL_PORT值.
mysqli.default_socket =           	#对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysqli.default_host =           	#mysqli_connect()的默认host值(在安全模式中不会生效)
mysqli.default_user =               #mysqli_connect()的默认user值(在安全模式中不会生效)
mysqli.default_pw =              	#mysqli_connect()的默认password值(在安全模式中不会生效),mysqli_connect() 的默认password值(在安全模式中不会生效). 注意在此文件中保存密码一般来说是 *糟糕* 的主义.*任何* 使用PHP的用户可以执行 ‘echo get_cfg_var(“mysqli.default_password”)并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysqli.reconnect = Off            	#允许或阻止持久连接

[mysqlnd]
#线上服务器选择禁止这两个选项,可以减少不必要的数据库访问。如果需要相关统计,可以使用MySQL工具或者监控。
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On      	#允许或阻止持久连接.
pgsql.auto_reset_persistent = Off  	#检测用在 pg_pconnect() 上的中断了的持久连接。需要一些损耗。
pgsql.max_persistent = -1       	#持久连接的最大数目. -1 意味着没有限制.
pgsql.max_links = -1             	#最大连接数 (持久 + 非持久). -1 意味着没有限制
pgsql.ignore_notice = 0            	#是否忽略 PostgreSQL 后端通告消息.;通告消息记录会需要一点开销.
pgsql.log_notice = 0               	#是否记录 PostgreSQL 后端通告消息.;除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息。

[Sybase-CT]
sybct.allow_persistent = On         #允许或阻止持久连接.
sybct.max_persistent = -1          	#持久连接的最大数目. -1 意味着没有限制
sybct.max_links = -1             	#最大连接数 (持久 + 非持久). -1 意味着没有限制
sybct.min_server_severity = 10     	#显示出的错误最小严重程度
sybct.min_client_severity = 10     	#显示出的消息最小严重程度

[bcmath]
bcmath.scale = 0                  	#用于所有bcmath函数的10十进制数数字的个数
[browscap]
[Session]
session.save_handler = files     	#用于保存/取回数据的控制方式 
session.save_path = "/var/lib/php/session"		#在 save_handler 设为文件时传给控制器的参数
;session.save_handler = redis
;session.save_path = "tcp://192.168.2.20:6380?auth=china"
session.use_strict_mode = 0      	#此设置防止会话模块使用未初始化的会话 ID. 也就是说,会话模块仅接受由它自己创建的有效的会话 ID, 而拒绝由用户自己提供的 ; 会话 ID。使用 JavaScript 对 cookie 进行注入就可以实现对会话 ID 的注入,  ;甚至可以在 URL 的查询字符串中或者表单参数中实现会话 ID 的注入。   大部分应用没理由也不应该接受由用户提供的未经初始化的会话 ID
session.use_cookies = 1            	#是否使用cookies
session.cookie_secure = Off       	#仅允许在 HTTPS 协议下访问会话 ID cookie。 如果你的 web 站点仅支持HTTPS,那么必须将此选项设置为 On
session.use_only_cookies = 1     	#这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击;默认是0.
session.name = PHPSESSID           	#session 的名字(同时作为cookie的名称)
session.auto_start = Off        	#在请求开始时初始化 session
session.cookie_lifetime = 0        	#为按秒记的cookie的保存时间
session.cookie_domain =           	#ession.cookie_domain 指定了要设定会话 cookie 的域名。默认为无,表示根据 cookie 规范产生 cookie 的主机名
session.cookie_httponly =          	#是否将httpOnly标志增加到cookie上,
session.serialize_handler = php   	#用于序列化数据的处理器. php是标准的PHP序列化器
session.gc_probability = 1         	#按百分比的'garbage collection(碎片整理)'进程在每次 session 初始化的时候开始的可能性。 
session.gc_divisor = 1000          	#session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化 ; 时启动 gc(garbage collection 垃圾回收)进程的概率 此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求 中有 1% 的概率启动 gc 进程。session.gc_divisor 默认为 100。
session.gc_maxlifetime = 1440     	#在这里数字所指的秒数后,保存的数据将被视为’碎片(garbage)’并由gc进程清理掉
session.referer_check =            	#检查HTTP Referer来防止带有id的外部URL.;HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.
;session.cache_limiter = none                                        
session.cache_limiter = nocache   	#设置为{nocache,private,public,}来决定HTTP缓冲的类型;留空则防止发送anti-caching头
session.cache_expire = 180        	#文档在n分钟之后过期.                   
session.use_trans_sid = 0       	#使用过渡性的 sid 支持,若编译时许可了 --enable-trans-sid ,使用 trans sid 可能让你的用户承担安全风险.使用此项必须小心.; – 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.;– 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.– 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.
session.hash_function = 0      	#选择hash方法;0:MD5(128 bits);1:SHA-1(160 bits)
session.hash_bits_per_character = 5 #当转换二进制hash数据到可读形式时,每个字符保存时有几位
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"    #URL rewriter会在已经定义的一组HTML标签内查找URL.; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏字段否则就是在URL中附加信息.; 如果你你想遵守XHTML, 删除form的入口.; 注意 所有合法的入口都需要一个”=”符号, 甚至是没有任何值的.
[MSSQL]
mssql.allow_persistent = On        	#允许或禁止 持久连接 
mssql.max_persistent = -1          	# 持久连接的最大数目. -1 意味着没有限制.
mssql.max_links = -1          	#最大连接数 (持久 + 非持久). -1 意味着没有限制
mssql.min_error_severity = 10       #示的错误的最低严重性 
mssql.min_message_severity = 10    	#示的消息的最低严重性 
mssql.compatibility_mode = Off     	#PHP 3.0 老版本的兼容模式.
mssql.secure_connection = Off     	#当连接到服务器时使用NT验证
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off      	#清除功能是否开启,本文中为关闭状态
[soap]
soap.wsdl_cache_enabled=1         	#打开或关闭WSDL缓冲特性.
soap.wsdl_cache_dir="/tmp"        	#设置SOAP扩展存放缓冲文件的目录
soap.wsdl_cache_ttl=86400        	#(存活时间)设置当缓冲文件被用来替换原有缓冲文件的秒数
soap.wsdl_cache_limit = 5      	#最小缓存
[sysvshm]
[ldap]
ldap.max_links = -1          	#每个进程的最大LDAP连接数

[mcrypt]
[dba]
[opcache]
zend_extension="opcache.so"       	#PHP启动时要加载的动态可加载Zend扩展名(例如APD)的名称。
[curl]
[cassandra]
;extension="cassandra.so"      	#在PHP启动时动态加载扩展。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201

【7】php-fpm.conf重要参数详解

pid = run/php-fpm.pid	         #pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启
error_log = log/php-fpm.log	#错误日志,默认在安装目录中的var/log/php-fpm.log
log_level = notice	         #错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
emergency_restart_threshold = 60	#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。
emergency_restart_interval = 60s	
process_control_timeout = 0	#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes                     #后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen = 127.0.0.1:9000        	#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置.
listen.backlog = -1	         #backlog数,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1	#允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接
listen.owner = www
listen.group = www
listen.mode = 0666            	#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www                	#启动进程的帐户和组
pm = dynamic                        #对于专用服务器,pm可以设置为static。如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定:
pm.max_children                     #,子进程最大数
pm.start_servers                    #,启动时的进程数
pm.min_spare_servers                #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers                #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 1000	         #设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.status_path = /status	         #FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
ping.path = /ping	                  #FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
ping.response = pong	         #用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
request_terminate_timeout = 0	#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
request_slowlog_timeout = 10s	#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
slowlog = log/$pool.log.slow	#慢请求的记录日志,配合request_slowlog_timeout使用
rlimit_files = 1024	         #设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0	                  #设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值.
chroot =	                           #启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
chdir =	                           #设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
catch_workers_output = yes	         #重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.1234567891011121314151617181920212223242526272829303132

【8】扩展mysql

###MySQLi扩展的安装与配置  
    配置extension_dir='ext目录所在位置'
    extension=mysqli
###验证mysqli扩展是否可以使用
<?php
//验证mysqli扩展是否已开启
phpinfo();
//检测扩展是否已加载返回的结果是true 或false。
var_dump(extension_loaded('mysqli'));
var_dump(extension_loaded('gettext'));
?>1234567891011
上一篇:LNMP环境搭建


下一篇:Git提交撤销