欢迎关注我的公众号《pencil带你玩转Linux》,回复“Linux学习资料”获取视频教程哦。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[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代码必须用标准标记括起来。
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 #如果启用,指定默认值的数据库连接函数将使用这些值代替任何用户提供的参数。有关默认值的详细信息,请参阅相关连接功能的文档。
当PHP启动时。
[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启动时动态加载扩展。