安装DZ乱码前PHP7.0" t% l& q5 y: P! M9 [$ U
( a, F2 S' a# a3 D- [PHP]
* A9 z8 s7 }* `$ W% }1 E
' n2 a5 w4 G- m% F' j- ;;;;;;;;;;;;;;;;;;;+ d; A2 A$ m* B# F8 T U6 G; \( S5 R
- ; About php.ini ;
' _! A q8 `* d. j# G+ R - ;;;;;;;;;;;;;;;;;;;
8 a) D6 I* T! D' N - ; PHP's initialization file, generally called php.ini, is responsible for
7 S: F3 t/ z+ a- K - ; configuring many of the aspects of PHP's behavior.
( l b: A, z9 [ |$ \: s& T9 N
: C& g& ^- A4 ~, Y* _- ; PHP attempts to find and load this configuration from a number of locations.
" V" K# P+ K0 d' L# K - ; The following is a summary of its search order:) l4 n" ~9 O [ t7 f0 d
- ; 1. SAPI module specific location.
) O4 c% r: v. q' e - ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
- a# d* @5 j& @5 d* c, }) _7 {; h - ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)- F8 z" V+ K/ Y2 V* Q
- ; 4. Current working directory (except CLI)3 z1 }: D2 ~. Z D j1 ~! z
- ; 5. The web server's directory (for SAPI modules), or directory of PHP
, G- f0 G3 I) s' `/ N6 L3 d - ; (otherwise in Windows)0 |1 J6 Y+ |2 E( I3 ?* B
- ; 6. The directory from the --with-config-file-path compile time option, or the
" G5 V7 K1 S: U - ; Windows directory (C:\windows or C:\winnt)
- A- e2 t; S1 c# Y* W3 v a - ; See the PHP docs for more specific information.
1 o1 ]4 L* U7 t: B( z - ; http://php.net/configuration.file
' h1 i7 I! @# T - $ {& q+ ~, L/ l1 P! K
- ; The syntax of the file is extremely simple. Whitespace and lines
: C* {# E( v$ @. y: T1 z - ; beginning with a semicolon are silently ignored (as you probably guessed).
$ l) d) j! y$ v( ^& Z - ; Section headers (e.g. [Foo]) are also silently ignored, even though
! E& p0 A& j8 z6 }8 j, _9 a7 _ - ; they might mean something in the future.; Y2 S, L: a9 r' t" g
% ]5 G- }" u* j, h- \ Z- O6 h6 i1 ~- ; Directives following the section heading [PATH=/www/mysite] only1 v6 Y) W0 e1 s9 |5 O2 S5 y0 _
- ; apply to PHP files in the /www/mysite directory. Directives
* o" ?* m( ~ e& b( p - ; following the section heading [HOST=www.example.com] only apply to
+ R: ]( [) [* \$ ?$ k2 O! p - ; PHP files served from www.example.com. Directives set in these0 K+ M9 @, f* z" Y. P" [1 o# W
- ; special sections cannot be overridden by user-defined INI files or
: V8 Z) _ s% H8 p1 H, ~: H - ; at runtime. Currently, [PATH=] and [HOST=] sections only work under
4 @$ w# y3 k2 b( J - ; CGI/FastCGI.
$ K1 c p6 r/ ?' J' M$ i* n - ; http://php.net/ini.sections+ t, H i4 \* h9 l, Z( i9 k
- . _ G! w( c* p: z6 w' @
- ; Directives are specified using the following syntax:
$ |' c; V& M# L - ; directive = value
6 r8 K8 l( r+ p C - ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
( ^: X5 N' p; O, Q: e0 D' { - ; Directives are variables used to configure PHP or PHP extensions.
, u- }% @( U% }2 u - ; There is no name validation. If PHP can't find an expected! w2 ?. U7 J1 g9 w
- ; directive because it is not set or is mistyped, a default value will be used.
+ Y1 A, s6 g; W2 I - . L( s C! \! I+ L4 m9 f
- ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one3 X" t4 i: W3 P4 S9 p) ^+ ?; J$ G
- ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression% w7 |& Y& E: G) M; k
- ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
! E5 X3 Q" K# `& F- O - ; previously set variable or directive (e.g. ${foo})
: o g' g$ X7 j1 D9 h" K; G; T - q9 o/ O; p0 w7 V7 Q- {
- ; Expressions in the INI file are limited to bitwise operators and parentheses:
( N- i1 B8 [! \" U - ; | bitwise OR
' p- g, U0 I" n+ ^1 g& @& y - ; ^ bitwise XOR
% Y; |4 B/ d( { - ; & bitwise AND
" g" {6 z& e% x2 C- O" S - ; ~ bitwise NOT; K2 g5 z* ?/ k: K2 i
- ; ! boolean NOT+ V0 X9 W* Q+ e
- P& A' a$ r3 }1 L' Q- ; Boolean flags can be turned on using the values 1, On, True or Yes.7 c3 n8 n \5 X# D4 W: X
- ; They can be turned off using the values 0, Off, False or No.
8 J* x: }+ j3 s L) w# K* l; z - 4 I W; ~# @* |% l0 D
- ; An empty string can be denoted by simply not writing anything after the equal
5 {4 t3 W6 b* c# b+ e- w - ; sign, or by using the None keyword:
) I' a4 i8 V/ e/ ^& K. \ - 7 k' ~8 L- ^5 w, X/ S
- ; foo = ; sets foo to an empty string
5 ^& B |: d9 V8 q# |# W: l - ; foo = None ; sets foo to an empty string
& X- g! k/ G* R( d4 z - ; foo = "None" ; sets foo to the string 'None'8 V; x8 p( G- ~0 s5 o" F# z
- ; k! c8 I1 l# i# w0 F* I8 S
- ; If you use constants in your value, and these constants belong to a- x& M: W) a6 l. i
- ; dynamically loaded extension (either a PHP extension or a Zend extension),8 c0 j2 k% `2 F" Z8 w, N! c
- ; you may only use these constants *after* the line that loads the extension.
+ l" V2 H2 N% D' ?* y8 K/ s7 h, l
( r* A0 g7 F' N; t$ U- ;;;;;;;;;;;;;;;;;;;
( g1 d, X4 A$ m - ; About this file ;
/ k: @1 l0 @% e5 [5 C7 n - ;;;;;;;;;;;;;;;;;;;3 e, i+ K% c8 u( [2 K. D% L
- ; PHP comes packaged with two INI files. One that is recommended to be used
9 H$ g W: N9 V" t) g7 p - ; in production environments and one that is recommended to be used in/ r3 n& C5 P9 `: J9 f. S U
- ; development environments.9 w; Q0 d8 Z/ y$ ` p$ A: @8 q
- \$ M1 a0 W/ s. m Z0 [
- ; php.ini-production contains settings which hold security, performance and
q( t- D; L% c. f - ; best practices at its core. But please be aware, these settings may break5 S0 s- [- X1 m$ y |
- ; compatibility with older or less security conscience applications. We
, ~* ^0 w, J \* B- ~- M - ; recommending using the production ini in production and testing environments.1 m8 U" ~! ^+ [1 f5 o% E7 h5 u' W
+ E9 o0 u* y* s; i- ; php.ini-development is very similar to its production variant, except it is! v7 l7 D% O* k
- ; much more verbose when it comes to errors. We recommend using the8 d; N* F: `% o5 d8 r
- ; development version only in development environments, as errors shown to. u. V, _* [: [4 I9 C7 Y4 d; X j) T
- ; application users can inadvertently leak otherwise secure information.
; C' S4 X: Y: C+ r: k; k6 P - # y6 u8 ~$ N3 c6 f; g6 |
- ; This is php.ini-production INI file.; _) t& C) V, Z7 o: y4 h; Y- C ]
- . C% b' R8 p5 U f: S' `! k
- ;;;;;;;;;;;;;;;;;;;
2 s: @ W7 K, { - ; Quick Reference ;
# z! f) [! [- }8 w - ;;;;;;;;;;;;;;;;;;;- ^% { X# e% U
- ; The following are all the settings which are different in either the production. y3 s# P/ R2 G. f7 G9 C3 w8 G8 h
- ; or development versions of the INIs with respect to PHP's default behavior.3 u+ W: ?! ~ ?9 L0 w7 w6 o( x; K
- ; Please see the actual settings later in the document for more details as to why' |# N$ c* p8 O5 o/ M( B4 k- O
- ; we recommend these changes in PHP's behavior.' x7 c. d1 n$ C( \5 M) O# d( g
' ~0 S% S$ C0 q2 w( ?1 O) F8 S, n9 |- ; display_errors) M* W. n2 {$ H6 i% [ R ]
- ; Default Value: On
% A ~* u% s/ l5 ~ - ; Development Value: On% G% [( J9 r9 o8 \2 s
- ; Production Value: Off
7 F" d. _( H* }! S4 \9 `
- y* d' V- M1 J( A d5 f) _2 N- ; display_startup_errors$ l/ P5 n+ ?8 [
- ; Default Value: Off
3 e) F9 t6 o6 ?: t) d4 | - ; Development Value: On
( }$ t* C$ q7 X j$ p- G5 y - ; Production Value: Off# I r7 X) F1 _ j; F9 |
- ! o% n7 l# e8 x6 o( P! ]; C
- ; error_reporting
& M+ M, H- \* T - ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED) ~: h5 A/ V. D. u9 X( s6 Q
- ; Development Value: E_ALL# V* I/ }% Q. q
- ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT& u2 w2 K( W F! G6 E) n4 D. d
- ) x5 V0 _ c2 ^6 r+ F0 G6 m! K
- ; html_errors9 e. S- y4 O( Y* }
- ; Default Value: On
5 T8 |4 @1 X! `; y7 G' k3 Y+ J# n7 s - ; Development Value: On. M) B& K$ }5 `# Z! R; a& w
- ; Production value: On
; G4 |8 C7 X. A, c
5 S9 N y6 o" p# P7 P' f5 A- z+ R# c: P- ; log_errors' L* T0 d: n( p% Z7 {$ j3 G
- ; Default Value: Off. V2 s U6 H+ e! V! Y( B8 y/ b2 u& r
- ; Development Value: On9 d2 a( @3 i; F# D
- ; Production Value: On/ e) e# G- n4 S, ?$ A2 C3 V
- & {1 V& u1 d# d% H+ m- \4 h4 w
- ; max_input_time R0 T% E4 D# S* y* I6 r
- ; Default Value: -1 (Unlimited)
: q* ~0 o O- H5 P - ; Development Value: 60 (60 seconds)* s: Y) V" o' }" [
- ; Production Value: 60 (60 seconds)$ [. `& ? }8 {: v0 B
- $ \9 i' e: Z2 o2 Y. S
- ; output_buffering; P$ T+ l/ P, H. S# F
- ; Default Value: Off3 l7 ?' Q! K+ _7 i( U
- ; Development Value: 40965 O; J. Y4 W# p0 C3 T
- ; Production Value: 4096
/ |% R' g; l2 ~/ u - # v, r8 b' R/ }
- ; register_argc_argv3 W. K, e3 \+ b6 M: A |
- ; Default Value: On# p, s1 e$ p+ n F5 w# Q
- ; Development Value: Off
$ G& A0 E, [( p g' m( u$ M6 L - ; Production Value: Off; ]9 J3 o5 \6 B, F4 E3 m
- " |; ?; z# |1 v Z; v/ e& z7 a R" L: P
- ; request_order
2 ]& f1 D' N }. L; Z# C - ; Default Value: None: k4 S3 e; F( b3 S. P. [% E% U1 @9 S
- ; Development Value: "GP"" _* g' N, p/ o/ H7 F
- ; Production Value: "GP"
) {, T6 E# s6 {4 I - 4 K% n' r6 j5 X3 b
- ; session.gc_divisor' d, X3 E( L3 s$ F- k; ~; |
- ; Default Value: 100
7 e9 R" W" g, Z7 X8 C- ?3 U5 c) { - ; Development Value: 1000
, B# V" c' L" S" O+ L - ; Production Value: 1000+ O8 b) u0 C+ w u) y
/ i! S. h# ], i- ; session.hash_bits_per_character, e+ [. a) o V+ I9 R+ ]5 [! u
- ; Default Value: 4
0 {7 `. A) |3 }' }! V E3 s' q - ; Development Value: 59 d- f9 K* m; f
- ; Production Value: 5# R. G$ o5 T5 G& u
- % y% v1 c: I8 _3 Z& T
- ; short_open_tag
( a: J# I; s2 p0 \+ [' Z; ]4 H - ; Default Value: On3 y( i: N4 ^8 q8 w3 P* {, g0 ~8 l
- ; Development Value: Off+ `* n3 b0 W6 R" B# m- {: S* \
- ; Production Value: Off; s7 d8 O6 m6 g% g0 }6 {; i# F$ l$ u$ D
% p) L& v3 u, M* j& v/ m3 ?- ; track_errors
+ O1 b8 P; {: h8 h3 i - ; Default Value: Off9 c3 }# m+ n H8 V+ a# K6 v
- ; Development Value: On
! |, V9 I; J' e+ @. n% h - ; Production Value: Off
+ U0 l( q; i0 ^+ n7 i; C
n% n* j3 U& z2 ?6 H- ; url_rewriter.tags* Z# @8 C) o0 W6 O
- ; Default Value: "a=href,area=href,frame=src,form=,fieldset="$ d/ j2 Z8 @) _6 p' d5 ~
- ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
' R9 F/ d1 y* _6 A' D - ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"4 n3 S# n2 V+ ?3 Q" `
5 j' n- o: v7 Q- ; variables_order
, C, u/ }$ ^$ @1 X - ; Default Value: "EGPCS"
2 u, {5 ~' m' s! r/ X+ }- J) z$ A - ; Development Value: "GPCS"
6 u @. L. Q+ l3 }9 D - ; Production Value: "GPCS"$ k5 \7 t' |3 O7 x) j
% U$ n: }+ q" Y: g. \, d- ;;;;;;;;;;;;;;;;;;;;
& W- }$ P; U1 w' J7 F6 R2 [" p6 t - ; php.ini Options ;
/ C0 S# z7 d1 P) f. Z* ~ - ;;;;;;;;;;;;;;;;;;;;
3 a6 q9 {0 j# T - ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini". ~ r4 S. j: V+ J
- ;user_ini.filename = ".user.ini"! Y6 L+ b/ H: ~1 h
- ; e: A# [5 ^. w* M2 U# D3 l8 h
- ; To disable this feature set this option to empty value0 ^' v" {5 Q- F: I. H! E" o) a( d
- ;user_ini.filename =
9 P" \: d/ n9 \3 w3 N
% u( F$ q- Y1 {5 r1 d1 x- ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
% x$ I2 i/ ]8 `* _: d: j3 a - ;user_ini.cache_ttl = 300" o, x! R: B8 d; A# u" ]
- P+ o+ _( c6 \
- ;;;;;;;;;;;;;;;;;;;;
8 L/ p& v& a9 k, ^$ _. W - ; Language Options ;' b. K R9 L6 B) Z4 f! M
- ;;;;;;;;;;;;;;;;;;;;
6 e. w7 h7 T- g; j: G5 O8 V
- u! ~' X& b9 T; Q- k- ; Enable the PHP scripting language engine under Apache.0 I9 O J7 r$ s6 H3 e* X. F
- ; http://php.net/engine
( ]& A) `7 @0 D5 j+ v' d2 Q# @# ~ - engine = On
; Q; j9 `" I5 k
2 c5 }6 K C5 q! y6 `- ; This directive determines whether or not PHP will recognize code between5 ?/ x* k) I4 }0 A5 P
- ; <? and ?> tags as PHP source which should be processed as such. It is
+ G1 R+ r9 q* F6 _* C, m( y4 b2 Y$ L - ; generally recommended that <?php and ?> should be used and that this feature |8 g1 Y" F2 J& `
- ; should be disabled, as enabling it may result in issues when generating XML
6 s; [6 X0 p8 M$ K - ; documents, however this remains supported for backward compatibility reasons.8 P$ x: l/ B$ v. a
- ; Note that this directive does not control the <?= shorthand tag, which can be$ [+ ~& [ \# F( N; K, ^& q O
- ; used regardless of this directive.; {! z! r& P9 p6 z. O2 y; c
- ; Default Value: On
' j: O' F9 Y. F - ; Development Value: Off
. m6 E+ R( ]3 y t4 L, |. }; y" x, l7 j - ; Production Value: Off2 O1 b/ H0 I- Q) M% R9 ]+ w' ]" t7 Z
- ; http://php.net/short-open-tag7 J9 o4 w( o7 p( s* `$ C) {
- short_open_tag = On
8 h3 S% Z c4 K2 o% @ - v l1 [ ?+ n7 `0 H; m$ u' [
- ; The number of significant digits displayed in floating point numbers.
, a1 V- Z$ D1 d" _9 ` w - ; http://php.net/precision2 Y5 H/ U5 S2 g" @
- precision = 14; N* F4 H2 J, S5 ]9 T3 m' _$ J
- . W9 m3 U- f8 \8 ~
- ; Output buffering is a mechanism for controlling how much output data
& C( _# W- F3 k- T - ; (excluding headers and cookies) PHP should keep internally before pushing that# ~: M+ N8 q3 ]9 E3 S; F
- ; data to the client. If your application's output exceeds this setting, PHP! h5 m. r) \5 T
- ; will send that data in chunks of roughly the size you specify.
. m. B, d* A5 b( N. O - ; Turning on this setting and managing its maximum buffer size can yield some; d* {0 M+ A$ o h% h' p
- ; interesting side-effects depending on your application and web server.% }! o6 U4 a# k, _+ Q
- ; You may be able to send headers and cookies after you've already sent output
) [. _4 J: r: h$ Q- { - ; through print or echo. You also may see performance benefits if your server is7 I1 z+ w# I( J5 r
- ; emitting less packets due to buffered output versus PHP streaming the output: q- q" {- n. X7 k4 A' e: u
- ; as it gets it. On production servers, 4096 bytes is a good setting for performance
9 z# a( w0 q2 I/ ]! ^# e& N, j - ; reasons.( T5 E. o$ J$ m/ F. U
- ; Note: Output buffering can also be controlled via Output Buffering Control
5 C# w( v, Q2 |& K - ; functions.
3 M/ \- \6 O7 ` - ; Possible Values:
# N5 m" g! c: u6 _ - ; On = Enabled and buffer is unlimited. (Use with caution)
3 b' J9 t: g$ i - ; Off = Disabled# I9 L/ e* |. M9 }
- ; Integer = Enables the buffer and sets its maximum size in bytes.
$ d- H* X% \, w - ; Note: This directive is hardcoded to Off for the CLI SAPI
, _. o. Z* P6 X7 k! S4 Q - ; Default Value: Off8 _3 W1 v8 j% q+ y+ b" l
- ; Development Value: 40967 O9 h4 u& ~0 K, B4 `
- ; Production Value: 40965 Z, r$ ^: ?1 B @4 J( L
- ; http://php.net/output-buffering0 ]5 e1 z+ m S
- output_buffering = 4096( u# N$ [0 J$ I; ~
+ w( t1 M/ t) _1 G* P3 `8 i4 i- ; You can redirect all of the output of your scripts to a function. For
# |7 ?' }0 x6 m; s2 b) t1 | - ; example, if you set output_handler to "mb_output_handler", character
8 z( T& O. @0 \3 `7 B a0 q - ; encoding will be transparently converted to the specified encoding.
/ q8 _8 Q4 h0 D9 z - ; Setting any output handler automatically turns on output buffering.' f9 L8 `/ w. [/ Z. N& s q1 v5 F
- ; Note: People who wrote portable scripts should not depend on this ini8 M1 R& T8 Q {! H8 K7 T6 J
- ; directive. Instead, explicitly set the output handler using ob_start().
- N1 ? o+ z% \+ y" T - ; Using this ini directive may cause problems unless you know what script0 j' u1 s& w0 n: z3 J. l: w
- ; is doing.
6 I: E6 O1 |) P - ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
2 s) F E# {. x. A/ r0 v - ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
( q8 }! F0 U' ]' U1 |6 @2 d - ; Note: output_handler must be empty if this is set 'On' !!!!
5 e0 v5 M3 i4 M3 Y+ W" h/ B5 x - ; Instead you must use zlib.output_handler.
' F! u( K ?% M8 p+ E$ y - ; http://php.net/output-handler
7 U7 y( I: s, P' F - ;output_handler =
( |* v, R5 B" C e- g( P9 q3 A. B5 D
- d9 k) U& N" f7 h; s7 F- ; Transparent output compression using the zlib library
8 |; @) {) l: B* w - ; Valid values for this option are 'off', 'on', or a specific buffer size
& C3 \9 b% O3 M5 v& Y - ; to be used for compression (default is 4KB)2 [$ e, ]5 P) I4 x* j4 l0 `' w
- ; Note: Resulting chunk size may vary due to nature of compression. PHP, H2 ~2 o; x* s! [1 |- U- C
- ; outputs chunks that are few hundreds bytes each as a result of5 Q" a! L* _( T3 m( ], H: I/ `
- ; compression. If you prefer a larger chunk size for better
7 j! F! d5 [, W- r, F9 D - ; performance, enable output_buffering in addition.& @% Q6 q# G- [. e/ [8 V: V$ n
- ; Note: You need to use zlib.output_handler instead of the standard
* ]/ D7 \ c( ~4 _3 a4 u - ; output_handler, or otherwise the output will be corrupted.
) S+ a, F- M d( E* O, k' H& k - ; http://php.net/zlib.output-compression
5 h* l9 R2 `$ T6 |4 V - zlib.output_compression = Off
' i, s9 z# e7 K% j# Y
, g9 u8 [0 H5 j' U8 ~0 z4 P; T- ; http://php.net/zlib.output-compression-level2 }% t0 K3 f0 @; h$ @+ s
- ;zlib.output_compression_level = -1
. }1 u0 F. Q5 T. p4 M( e( _
& p3 K9 b" e+ K- ; You cannot specify additional output handlers if zlib.output_compression0 u: K+ e& O% l/ i1 o" a
- ; is activated here. This setting does the same as output_handler but in
; n3 c# j/ F* w. ]: C; W: M - ; a different order.
7 r: X# y q+ Y% _+ N H- _ - ; http://php.net/zlib.output-handler
3 d2 ^- {7 D( _5 z% h - ;zlib.output_handler =8 Y1 O- G6 K* X, p+ K$ Q6 ?3 X
" w; @0 L: i$ K- ; Implicit flush tells PHP to tell the output layer to flush itself
0 L- Q4 Y2 d8 ~1 Q" {" x! S0 f - ; automatically after every output block. This is equivalent to calling the
, {7 j& e/ n6 |" M - ; PHP function flush() after each and every call to print() or echo() and each% \' l6 \8 T1 H+ n; h5 A: Y
- ; and every HTML block. Turning this option on has serious performance
% ^ H8 Y6 V- t* C# z4 }9 m5 P! R - ; implications and is generally recommended for debugging purposes only.7 X" j( p2 ^4 V9 z
- ; http://php.net/implicit-flush
5 j& P" S& e7 @ H0 t4 t# a# k6 y - ; Note: This directive is hardcoded to On for the CLI SAPI
4 j. R. o/ @5 M3 d# D! W0 y j1 ? - implicit_flush = Off
, Q0 d2 ^: j: f9 X6 v) \5 j4 B - ' P2 I3 p9 T# y" ^- X* A% e c# o
- ; The unserialize callback function will be called (with the undefined class'
. `7 p; ?) |8 q6 O1 v6 @6 l - ; name as parameter), if the unserializer finds an undefined class
" Y1 P4 Y# V# @* Y3 { - ; which should be instantiated. A warning appears if the specified function is, X, M% _9 K' r0 N! m/ ^% X# {
- ; not defined, or if the function doesn't include/implement the missing class.
& i' b3 x6 T% B2 W) ]/ i - ; So only set this entry, if you really want to implement such a
" {! {9 d4 t* w. C* S: J7 j+ w - ; callback-function." c# h$ p4 a1 m' f0 ~
- unserialize_callback_func =+ F6 D- v4 m+ B& ?+ i+ }
- * s: W: Z- y6 e5 @6 c- F, d
- ; When floats & doubles are serialized store serialize_precision significant4 d* P8 ^. |. j. X* C
- ; digits after the floating point. The default value ensures that when floats
0 Q$ T3 h/ R% K: T0 ` - ; are decoded with unserialize, the data will remain the same.
7 |3 B. t5 n; }8 R f - serialize_precision = 17
5 }6 l2 a# U, s. _1 [
4 ^# @8 [' M) q8 R5 ^3 g- ; open_basedir, if set, limits all file operations to the defined directory! |% \% g6 ]- L, {: `6 [
- ; and below. This directive makes most sense if used in a per-directory* O+ X# {7 E! r, C4 K9 [! B
- ; or per-virtualhost web server configuration file.5 t/ e1 D5 n2 e4 k$ A. m
- ; http://php.net/open-basedir3 m. [: |5 e2 L& ]0 U- C
- ;open_basedir =
; V* F* ~, G: j - $ o+ `8 E& A8 u- B( Q
- ; This directive allows you to disable certain functions for security reasons.6 m# Z! J$ N* W2 h
- ; It receives a comma-delimited list of function names.; ^: U' B; ^0 c' P" E
- ; http://php.net/disable-functions3 D" f1 o! [( ^
- disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru& E3 {& e" H, k/ b9 l. K
$ s, Q7 C, G9 J( r- ; This directive allows you to disable certain classes for security reasons.
8 Q k4 [& n6 H( e B9 X/ ` - ; It receives a comma-delimited list of class names.
4 ~1 }/ ~ G# F* c4 G Y% b - ; http://php.net/disable-classes
( S& f D' ^* r x- Q6 h1 i - disable_classes =
. X+ n, f `0 X# ?/ t - 0 p- B; U* d, R& J' v& H
- ; Colors for Syntax Highlighting mode. Anything that's acceptable in
( W/ p1 h) h' V# n - ; <span style="color: ???????"> would work.4 S& u7 N# g5 @" G
- ; http://php.net/syntax-highlighting
N- Y U' S. p' _ - ;highlight.string = #DD0000$ _) E* Q8 s5 T
- ;highlight.comment = #FF9900
! a8 I) F) P6 v- w/ j - ;highlight.keyword = #007700
E D# _# |' g; [% q6 W - ;highlight.default = #0000BB% H! t! V/ l0 d5 ]/ B, x
- ;highlight.html = #000000
4 r: q G7 b& l! o K2 O ]: f8 S/ h
4 a3 n/ C3 ]2 ?) t- ; If enabled, the request will be allowed to complete even if the user aborts! ~* J2 q. u7 O& B
- ; the request. Consider enabling it if executing long requests, which may end up
- b, H5 \5 K, G: X' S - ; being interrupted by the user or a browser timing out. PHP's default behavior/ w1 b. c v& |5 X# p+ U
- ; is to disable this feature.3 {8 ]" f- T/ w. a
- ; http://php.net/ignore-user-abort
; {5 m( |6 V8 | - ;ignore_user_abort = On8 W! c. [" b+ x! M$ ~
- 9 g7 l# n# Z: z E% ^
- ; Determines the size of the realpath cache to be used by PHP. This value should) U9 B) j8 W8 b1 W- w: W9 a* r
- ; be increased on systems where PHP opens many files to reflect the quantity of
/ S1 S, M8 m* `6 _3 C1 [ - ; the file operations performed.
1 B6 y; ^8 S: g3 Z0 n - ; http://php.net/realpath-cache-size
6 H/ a+ I3 f+ j$ k( y9 z. Z: E - ;realpath_cache_size = 4096k% W x: A% i, G9 {) I- r. M
" r- p6 w: p7 j. e/ U- ; Duration of time, in seconds for which to cache realpath information for a given7 B5 ?2 b) R- a' p. X! s! @/ c
- ; file or directory. For systems with rarely changing files, consider increasing this
6 A% E5 ?* \# C8 H: {/ a8 i0 t - ; value.
9 }0 Y/ L/ M! Y) @+ l; k/ u% b - ; http://php.net/realpath-cache-ttl
% [( `1 l5 Y* G+ b1 o' i2 d - ;realpath_cache_ttl = 120" i' S& i) z% g3 S1 n) L, k
9 O$ c0 R3 i5 G4 J$ j- ; Enables or disables the circular reference collector.) n4 D% ]3 E( a A3 R
- ; http://php.net/zend.enable-gc+ @ p+ G& z* F1 e+ Y
- zend.enable_gc = On
# o5 \# [4 {- o - , F( R/ u4 X- t6 {
- ; If enabled, scripts may be written in encodings that are incompatible with7 C, _5 c4 e3 C' }* w
- ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
0 q3 p( S9 Y8 W& b& V - ; encodings. To use this feature, mbstring extension must be enabled.
- ^( w) a( P6 C% q, } - ; Default: Off
7 _+ ]3 ]$ B: ~: F2 @ - ;zend.multibyte = Off% ]) ]. Q: F; a6 z% S$ H" Y
) v4 t- A9 a$ b' L- ; Allows to set the default encoding for the scripts. This value will be used7 A$ `+ d7 X3 K2 b0 }% I3 z: a
- ; unless "declare(encoding=...)" directive appears at the top of the script.- c! H: w! H! R1 _: U
- ; Only affects if zend.multibyte is set.
" R1 Y' D; Z& Z: n( Z9 f7 R' G - ; Default: """ J1 l( S5 j5 I6 Y# m# s. W
- ;zend.script_encoding =
, a# I9 X; ?3 @3 j( x3 O1 K. T - * a5 w! u1 E8 I) E! w) I! k
- ;;;;;;;;;;;;;;;;;3 Z' i. B& R5 g0 U
- ; Miscellaneous ;: y g/ p" p2 n" Y9 J8 b# x) h0 \
- ;;;;;;;;;;;;;;;;;! G4 r: @2 N8 S7 l% Q* D
- 4 e. H- ?9 u. O* a
- ; Decides whether PHP may expose the fact that it is installed on the server
/ o1 N! o7 E. j - ; (e.g. by adding its signature to the Web server header). It is no security
) a! q& H& F d* s& g9 A9 L - ; threat in any way, but it makes it possible to determine whether you use PHP
. w5 Q( O' v; p - ; on your server or not.
. `& f, H, u5 k! i( { - ; http://php.net/expose-php( S8 V/ n1 C* q. @ o2 G" B1 @
- expose_php = On
' k3 T" U) ]+ I$ v* A) I
5 R4 U- ^0 t/ L" V. _& A- ;;;;;;;;;;;;;;;;;;;$ K! b3 ^' Q8 {' i7 H
- ; Resource Limits ;; R3 o' X; L7 s. A! p5 a% ?
- ;;;;;;;;;;;;;;;;;;;* L& K; }/ ^5 y. b6 V1 Y4 ^( H
- * f4 y5 B7 H/ i: Q
- ; Maximum execution time of each script, in seconds
2 w' o" \# p# y$ c8 |; X - ; http://php.net/max-execution-time( ?9 C" J( A' a+ K, A4 ]) u
- ; Note: This directive is hardcoded to 0 for the CLI SAPI
) c* F: \- |6 L6 @3 k3 W - max_execution_time = 300
% \2 }8 e9 a( R' |, e - 5 R% h4 ~. o' |: t$ D, H/ l' I
- ; Maximum amount of time each script may spend parsing request data. It's a good! B/ }1 v C( B: o. b
- ; idea to limit this time on productions servers in order to eliminate unexpectedly
6 e8 }% k: e/ M6 l( r1 ?3 [ - ; long running scripts./ E. r9 x6 D" i! ? P" J1 y. d5 G
- ; Note: This directive is hardcoded to -1 for the CLI SAPI! R2 A$ @/ O7 ^8 E/ U9 n6 x5 L
- ; Default Value: -1 (Unlimited)
2 e' }2 X# e& S z+ G - ; Development Value: 60 (60 seconds)
0 a2 T0 R1 O4 S: n - ; Production Value: 60 (60 seconds), I+ ?; x- `- S7 l8 T9 ^3 c" M
- ; http://php.net/max-input-time$ m8 V( {7 |: i1 z# b) Y Z
- max_input_time = 607 f/ A$ j: ]) U* L: e3 |( K
- / M* h0 ^& x- O8 m" I8 ?
- ; Maximum input variable nesting level
, J- V- J6 L/ c - ; http://php.net/max-input-nesting-level0 B5 t1 U Z: G; x
- ;max_input_nesting_level = 64% I+ e5 Z7 R1 ?) P9 Q# G( W) L
- , Z; I" o9 Z4 f1 g- b2 I4 H4 \: o
- ; How many GET/POST/COOKIE input variables may be accepted. f( n9 V: j) l$ A" r% ~% u
- ; max_input_vars = 1000$ a, `- ]' s' s, {# A% L
- ; T) ]6 X+ m; l: y
- ; Maximum amount of memory a script may consume (128MB)3 B. {" e( {- D7 r& w
- ; http://php.net/memory-limit0 r* t" h3 ?4 |( f3 H) x
- memory_limit = 128M& E- T7 P6 W! z* ~3 I, [5 S
- ; q: I1 \+ _0 V5 h9 H/ ?! W
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: }, o. \0 }. h7 D3 W - ; Error handling and logging ;
% S1 _% W! ?5 J0 u7 V: ] - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; s) \9 V- I; K0 a
+ O# {* L Q. d- ; This directive informs PHP of which errors, warnings and notices you would like% R1 ?; r4 o; M- S
- ; it to take action for. The recommended way of setting values for this4 `' ?: q( `" v6 D# A# a% w
- ; directive is through the use of the error level constants and bitwise! I8 l5 n/ |8 n) d' W8 U
- ; operators. The error level constants are below here for convenience as well as
; m% f D3 d0 Z# G) p - ; some common settings and their meanings.5 u% a: k* `; f; y6 ?! S
- ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
6 u( v: W; @$ ^ - ; those related to E_NOTICE and E_STRICT, which together cover best practices and Y5 N2 N+ {+ o
- ; recommended coding standards in PHP. For performance reasons, this is the( G% Z G! w' f% h' {
- ; recommend error reporting setting. Your production server shouldn't be wasting
: d6 U# W" e" V# y- P, {, t - ; resources complaining about best practices and coding standards. That's what5 S( f; _, F6 W, q) a; T- M- u7 o
- ; development servers and development settings are for.5 N; f7 h% B- N W
- ; Note: The php.ini-development file has this setting as E_ALL. This
% G8 \' | {2 a' |5 u8 n+ n - ; means it pretty much reports everything which is exactly what you want during
* O0 u) |4 F1 B* @$ f# g @ - ; development and early testing.4 g! Y' \& j! ]2 F% q
- ;7 B9 o7 b) `! j! {
- ; Error Level Constants:0 P5 N& t x3 k7 P7 {. [1 J; q$ D: q
- ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)
2 w; e2 y% B& [+ v - ; E_ERROR - fatal run-time errors
) g2 o |# U" v. O/ ~+ H - ; E_RECOVERABLE_ERROR - almost fatal run-time errors
; C6 e% p5 `1 A5 g; p# c - ; E_WARNING - run-time warnings (non-fatal errors)
$ v" V7 w) b: M/ ]5 _4 |) v7 e - ; E_PARSE - compile-time parse errors
. f* n2 E* F% A( A& L - ; E_NOTICE - run-time notices (these are warnings which often result
* K/ P: i% T5 R' ^ - ; from a bug in your code, but it's possible that it was5 J- ?9 m# h5 Y3 Y% m) b1 U5 y
- ; intentional (e.g., using an uninitialized variable and
' B# T6 C- l) Y2 h; s - ; relying on the fact it is automatically initialized to an8 K) [3 C# [! t, D! Y' [
- ; empty string)
; I& o4 P! `/ f- x% y - ; E_STRICT - run-time notices, enable to have PHP suggest changes
9 M z8 E* L' G0 c* h - ; to your code which will ensure the best interoperability
1 s1 d) B2 y4 j- S - ; and forward compatibility of your code
3 H# O# c4 G' U) e1 J8 ~' Z - ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup" B" q# u) k% W) @8 M
- ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
% H+ Q% d! k7 Q1 x: O - ; initial startup
' m, \3 Y. q' ]3 ~9 w" s - ; E_COMPILE_ERROR - fatal compile-time errors
6 d# r1 m: ?, b9 k6 [5 _& q - ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)" F: ^" f. _* f% |7 C5 D9 ?; }$ {
- ; E_USER_ERROR - user-generated error message
* V* I3 _* R. I6 z6 D+ i - ; E_USER_WARNING - user-generated warning message( @6 J; v/ ]5 Z' m( L4 ~1 Y
- ; E_USER_NOTICE - user-generated notice message
; o0 a# j j; D8 v# e' h% G, f1 o" h - ; E_DEPRECATED - warn about code that will not work in future versions! }: f3 v6 F* b9 E* r) [
- ; of PHP
$ n) U0 |8 ]! u( O - ; E_USER_DEPRECATED - user-generated deprecation warnings% D! T3 ]/ ?- _, z+ u3 |8 U3 Y
- ;$ }) ?2 P& r4 E( Q* f* G: q
- ; Common Values:
# o- b9 y, e! k. S' D1 z( v - ; E_ALL (Show all errors, warnings and notices including coding standards.)
- X/ C! U8 @ ~/ f - ; E_ALL & ~E_NOTICE (Show all errors, except for notices)
: {; a% W3 s: l2 ]9 y2 ~+ B1 J( Z - ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)8 j9 e& c9 J) D$ G) h
- ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
/ z% p% q8 N5 B9 [% H" A( R9 ^ - ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, a+ ~# O' E) O. x' D
- ; Development Value: E_ALL* Q$ A3 o. S5 p& I+ U
- ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
, l8 g1 w" U y) _& N$ v; }$ j/ u7 } - ; http://php.net/error-reporting( n& ~; w& [! J7 B
- error_reporting = E_ALL & ~E_NOTICE
W6 M% A! E/ r$ N8 e
5 E5 W+ k0 S, S+ @- x- ; This directive controls whether or not and where PHP will output errors,
, n* ^) t& @2 O: e5 o! R - ; notices and warnings too. Error output is very useful during development, but
2 L) n0 R# c7 k# ]/ ~ - ; it could be very dangerous in production environments. Depending on the code1 U2 m6 L+ j; m' ^- A9 ~. U6 E" \6 V; Y
- ; which is triggering the error, sensitive information could potentially leak0 [5 }0 A& w) U7 P% e, Y
- ; out of your application such as database usernames and passwords or worse.
( ?' Y' T* v) {4 H2 @ - ; For production environments, we recommend logging errors rather than0 t8 J- _6 y8 [0 t' D* C& t+ {
- ; sending them to STDOUT.+ A$ q/ x- Z9 [. x. `! |8 B W
- ; Possible Values:
- ?. @: A0 s2 g2 d. ` - ; Off = Do not display any errors) a, X$ M! P3 @* n# O4 ~
- ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)7 A/ Q( U! ^; t/ n: R
- ; On or stdout = Display errors to STDOUT k) S& X- v9 Y# f- T
- ; Default Value: On9 a) B' T" I4 A; q. C7 E% t; ~
- ; Development Value: On& B( j, ~- X6 p8 u
- ; Production Value: Off
& C+ j# Y$ H4 a+ y" g - ; http://php.net/display-errors4 h2 T1 h4 E- f+ ]
- display_errors = On
1 {' j8 B0 l1 x9 h, J7 o8 r
1 S2 N: }% c5 i- ; The display of errors which occur during PHP's startup sequence are handled# Y; m3 }3 L2 U
- ; separately from display_errors. PHP's default behavior is to suppress those
, R5 c( E$ {* F( W% b2 s - ; errors from clients. Turning the display of startup errors on can be useful in
2 Y- @% J1 s. k8 U+ w8 i9 w - ; debugging configuration problems. We strongly recommend you
* H. A+ b. |1 ^1 L3 p, k* z0 ^3 M - ; set this to 'off' for production servers.
$ S7 f# b; ]! ] u1 e - ; Default Value: Off' U8 S- N2 m2 l2 f0 o: N
- ; Development Value: On
* b8 E, y% J! y6 X. B. V - ; Production Value: Off% K- ]6 @" q0 Y8 m) [
- ; http://php.net/display-startup-errors @7 }8 K; L) d
- display_startup_errors = Off% i( r# _. k2 J) f) e" y5 K
; `) D0 I& g* \- f5 g: [! G8 {- ; Besides displaying errors, PHP can also log errors to locations such as a
5 {: O* w$ Q+ K I7 I+ @% }& [ - ; server-specific log, STDERR, or a location specified by the error_log
& L4 r2 ?% p+ c7 r4 ] - ; directive found below. While errors should not be displayed on productions
. s" b. X! W% w3 l6 f% `# v - ; servers they should still be monitored and logging is a great way to do that.' z ]1 i+ p) \$ e
- ; Default Value: Off
3 S. o: B. e) s; r - ; Development Value: On
- A4 i6 o: P, _ _- Q h( H - ; Production Value: On
3 [0 G9 `. l+ X) Y- v; N - ; http://php.net/log-errors
7 h' A7 r" F% Z* J - log_errors = On( A( S0 z% u$ Y7 H7 x. A
- 2 F' r- A8 G8 r+ |/ M6 e) r
- ; Set maximum length of log_errors. In error_log information about the source is! |' D: s4 |8 I( y& f) r
- ; added. The default is 1024 and 0 allows to not apply any maximum length at all.) ]: C6 m7 r, E
- ; http://php.net/log-errors-max-len
/ K3 W* n' i' c: N1 ?* i - log_errors_max_len = 1024 ?1 _( M$ b; ?; U# v
+ W4 g* D7 y4 C7 W( G3 C" H! D- ; Do not log repeated messages. Repeated errors must occur in same file on same2 Y" ?0 ?3 h. B) A
- ; line unless ignore_repeated_source is set true.$ p/ l, H/ Q5 x% H. R9 M# B
- ; http://php.net/ignore-repeated-errors
# s4 ~3 C! n( J - ignore_repeated_errors = Off
% V( I; F0 v! V
; w2 N% f5 |# L7 ^/ ~- ; Ignore source of message when ignoring repeated messages. When this setting9 i% a' o! x3 o2 ^
- ; is On you will not log errors with repeated messages from different files or( ~4 O. H5 y% @9 \ {, P+ P( M
- ; source lines.
: V, @1 X5 W$ X) }1 E1 D - ; http://php.net/ignore-repeated-source
9 J7 y; W2 V& K/ ?/ _ - ignore_repeated_source = Off/ B' n! Q/ A/ \! f
! B5 A4 G5 P5 U( F. w6 a- ; If this parameter is set to Off, then memory leaks will not be shown (on
0 V+ K7 O! S, k - ; stdout or in the log). This has only effect in a debug compile, and if7 ]5 p! S7 U7 r7 v% B
- ; error reporting includes E_WARNING in the allowed list# \3 P* W& y" A, F S" c" K
- ; http://php.net/report-memleaks. H3 }0 Z. c4 S* Z3 p/ ^4 Q! u0 m5 r
- report_memleaks = On, a m/ I3 r l
/ M, }9 x1 d+ _! v4 X- ; This setting is on by default.
; \; k. V. a% u; n' e9 J" J/ k - ;report_zend_debug = 0
~' f$ C9 T2 w3 m6 ?" s( e - ( }( X7 e* Z) Y T% u; z# u
- ; Store the last error/warning message in $php_errormsg (boolean). Setting this value
' l' a5 Z, x5 ?+ d2 |9 ` - ; to On can assist in debugging and is appropriate for development servers. It should- z% r7 g7 W( {6 m) G
- ; however be disabled on production servers.
5 f8 n1 x# _, Z% z9 x - ; Default Value: Off
( q/ ?3 t" r% u7 ` - ; Development Value: On
( l) u- S* ]6 W: |0 d5 b6 r/ K - ; Production Value: Off4 q! [. V: s9 J
- ; http://php.net/track-errors. M1 p4 h; K! q$ b+ V
- track_errors = Off f5 J5 S1 W Z% m* ^& W
: S0 z# r; i0 V# ^- ; Turn off normal error reporting and emit XML-RPC error XML$ x w4 e- |: H
- ; http://php.net/xmlrpc-errors4 j3 f! _4 ]2 k5 ~- X
- ;xmlrpc_errors = 0- r2 S! Z( T/ i9 l/ o; Z/ v7 w
- q# P# c; u& I9 i0 N$ `2 z- ; An XML-RPC faultCode" a# m- C9 @- {* e' p7 O# K
- ;xmlrpc_error_number = 0# r( s# K2 z) U7 m1 P! {
- 9 E2 U5 Z. h7 F9 K7 h; U/ A6 w
- ; When PHP displays or logs an error, it has the capability of formatting the
7 ]( S* @8 v' P7 T; K: f' P* g - ; error message as HTML for easier reading. This directive controls whether' N% r0 U5 k& m0 v* o" G' l
- ; the error message is formatted as HTML or not.
* X/ K- s0 L& I4 V5 h4 q/ [ - ; Note: This directive is hardcoded to Off for the CLI SAPI
) l. S' {5 v; K8 M: G/ e - ; Default Value: On; x+ D" l: X: P( K3 S8 n
- ; Development Value: On$ a: I W$ r' D% y2 l! p t
- ; Production value: On1 W( y, D3 ]3 A) v; q6 @3 R/ o' D
- ; http://php.net/html-errors
& i6 c5 p9 m l6 _ - html_errors = On3 \0 e/ A9 f7 v0 c {
/ Q4 a7 p4 s: O9 X- ; If html_errors is set to On *and* docref_root is not empty, then PHP' B) Y$ {- H7 F- t1 z
- ; produces clickable error messages that direct to a page describing the error% y* N+ P- T: W/ w4 d4 `( p9 p
- ; or function causing the error in detail.
6 U- z1 v" B) A - ; You can download a copy of the PHP manual from http://php.net/docs
& C8 O0 `- J5 A" d/ y8 P' P# v - ; and change docref_root to the base URL of your local copy including the
* U- i: c' y$ P- d' r - ; leading '/'. You must also specify the file extension being used including
& ~9 x0 }" P2 h1 [% ]. d( C# ~ - ; the dot. PHP's default behavior is to leave these settings empty, in which: U. A+ |/ x% @. f! p0 t& ~( J
- ; case no links to documentation are generated.
5 s1 f. }+ D" b+ j* f+ S8 O$ M - ; Note: Never use this feature for production boxes.6 A- `% Y' ~1 K# t
- ; http://php.net/docref-root+ N. K) g# q7 |. T* C
- ; Examples
& E3 @, I; M7 M" _+ d3 M- `$ J1 E - ;docref_root = "/phpmanual/"( r' i# v8 h# r
- 6 b3 M, J {! p6 T9 u
- ; http://php.net/docref-ext' R) i g: A7 \ E6 j7 a( W9 ~
- ;docref_ext = .html
' E& o+ E% D2 @4 O - . E. i& C& `! E4 U; V# U
- ; String to output before an error message. PHP's default behavior is to leave( Q+ A2 j+ K3 l1 q1 P% `- J6 o
- ; this setting blank.) M" G: y* L6 R) O
- ; http://php.net/error-prepend-string
3 S5 D9 E' o8 b& w( i, T - ; Example:$ N' U4 ^) x" T3 k* t5 W2 @- U
- ;error_prepend_string = "<span style='color: #ff0000'>"
+ I4 m4 [ v8 F" q( F - 1 w: [& M* J, m2 @
- ; String to output after an error message. PHP's default behavior is to leave% t- Z5 ^+ L+ x. M; F5 k; [
- ; this setting blank.
; G- G2 y, x; o0 `/ o# W# G+ P/ V - ; http://php.net/error-append-string: y* k v/ S3 f1 c( v; {
- ; Example:4 P* A! O# S+ ?1 `7 N% k- G
- ;error_append_string = "</span>"
$ a/ ^6 D* }8 D/ t( X
/ p5 f3 [8 @! E# n2 `* y" P$ `- ; Log errors to specified file. PHP's default behavior is to leave this value
; Q% \. O. T4 ? D$ m7 Z! q - ; empty.
: O& u4 ~$ m m' }1 W$ x - ; http://php.net/error-log# H5 W/ p) a8 }! d* _
- ; Example:
5 j; e t' z% {& x" n$ u - ;error_log = php_errors.log
4 i! G( E3 {6 m( V. \) P8 e3 j - ; Log errors to syslog (Event Log on Windows).
9 d# R7 f! f* @' t0 k - ;error_log = syslog
* i6 Y6 K3 Q4 L, |9 }; V# d
1 o$ Y7 t5 F. l8 d8 M. Q- ;windows.show_crt_warning5 P% w- _1 E x& w* N8 n( r% h
- ; Default value: 09 v7 Z: R- W! T! G
- ; Development value: 0% d, s6 S/ F+ R: M1 c V+ A0 q) I
- ; Production value: 0) C! s1 M9 E- m4 m5 ^' W- ^
# u U( S9 Z$ K% x6 H" T0 s- ;;;;;;;;;;;;;;;;;) Z: a% w& @# H
- ; Data Handling ;
( q1 s8 ~4 A3 G# I+ X - ;;;;;;;;;;;;;;;;;! ], J4 N; |5 g( e# r+ R5 ?) O
; H1 R" x6 }4 O4 W1 X. S' [- ; The separator used in PHP generated URLs to separate arguments.
9 b! F& G2 T ~, b - ; PHP's default setting is "&".
8 C- k0 w& S( Y7 E) N - ; http://php.net/arg-separator.output
d& X; k+ J" b7 y$ \$ y - ; Example:
3 _/ |, o" q6 n- Z3 L' \ - ;arg_separator.output = "&"
* Y4 M4 |; q: K$ V, T1 A9 a - 2 ]: d4 f/ R% o% C8 q1 X0 T6 R( c
- ; List of separator(s) used by PHP to parse input URLs into variables.6 R# f8 h9 y, z5 ]( q z
- ; PHP's default setting is "&".
- c3 j; l, u1 u2 M - ; NOTE: Every character in this directive is considered as separator!
+ Z# n4 i: b" A: l( x - ; http://php.net/arg-separator.input
/ N0 N5 d3 X0 f! i" R+ O" |+ P {; L - ; Example:3 k6 b9 t$ f+ {1 z" C" m' ?
- ;arg_separator.input = ";&"
9 P3 e4 p9 E" g - * s& a1 ^ t, y1 M$ ^# w9 x
- ; This directive determines which super global arrays are registered when PHP
% j: _8 M H! B - ; starts up. G,P,C,E & S are abbreviations for the following respective super
* F, s% J2 H! r/ M! j! s - ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
2 j9 H+ L4 d4 a6 w8 i# G: R - ; paid for the registration of these arrays and because ENV is not as commonly, D. Z' N$ i! f
- ; used as the others, ENV is not recommended on productions servers. You
# b: H5 L Q+ Q0 A2 I8 t- ?/ q - ; can still get access to the environment variables through getenv() should you: p/ E$ O1 p8 V2 u% U" f- F% D
- ; need to.
/ d. U+ \9 v" D7 ?5 i - ; Default Value: "EGPCS"" m- c) b+ ]' D6 w2 `
- ; Development Value: "GPCS"# c: z; D* q- u8 T( G' f8 g% R
- ; Production Value: "GPCS";+ u* Z5 U& j. O) f! d& b, J4 v
- ; http://php.net/variables-order
/ P2 Z7 a' G2 m' M+ u1 ^; |$ O - variables_order = "GPCS"
% L5 u6 n$ E( z. N& b4 R. F - 2 B) r9 K0 v" n7 C
- ; This directive determines which super global data (G,P & C) should be) I$ ]7 m$ J' I( ]
- ; registered into the super global array REQUEST. If so, it also determines
D3 j8 V$ K( c$ t - ; the order in which that data is registered. The values for this directive# e! e' g9 K1 l& @: e
- ; are specified in the same manner as the variables_order directive,9 l* X& _/ H' ]6 j" ?; j
- ; EXCEPT one. Leaving this value empty will cause PHP to use the value set
) T" a0 o; @( s - ; in the variables_order directive. It does not mean it will leave the super: S4 o6 `8 T% o
- ; globals array REQUEST empty.! t1 E8 o, j9 h- X! j
- ; Default Value: None
/ b P1 G- r+ ~ - ; Development Value: "GP"6 ]8 T7 C _+ M, c3 ]
- ; Production Value: "GP"
$ u6 J _$ e3 e# D - ; http://php.net/request-order
+ a7 }2 K& W) }# l - request_order = "GP"7 G) f1 ^' s: J4 r3 Z8 M" H! |$ g9 E
# w. w4 c( N5 r B: [- ; This directive determines whether PHP registers $argv & $argc each time it6 H$ N% |5 v, `9 n! _0 \& R
- ; runs. $argv contains an array of all the arguments passed to PHP when a script
* t1 g) T8 }# Z# ?# Y- C/ L - ; is invoked. $argc contains an integer representing the number of arguments
% O$ W! ^, r: e+ q2 ] w; w - ; that were passed when the script was invoked. These arrays are extremely
/ {# a; o: v4 B - ; useful when running scripts from the command line. When this directive is
+ ^ y+ {, c7 k7 H( w* i' p - ; enabled, registering these variables consumes CPU cycles and memory each time
" n0 ^. I( A* |# I" W s* N - ; a script is executed. For performance reasons, this feature should be disabled) |% ?/ s7 w, W3 T" r* C+ V9 S
- ; on production servers.
2 n* j: F. M" i( M+ ~ - ; Note: This directive is hardcoded to On for the CLI SAPI
0 K" j. Y7 [1 i) A7 R - ; Default Value: On
+ n* l' J* F2 z" g# k - ; Development Value: Off/ ~$ M2 |) Z4 Q& O
- ; Production Value: Off
" i0 L% F+ K! T - ; http://php.net/register-argc-argv+ _7 w4 d# q) ~
- register_argc_argv = Off
. z# J& a: m# n- ~
. F+ g& ^# z+ I5 |- ; When enabled, the ENV, REQUEST and SERVER variables are created when they're+ n" P" D. c u _! l& {' n+ Z) g5 \
- ; first used (Just In Time) instead of when the script starts. If these
! N8 h6 J% z0 m3 c+ p - ; variables are not used within a script, having this directive on will result
( u+ r* K) h5 C0 u8 M- {" F* a: a/ H - ; in a performance gain. The PHP directive register_argc_argv must be disabled$ x- K2 I: y* f( x
- ; for this directive to have any affect.- U+ e3 z6 [6 c1 U
- ; http://php.net/auto-globals-jit: Z6 r5 ?/ M3 d! d- ?! A: M+ ^
- auto_globals_jit = On
, Q( ]( I& [/ {( d( f - & ?; j+ z: y8 k! ~* H& R6 ^6 w" m
- ; Whether PHP will read the POST data.
2 P( Y/ } v) R0 A: o6 I' g+ l: ^ - ; This option is enabled by default.% X( Y3 ^# n% R6 Y* ~. D9 V
- ; Most likely, you won't want to disable this option globally. It causes $_POST
0 N) K1 _- E @7 b7 j - ; and $_FILES to always be empty; the only way you will be able to read the
! A* t& {+ q5 E& q - ; POST data will be through the php://input stream wrapper. This can be useful
' W( M, Q* @$ t3 S0 u5 b {& K - ; to proxy requests or to process the POST data in a memory efficient fashion.
. Y, b. i1 L5 T+ E4 ^1 H. l# d - ; http://php.net/enable-post-data-reading; U; T8 r0 |" r
- ;enable_post_data_reading = Off
2 g* [ Y ?, X+ U1 O - 8 d. @' o& E# D
- ; Maximum size of POST data that PHP will accept.
- }1 |2 n5 e& k( M4 z - ; Its value may be 0 to disable the limit. It is ignored if POST data reading# V1 ~' `2 p. O. w$ U8 ?3 p
- ; is disabled through enable_post_data_reading./ @$ K. }* _; V1 _. n; l" `5 s: F; V
- ; http://php.net/post-max-size
$ j- C* @- k9 x - post_max_size = 50M w+ N- a4 F7 A! l: C8 p
% ?; P2 [* N: B) g0 p2 e3 ?- s- ; Automatically add files before PHP document.
' ] D0 @* z9 V! C& m9 n - ; http://php.net/auto-prepend-file
9 _, G p& Z9 Z+ J - auto_prepend_file =
! L s' q. o. X/ F. G: E: C5 b
, y( c/ N- X. W+ d; F- ; Automatically add files after PHP document.+ v0 L$ S* b+ M& \' g4 n! P
- ; http://php.net/auto-append-file3 S/ O. N9 P5 Z4 b& O
- auto_append_file =9 b2 R+ e2 P- E: y
q( e# R2 F4 U: M9 ~- ; By default, PHP will output a media type using the Content-Type header. To
" i) M7 D4 `! C$ W' S- i - ; disable this, simply set it to be empty.
, r$ d" L# {4 a* c2 X& s+ b - ;* Q i ^- T, X% @3 O6 b9 ?
- ; PHP's built-in default media type is set to text/html.4 B+ e6 L5 m$ Y8 A3 J
- ; http://php.net/default-mimetype) l7 {& x. K5 D5 T% s. g' D
- default_mimetype = "text/html"" \2 X2 O5 k$ ^( M* c( x
) P6 |% z6 [# z" u# C' _- ; PHP's default character set is set to UTF-8., i/ j6 l" \/ n' y/ o
- ; http://php.net/default-charset" x3 o9 |6 x$ h6 [
- default_charset = "UTF-8"
! _# }* z8 m5 E$ r - 4 N/ J$ ?+ Z1 g6 s; Q! m) q
- ; PHP internal character encoding is set to empty.
+ h4 V# j7 D3 R q - ; If empty, default_charset is used.
& l$ n$ ?9 }+ _7 {( w - ; http://php.net/internal-encoding
! @% o# H. E, y0 @. T& d9 q - ;internal_encoding =6 F2 f" Z! f( m" o( m: P
- ; P' y( b2 R- L7 C
- ; PHP input character encoding is set to empty.
) I6 _$ p+ r2 [6 h( {) K - ; If empty, default_charset is used.
/ V' ]( w1 i6 F. h - ; http://php.net/input-encoding
1 x W; X* o1 s0 M - ;input_encoding =. l/ ^) l1 j# l0 d1 m
" W3 q5 e/ S1 G3 f- U1 h- ; PHP output character encoding is set to empty.. q' x9 u9 g4 ~# y
- ; If empty, default_charset is used.4 n& i9 X. `! T% y, m3 ^
- ; See also output_buffer.- }+ O, D* J: J2 I
- ; http://php.net/output-encoding: e& s% L9 z% Y- T0 @2 W
- ;output_encoding =! W9 p; r, _, h, p" R9 b
3 D* D1 I! {& C- d0 j- ;;;;;;;;;;;;;;;;;;;;;;;;;- g6 o) d7 X7 A/ l" L" y. V
- ; Paths and Directories ;
6 c0 y+ g3 n& _) n' n8 u9 M - ;;;;;;;;;;;;;;;;;;;;;;;;;* s% S7 X7 W) r# c# a
- ; A, A) B& f6 K, t0 i; n3 T' P, g
- ; UNIX: "/path1:/path2"
6 B5 m8 ]; E5 J# L; r' C# c - ;include_path = ".:/php/includes"3 v/ g8 }5 p( e; u! |4 [; |
- ;
) |9 E: A& Q# R, Y - ; Windows: "\path1;\path2": m$ O. x' j7 {9 @! n
- ;include_path = ".;c:\php\includes"
+ N) }# I% O2 i7 F5 j9 Z2 x - ;4 e% L$ [2 i8 @8 ?) Q
- ; PHP's default setting for include_path is ".;/path/to/php/pear"3 ?5 {6 q& t, ~* ]# a
- ; http://php.net/include-path
; Q$ V& e& p5 Z& G
8 M+ C& a( j( `9 l# }& c, J- ; The root of the PHP pages, used only if nonempty.
) L9 K9 z. Q/ v' r - ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root% }2 A9 X" i2 x- |
- ; if you are running php as a CGI under any web server (other than IIS)- d( l) f/ f$ x' V Q) e
- ; see documentation for security issues. The alternate is to use the
* t) s) }6 g) A/ w+ W! ^ - ; cgi.force_redirect configuration below
/ j0 j! S0 Y" N6 E$ \- e: H- \ - ; http://php.net/doc-root8 `" ~# o( M- ~/ M% Y
- doc_root =
; n" C. R* ?9 V; s% | - - }0 }$ B! d* `- D: |
- ; The directory under which PHP opens the script using /~username used only; i' }, q- H ?
- ; if nonempty.
# X. T! }. H# K R7 h* a/ H - ; http://php.net/user-dir
! |4 U% c2 w, e2 i# [* c) q. N - user_dir =
0 B4 s n$ k4 U- i; f3 ]5 \
! [- d" W4 N9 I D; _- ; Directory in which the loadable extensions (modules) reside.. ?0 O2 d, t/ E+ x. L, _
- ; http://php.net/extension-dir4 y! C+ Z& v. j4 H8 T
- ; extension_dir = "./"( t6 H5 l2 C; T" \, E. U2 p1 a
- ; On windows:6 F6 V2 }+ T! v! `9 ~# J' T
- ; extension_dir = "ext"
6 i. J5 F( j' {& Q* b
6 }: f7 `5 x5 a+ @, E( u D# V; I. A. C- ; Directory where the temporary files should be placed.
5 U5 M f/ L0 ^' g( g6 j2 S - ; Defaults to the system default (see sys_get_temp_dir)" E4 A9 G( F- {5 ?+ ^
- ; sys_temp_dir = "/tmp"6 Z( j6 @9 g& z A( g
- 7 e% s2 F& _' e1 @
- ; Whether or not to enable the dl() function. The dl() function does NOT work
/ |+ S1 h6 e/ H8 f% ] - ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
/ s) P5 `7 T7 V4 U; Y! u* j1 S - ; disabled on them. ]: f/ Y+ Y( X% t: \
- ; http://php.net/enable-dl0 c; O$ g( D, [& J
- enable_dl = Off3 h9 s- m' X; P
- ; x, g( y( W7 _4 }
- ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
' p+ r6 Q7 @6 ?, E% u. Q; q6 I% l - ; most web servers. Left undefined, PHP turns this on by default. You can( }* f+ o5 N [# E; m* \
- ; turn it off here AT YOUR OWN RISK
6 B, H) ?. r7 o0 e7 _ - ; **You CAN safely turn this off for IIS, in fact, you MUST.**
' d2 P: H- r f6 i - ; http://php.net/cgi.force-redirect
0 c( n4 v0 s z2 _; H7 W% S - ;cgi.force_redirect = 1
# i( q3 c$ D' r2 q5 v) p
$ x4 }& X* M/ r9 h8 h7 O% j8 S- ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
2 H" E X' }8 c+ u/ N - ; every request. PHP's default behavior is to disable this feature.& p; [1 Z, W2 z! i
- ;cgi.nph = 1
9 W) |3 ^7 B; L1 Y4 o' U& D
0 x6 s% A" [ w! B) V$ L9 l/ \% g- ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
4 w* }6 I, l) X$ ]7 V4 i - ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
& H- L2 B. e& O" C$ I2 ~$ ^6 S - ; will look for to know it is OK to continue execution. Setting this variable MAY* i: ^) X! T) s% ?; x
- ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.3 W* i4 y! g' h
- ; http://php.net/cgi.redirect-status-env
4 D9 F8 [0 @6 M/ c8 q8 X1 A - ;cgi.redirect_status_env =" u' b# V2 V% L' Y
- 2 f5 \7 \$ L8 Z& V6 V
- ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's3 Z+ f: P9 y: C" Q$ i
- ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
2 @1 E$ `5 I0 p2 p - ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
# r7 p2 w7 i) L( v R - ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
8 O4 w4 n' Y! ~6 g& b- | - ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts, \8 `2 F; ?+ ]: P2 y( @/ b1 w c
- ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.2 J* h$ c: }# O# V' V
- ; http://php.net/cgi.fix-pathinfo1 K6 E: ^$ U8 b; f) U+ z* f
- cgi.fix_pathinfo=1
4 w7 D" s9 D5 x% q - 6 Y; H3 ]5 `; h/ S
- ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside
3 }. C: ?9 r+ ^3 P/ n# i7 c+ F3 a - ; of the web tree and people will not be able to circumvent .htaccess security.
/ T3 Q/ B5 ^" y - ; http://php.net/cgi.dicard-path
, h; d8 [/ w" z" D! q2 Y5 X& w N - ;cgi.discard_path=16 [# x: b* l& ^% K+ I
# O% y" M) X3 |' R- ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
A# I5 e0 c) C& Z! |1 V* n - ; security tokens of the calling client. This allows IIS to define the; C$ W! B# ~ E
- ; security context that the request runs under. mod_fastcgi under Apache# r& t! w/ l/ e
- ; does not currently support this feature (03/17/2002); n$ K/ E6 P+ f
- ; Set to 1 if running under IIS. Default is zero.
7 A, Z$ l+ o) O0 w1 {$ D" X( T. _/ p - ; http://php.net/fastcgi.impersonate) o0 |& W( }' H% T, n. b; ]6 u
- ;fastcgi.impersonate = 1% ^8 K% e; Z# J% y' ^
0 E8 \- {& N% n& E: x/ O- ; Disable logging through FastCGI connection. PHP's default behavior is to enable$ W) u2 O) t8 g9 C5 Z6 s! ?3 T
- ; this feature., \/ Z- Q. f4 c5 t. y
- ;fastcgi.logging = 00 w9 |: ^, Q4 b# X4 {& \. O
- 4 Z/ y! ^* ]4 _6 i
- ; cgi.rfc2616_headers configuration option tells PHP what type of headers to
4 V) A O l8 F8 @$ h/ g - ; use when sending HTTP response code. If set to 0, PHP sends Status: header that
" f2 u% a1 H! X1 y1 r) w2 u - ; is supported by Apache. When this option is set to 1, PHP will send
, L& t! I9 {+ O0 v% H1 y - ; RFC2616 compliant header." ^; p9 O8 H/ G! J
- ; Default is zero.% g9 T' o) n- Y, A+ O: k3 G1 z
- ; http://php.net/cgi.rfc2616-headers
9 P: D* C; ~$ a - ;cgi.rfc2616_headers = 0- m4 Q6 c5 I K5 k# K% J
: T7 s/ I) T8 V6 Z- ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!
9 v; F$ B; {& ^* S6 F* D4 u1 K - ; (shebang) at the top of the running script. This line might be needed if the8 q6 ^! K4 k# M2 ?; M5 J
- ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI: o: B, d4 _* d5 S* d& Z( b$ q
- ; mode skips this line and ignores its content if this directive is turned on.$ j7 b5 X& I1 w2 t
- ; http://php.net/cgi.check-shebang-line: ^2 |, J+ M. u8 U% ?7 N
- ;cgi.check_shebang_line=17 S8 |: Y! [( @/ _- l3 W
- 9 \9 q- |6 d3 l: p2 l# b- ^
- ;;;;;;;;;;;;;;;;
% i4 o: ^* N" c* @1 R$ i6 v - ; File Uploads ;, [- ]: q5 ?8 N/ T! j/ L# K
- ;;;;;;;;;;;;;;;;
+ ]8 O; q# k& t' }2 B/ L! }- d& N - $ r3 t7 T3 Z' f2 a) [
- ; Whether to allow HTTP file uploads.
6 i# p! t5 s) {3 S - ; http://php.net/file-uploads
& s# \" ]# i+ A' d - file_uploads = On
3 p3 R" C+ p& @5 G - ; z& J a! K: u+ u! e. _
- ; Temporary directory for HTTP uploaded files (will use system default if not
* n& `" @3 S2 @( l - ; specified).- V1 R9 W+ M6 O% x! Q8 G; w
- ; http://php.net/upload-tmp-dir
9 J4 g- l& e( _' m% z - ;upload_tmp_dir =6 p( _) u& _# T6 R" ]
- : ^+ P/ {! A* F7 d
- ; Maximum allowed size for uploaded files.5 P1 s3 }* y4 ?7 K9 }( H
- ; http://php.net/upload-max-filesize
! O+ R* ?+ k0 E4 @ - upload_max_filesize = 50M0 g+ Y- c/ \; X
' N' J* m5 b" B2 E- ; Maximum number of files that can be uploaded via a single request$ a; F1 G% Q4 h/ F% J
- max_file_uploads = 20) ~& j; B# A' R* t. l" E9 J
# ~$ z3 ]2 Y3 P- ;;;;;;;;;;;;;;;;;;
6 t3 ^2 B( R j - ; Fopen wrappers ;
( a. \5 y* }+ G' G - ;;;;;;;;;;;;;;;;;;
5 Q' A; j, ?, Y- `5 s4 c* [% E
9 R0 F4 q8 s, H7 w- ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.* L+ R8 L) j$ C6 p( r$ t3 Y
- ; http://php.net/allow-url-fopen
) g- Q$ u3 g; d1 ^4 v4 B- K - allow_url_fopen = On+ f1 {' W E9 t& P0 |3 n- F+ U/ Y
- 5 X6 r2 u& N6 f& T8 x' F4 p
- ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.# Q" l D- x$ U. E
- ; http://php.net/allow-url-include
1 f2 R i5 ^+ H$ A* W9 b - allow_url_include = Off
! k7 C8 v, V( p [0 _. c
5 H* Q, |" z E0 c8 s- ; Define the anonymous ftp password (your email address). PHP's default setting; ~: I% ]6 u7 J' {4 k
- ; for this is empty.$ C' |4 l# s! k2 C/ x# S4 }4 j% c
- ; http://php.net/from" H: v8 w& z9 ^' D, d" x
- ;from="john@doe.com"
5 y @+ b; G6 r1 k; A5 W
1 n6 e" L4 b) ]& \% M& ^- ; Define the User-Agent string. PHP's default setting for this is empty.
( ]$ t) g3 ? k) M/ | - ; http://php.net/user-agent
# t9 e# j5 f/ L2 W8 ?. N - ;user_agent="PHP"! |# V" f) E$ B+ `
! G0 @3 {* B& `7 l& q- B- ; Default timeout for socket based streams (seconds)
) i0 g" ]. }/ O( W! M - ; http://php.net/default-socket-timeout0 z8 h& p" K/ C. T# ?/ L
- default_socket_timeout = 605 a& w& M$ F8 W o3 G
' _: y2 Q/ g1 a; l- n3 j9 Q8 o6 F- ; If your scripts have to deal with files from Macintosh systems,
# U5 _% o" [* _! r* b - ; or you are running on a Mac and need to deal with files from' q) d, P& X( T! M" i8 e
- ; unix or win32 systems, setting this flag will cause PHP to8 O, s- h% C0 }; \6 S0 v0 K
- ; automatically detect the EOL character in those files so that% d: [5 Z2 k0 ^/ Z$ {
- ; fgets() and file() will work regardless of the source of the file.
1 l% o' S1 u9 n( o1 t- X: A; w - ; http://php.net/auto-detect-line-endings2 V- |+ j) \9 d/ N# A4 D/ _
- ;auto_detect_line_endings = Off
& w/ }$ C5 W/ q' b6 P" N) G
' o/ D2 S; i7 Z! W# ^1 T- ;;;;;;;;;;;;;;;;;;;;;;
' o! i6 Y+ ^- u( d - ; Dynamic Extensions ;
3 `. n8 `' v* E1 ?: ~ - ;;;;;;;;;;;;;;;;;;;;;;
" v4 c% g7 W) c" ~$ m$ O+ Q - 1 Y i$ n$ Q1 X8 f0 U; p w0 K
- ; If you wish to have an extension loaded automatically, use the following6 z% R! e( R( Z9 K! p
- ; syntax:. Y( Q! q: u$ H+ A# f1 k- [7 j8 Y
- ;$ b- N ~, o# [! O- x+ i7 ~) E
- ; extension=modulename.extension Z E" O9 [3 C+ w+ b! c
- ;, Y* o5 Z q. M7 `+ R" k
- ; For example, on Windows:
8 F) w1 x! D& D( ?: T1 _ - ;
$ b3 Y. s& _" S; i - ; extension=msql.dll# }4 v; S3 N, O% U3 P! Z
- ;! T G9 A2 q! t9 s5 J
- ; ... or under UNIX:% p! ~2 E- _& H. h' v
- ;; d3 s+ b8 S" [# i* G) b: ?0 y
- ; extension=msql.so
/ \+ y! O) @! q8 c8 d; V - ;3 H0 ~) o% S; k5 B% l2 l. m
- ; ... or with a path:: f9 ^7 w4 q$ q
- ;- V6 _ s7 R+ W! s) F
- ; extension=/path/to/extension/msql.so- g! U+ a. x) [; ^
- ;8 M1 U8 J% l1 L; ?( m/ e
- ; If you only provide the name of the extension, PHP will look for it in its6 L4 v T! L3 \& J5 f
- ; default extension directory.
+ P7 U! M$ J) A1 l) ] - ;+ g( ~; y6 C, I
- ; Windows Extensions, E- i5 W$ p8 Z9 ~! n i! A! D7 @/ N/ A+ ~
- ; Note that ODBC support is built in, so no dll is needed for it.
; t4 L; ` k0 K+ l" J; K3 H - ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
! h: J! P2 L6 F - ; extension folders as well as the separate PECL DLL download (PHP 5+).
- s- q! x/ A$ x$ ^. F* u; L - ; Be sure to appropriately set the extension_dir directive.
. r7 z7 i8 L5 y/ V4 I% L/ k - ;0 \- u& T. p; ^& r( v" d
- ;extension=php_bz2.dll0 q7 }! ]' T8 B) O! U9 \0 S% ^' R
- ;extension=php_curl.dll
: ^+ `# g7 i6 k4 x+ K8 Z$ g, }: W - ;extension=php_fileinfo.dll
* M# Q+ @0 o" `1 v8 K; q) U! U - ;extension=php_ftp.dll* Z8 o* `3 H6 i* t7 h$ X% P
- ;extension=php_gd2.dll
- T9 o; w+ R% y; _6 [ - ;extension=php_gettext.dll
9 P/ [; k. S7 i - ;extension=php_gmp.dll
" X* B+ c3 K: G) |8 p6 d$ Q9 K: x( x - ;extension=php_intl.dll9 Q; d y u6 J# k+ k [8 m
- ;extension=php_imap.dll
! Z# E5 q% b* |! G \6 b - ;extension=php_interbase.dll% x# J2 l \1 r+ n" }
- ;extension=php_ldap.dll
, ?0 @. V+ Z7 X& k - ;extension=php_mbstring.dll
1 w1 S% q w. [1 O. t5 w0 m - ;extension=php_exif.dll ; Must be after mbstring as it depends on it
- O& m, g2 W9 G8 s: k - ;extension=php_mysqli.dll
2 b! L# j. p8 R+ \& N - ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client# j' u+ Q. q: I" N6 ~
- ;extension=php_openssl.dll' a* S" j% H/ g3 H7 \+ O0 o
- ;extension=php_pdo_firebird.dll
' k* \% H7 h( k2 j - ;extension=php_pdo_mysql.dll( d J- y4 p+ u% }
- ;extension=php_pdo_oci.dll7 n) X$ r8 L/ O# t4 {" H* t
- ;extension=php_pdo_odbc.dll4 P ]4 ]' \. U7 q# r9 E1 |* b$ Y
- ;extension=php_pdo_pgsql.dll
2 P. |, k# i# W/ M - ;extension=php_pdo_sqlite.dll
2 n* G* F6 V' ?9 ]( n3 A - ;extension=php_pgsql.dll) _- W k: B7 V8 y$ Y9 d# }8 R9 G4 B2 [
- ;extension=php_shmop.dll% I q% q7 o3 }( J5 }9 }
- * n: U: x' K% K+ b/ i
- ; The MIBS data available in the PHP distribution must be installed.
; K% j6 T. H' L+ a2 v! g - ; See http://www.php.net/manual/en/snmp.installation.php
4 f! Z& N# C; ]" \# ^ - ;extension=php_snmp.dll
% w! S6 j9 A f9 g/ P! S& [
6 C* h/ l5 w) n6 o: m- ;extension=php_soap.dll
' n+ z' d# e+ Q2 T - ;extension=php_sockets.dll4 e# [; @# p2 s% R) s; k7 h
- ;extension=php_sqlite3.dll8 `+ Q2 e; J& {9 k& N+ G l
- ;extension=php_tidy.dll: L: J, d$ h5 p% _+ N" G
- ;extension=php_xmlrpc.dll0 m/ q! O; s- S8 A% u2 s8 \ x
- ;extension=php_xsl.dll/ C. o; K$ r/ |6 }1 h6 z" D; ?
- ; I8 p4 ?. A1 |" |, h6 a; D
- ;;;;;;;;;;;;;;;;;;;4 p) I7 o! u3 v% X. ^; B' z
- ; Module Settings ;" h( g! y" L- F1 l9 j
- ;;;;;;;;;;;;;;;;;;;% E* D8 o4 g$ }& W5 e, k( x
- # ? j; d9 c1 D) m, H k) s
- [CLI Server]: z1 P. ^1 y R6 o. v
- ; Whether the CLI web server uses ANSI color coding in its terminal output., R8 q$ B- F8 v& A" b
- cli_server.color = On
- N) d4 z# v0 `! t2 J' l3 s% y6 g6 d - * y# W6 H; X4 a, l
- [Date]
" X( u8 r/ V( v - ; Defines the default timezone used by the date functions
0 h1 o/ h( U- w3 ` - ; http://php.net/date.timezone5 W: [! W5 X5 N, i, y
- date.timezone = PRC
4 w# ?7 s# g& O. V' ^6 [1 R. j/ m - 5 l0 Z! o0 J# ^/ t" E0 }+ q
- ; http://php.net/date.default-latitude
; G! w6 U& D8 X - ;date.default_latitude = 31.7667
7 ^+ b7 z7 t) y, ?4 a/ I0 M2 J3 ` - " E* u( o# Z8 L b! B9 D# W! J
- ; http://php.net/date.default-longitude% Y8 Y. T5 g" ] M! u2 V" I: r
- ;date.default_longitude = 35.2333; @# Q! {/ Y* d; ~* x0 J
- % _9 S) Z% [! L8 N
- ; http://php.net/date.sunrise-zenith
: K) e9 b8 B) W8 ^* B5 b - ;date.sunrise_zenith = 90.583333
' u2 d& v3 d/ x0 ~% L0 u
4 g# b" @) i @, P6 }5 d- i- ; http://php.net/date.sunset-zenith( U" _' m) Q0 X6 M4 @
- ;date.sunset_zenith = 90.583333
0 ?, R! {- A3 W/ c' E3 m, e3 J% C9 B - 9 t0 o2 Q; `! c4 E6 E. W
- [filter]4 E; `" o/ \1 N+ X& Q) `+ X
- ; http://php.net/filter.default
# c+ k4 A O. O' f - ;filter.default = unsafe_raw- w2 r; e: |* r. j
- 6 t% {& ?& l7 s" T4 a' F9 f
- ; http://php.net/filter.default-flags
, h+ ^' M( R4 Q4 w4 w* w% H - ;filter.default_flags =# v. l5 n( ^" V4 r2 q. U
: s, s# v! @- Y3 D6 h8 h- [iconv]% b% N- M1 f% m& d3 l0 O: \% ?
- ; Use of this INI entry is deprecated, use global input_encoding instead.
# @: L, f: I/ G, b - ; If empty, default_charset or input_encoding or iconv.input_encoding is used.7 p% e" G- F) Y2 u; g' b4 x! u, I5 n
- ; The precedence is: default_charset < intput_encoding < iconv.input_encoding8 ]- B- M5 Y- g6 e( P2 m. R* J
- ;iconv.input_encoding =
2 f# X* y% [, M% {: }/ } - 8 K: b7 v" W0 g% v7 i5 P, f
- ; Use of this INI entry is deprecated, use global internal_encoding instead., A* B# ~ o# {; N# _7 z
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
) N, d' J2 d( X5 C2 V& U2 D - ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
1 V4 f7 h7 M2 {3 d - ;iconv.internal_encoding =, M& C; E; z9 |3 p% H+ a/ @. t
- p7 ~9 e5 c0 F% w
- ; Use of this INI entry is deprecated, use global output_encoding instead.6 ~3 v' i* p/ _
- ; If empty, default_charset or output_encoding or iconv.output_encoding is used./ V) z6 k0 D# O: @7 i
- ; The precedence is: default_charset < output_encoding < iconv.output_encoding
1 D4 F( U+ M1 E - ; To use an output encoding conversion, iconv's output handler must be set# G, \9 T7 X+ \4 f, o
- ; otherwise output encoding conversion cannot be performed.
* W! T) [* f/ n) C+ x - ;iconv.output_encoding =% |. |' B/ c2 H6 u* u) z. s G
; y8 X. \1 ~5 D- [intl]8 U2 [0 e s3 f* w+ s
- ;intl.default_locale =
8 }: S' M5 h2 ]7 M* i+ K g - ; This directive allows you to produce PHP errors when some error, ~3 y2 F9 J9 m/ S2 r6 ~
- ; happens within intl functions. The value is the level of the error produced.8 o* Z" I5 `9 x! F7 Y) _
- ; Default is 0, which does not produce any errors./ ?+ i" e6 O. x7 ]& g4 F5 T; \+ }8 [
- ;intl.error_level = E_WARNING
: A4 f1 |' T+ |0 i - ;intl.use_exceptions = 0
" @) Y7 t+ L* |. d. j - : {4 d' @* V* j# t$ n9 g
- [sqlite3]
* z1 T' ?+ h$ m) Y - ;sqlite3.extension_dir =
. V* i; L% O7 W" R1 X - ! }/ p' ^8 U3 J' h
- [Pcre]
+ l9 V o, j" n8 w7 w8 ~ - ;PCRE library backtracking limit.! s% {* @* s3 i4 [! X5 |
- ; http://php.net/pcre.backtrack-limit: t; E/ Y& {$ b' T& V$ ^
- ;pcre.backtrack_limit=100000
* [% Y7 T [0 @5 q - 9 L* z" a I, @$ {
- ;PCRE library recursion limit./ D2 w8 Z8 B% q0 d
- ;Please note that if you set this value to a high number you may consume all! a" y' E5 {6 N
- ;the available process stack and eventually crash PHP (due to reaching the! O/ y$ y# O7 m, o8 e
- ;stack size limit imposed by the Operating System).
/ R+ r. Y* G, c/ p; D8 w# h; j0 e - ; http://php.net/pcre.recursion-limit8 n4 [( F# q8 S# X( e6 a- s
- ;pcre.recursion_limit=100000
4 H2 T2 \$ w, l# i
: j5 y( M/ [, V' |1 T- ;Enables or disables JIT compilation of patterns. This requires the PCRE
: e' I0 u. Q3 {" ^ - ;library to be compiled with JIT support.
- T2 I$ B1 m4 t6 r# W% S) ~ - ;pcre.jit=1
: Z. B8 d H0 a+ J/ X
9 r1 c, x9 A1 O' I; F) M- [Pdo]: {" V" j( ^8 Y) r0 x$ z' r6 S2 I
- ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
2 }5 K9 |( @5 b6 i, b - ; http://php.net/pdo-odbc.connection-pooling
3 T* G* y8 u2 K: H5 {# h7 j - ;pdo_odbc.connection_pooling=strict0 w8 B/ D9 a( H( R0 W7 ]
- , q7 k8 c+ D# s% F+ f5 Z
- ;pdo_odbc.db2_instance_name
' w O/ H) \3 w1 H" d& } - : C2 U6 G* Z# O, ^' a m
- [Pdo_mysql]5 P5 P! y: v: y4 T( C4 E; r
- ; If mysqlnd is used: Number of cache slots for the internal result set cache) h+ X( }) \# H5 c/ \9 J8 F
- ; http://php.net/pdo_mysql.cache_size
& q: M0 q, n- I! E, e; z6 i4 k - pdo_mysql.cache_size = 2000
1 V7 e2 J1 d* W+ A
# p N9 \; t; I5 {$ z, _' z- ; Default socket name for local MySQL connects. If empty, uses the built-in
# f0 y& `4 i. _6 [( f" z - ; MySQL defaults.
: Y! S8 T& }" v0 ]8 _ - ; http://php.net/pdo_mysql.default-socket# n0 W: K" \& q
- pdo_mysql.default_socket=' F3 t6 v8 ~& X2 x$ O X
- + E, v; }& |- p- j; }! k
- [Phar]6 X% N3 }- `; L) X
- ; http://php.net/phar.readonly
i% u3 ~( F% P! A7 O4 C - ;phar.readonly = On
3 u) A0 h4 d+ U
# H: |, y& ~8 x3 F9 S- ; http://php.net/phar.require-hash
$ f, E: M/ i# a8 q7 Z. j0 y - ;phar.require_hash = On
, K- H' p m6 z* R
+ \4 a5 d5 o: j1 J4 c: H! F- ;phar.cache_list =
B. b' T/ F1 O# A1 n
) ?3 V) |4 P. Y+ j. _- [mail function]2 ?3 K, Y7 K Q' ]
- ; For Win32 only.0 N5 t& Q6 O" B- c: i/ F
- ; http://php.net/smtp% ?) S' r( m0 H) y3 h4 y
- SMTP = localhost
1 j' G5 P `; y# C8 O - ; http://php.net/smtp-port
6 \$ e! W+ \. W6 O - smtp_port = 25
! P" \" F2 p) ? - 8 ~. m1 s, `5 J3 l4 T
- ; For Win32 only.8 W& B4 b4 W1 k
- ; http://php.net/sendmail-from
" R1 d& {* N2 ? - ;sendmail_from = me@example.com
# |; d5 L4 j# f
. ~" {- @! R4 r1 T+ o: A( E8 c- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i")./ o) j% F# `2 Z; Q5 h- ~% J
- ; http://php.net/sendmail-path
3 Q$ u( j; W0 t0 b' Z - sendmail_path = /usr/sbin/sendmail -t -i
, f: O Z% m5 Z) y - & @3 z8 `% m4 F; W7 r6 z5 e0 Z
- ; Force the addition of the specified parameters to be passed as extra parameters
3 [: k/ g6 n% i+ \6 {2 L - ; to the sendmail binary. These parameters will always replace the value of
8 b" r2 _' s4 e) n v: B) N - ; the 5th parameter to mail().5 a$ k6 L$ o+ r a
- ;mail.force_extra_parameters =
6 l- U( [, \2 U. I6 X- m3 J
( f& t( m7 Q- R' O6 e: x- ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename" I' C% v# L: r. o
- mail.add_x_header = On
7 f0 J/ f7 e+ |1 A8 B - 8 e# n3 ]5 V3 `! z# X
- ; The path to a log file that will log all mail() calls. Log entries include
" k3 R5 r1 {( ?( k: V - ; the full path of the script, line number, To address and headers.
% T/ P5 \" e3 B. w5 Y - ;mail.log =* n% L" V0 L$ p
- ; Log mail to syslog (Event Log on Windows).
" f5 x$ p4 _" H h8 I" b - ;mail.log = syslog8 N0 N7 ?9 s" Z' X: Z
7 g5 w* f# e- x( u0 }- R+ k$ f- [SQL]
5 g0 o; Y. ^" ^, J. F - ; http://php.net/sql.safe-mode: X6 t- j# b O: V) L P+ B" b
- sql.safe_mode = Off
& R/ k- L% D, m. T0 U! k M5 E3 l6 s8 } - - q4 R$ S4 {3 ^5 p% z5 q3 O
- [ODBC]
. w3 f# W: Z, R$ H - ; http://php.net/odbc.default-db7 g5 @7 i5 Z! h
- ;odbc.default_db = Not yet implemented
! K( U( a( u* j6 { - . \/ }1 j) Y, z3 w
- ; http://php.net/odbc.default-user1 |! V5 i1 s, U# ~7 u
- ;odbc.default_user = Not yet implemented4 r; l" b6 o+ U: W5 H$ Z' S; E
' {1 g' }$ L# {4 r2 i% y$ U/ Z- ; http://php.net/odbc.default-pw% c- ^" I9 ^. y8 D
- ;odbc.default_pw = Not yet implemented
$ g0 E# Z7 X/ l$ M! p1 h2 Z - ( I8 f# x: L/ _) i
- ; Controls the ODBC cursor model.- c# S" A$ Z& y
- ; Default: SQL_CURSOR_STATIC (default).
( e( g& k2 {1 \ - ;odbc.default_cursortype: |% J U3 l. o# X' G
- 8 b1 J% _0 m# \0 \; b. }0 E
- ; Allow or prevent persistent links.
6 v' t- A- ]4 W: N; d- i - ; http://php.net/odbc.allow-persistent
/ M; `+ L% O4 d1 H - odbc.allow_persistent = On9 t: r' ?/ e0 f) w5 G
- D+ r8 L, G# a5 c
- ; Check that a connection is still valid before reuse.1 B6 j5 J3 o, ~# H
- ; http://php.net/odbc.check-persistent
. \; t x$ M- K. y8 F - odbc.check_persistent = On3 h$ ^4 p' S$ j$ v$ n. c3 p
6 b* b) F( s% p+ q3 s+ Z- ; Maximum number of persistent links. -1 means no limit.9 Q4 s" m5 p2 }7 } W
- ; http://php.net/odbc.max-persistent. Z3 Q# z, K! D0 W
- odbc.max_persistent = -1
& O9 c9 N' U+ w3 V7 F5 h3 P$ K S
|5 S, \% Y9 f0 P- ; Maximum number of links (persistent + non-persistent). -1 means no limit.5 i! b& R) d$ o! C* l+ D% R
- ; http://php.net/odbc.max-links) o H" _! a; B q: F" m2 X2 J
- odbc.max_links = -1
7 S* [# S7 c6 j" {8 m
& k+ J: {: |( t5 H5 [- ; Handling of LONG fields. Returns number of bytes to variables. 0 means9 G) x9 v5 R" |, t3 a
- ; passthru.$ X' U: g. H, g, ?& W
- ; http://php.net/odbc.defaultlrl
2 L8 m* x6 _/ c$ e - odbc.defaultlrl = 4096 }% }% `1 h6 z9 O$ ]" a! I
- : `: ^) e7 X+ ~+ `2 i9 q
- ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
, ~$ K( w! e& T3 [& u# |5 ^ - ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
7 ?2 `" U3 P1 q - ; of odbc.defaultlrl and odbc.defaultbinmode2 a4 e( w3 x3 L- Z( g5 `, i
- ; http://php.net/odbc.defaultbinmode1 t( J/ S0 E9 Q! c& o
- odbc.defaultbinmode = 1
* Z+ c0 u( h$ M# f r0 N
8 _( H- `5 v5 n! a- ;birdstep.max_links = -1
" R: D' {% r5 N4 z4 H
/ O. d" c i, y7 ^4 w$ v- [Interbase]
$ G: A4 W6 i! b - ; Allow or prevent persistent links.
5 s3 T/ Y( r: q - ibase.allow_persistent = 10 C, k, i9 J9 ] M
- ! j$ k- B8 t* f
- ; Maximum number of persistent links. -1 means no limit.+ ?% |$ h% v. Y
- ibase.max_persistent = -1
& `# @) T7 _ M$ U; d+ c. G' G - 6 D, D9 V+ x8 J) ^
- ; Maximum number of links (persistent + non-persistent). -1 means no limit.1 L! L) j. E8 d1 { l* L7 a N
- ibase.max_links = -1
* n( b8 Z3 F9 @: `0 S
% F: ?6 X7 Z& i9 \2 J5 R R- ; Default database name for ibase_connect().' v f1 S' a+ R' G1 u3 k
- ;ibase.default_db =
' ?" e* \! s& u" R" ^5 u& C1 P
" Y6 y9 B+ G1 C) @( P) Q6 B# n- ; Default username for ibase_connect().- l: E8 B* G7 e( a) m( w
- ;ibase.default_user =- F& ^" e) ~* Q
- . F4 X6 e7 R7 o! }
- ; Default password for ibase_connect().0 a/ D ]% x+ L/ s2 s
- ;ibase.default_password =
2 P' C% y( F4 |8 ]
! R2 {! Y" w& Q5 I2 O- ; Default charset for ibase_connect().$ Y/ U1 W2 g- d- e
- ;ibase.default_charset =
; f8 H3 X/ H" g8 n( ] - " I+ `$ O$ m, ], h* i1 m- c( u- e
- ; Default timestamp format.' b0 y8 F- c/ l8 O& W+ c4 u* c
- ibase.timestampformat = "%Y-%m-%d %H:%M:%S"! G* g/ Y% S1 J: I3 e
- 6 s2 j+ E y5 ~2 P
- ; Default date format.
7 f x$ ?* H& R: t" { - ibase.dateformat = "%Y-%m-%d"
7 J8 ]2 O$ D5 H$ }0 Y
8 [! K- R0 O: E4 k9 a0 D# I- ; Default time format., @ {4 D7 c9 Z5 u# q
- ibase.timeformat = "%H:%M:%S"
% s( d8 V; b8 `2 d - # N5 I: j' W- L g7 V& C
- [MySQLi]' d% z5 c- s3 i/ r2 t; Q: f& ]
4 h. r0 c/ b. D- J0 H- ; Maximum number of persistent links. -1 means no limit.; c0 W7 Q! R: \5 H
- ; http://php.net/mysqli.max-persistent% k E" Z% v! J" q+ W8 ?) X, `0 A
- mysqli.max_persistent = -1' I) l% ~1 a4 v9 h$ ]% P4 W
! b+ H ]4 g; w' S- ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
' v5 _# a- {3 c8 _$ ] - ; http://php.net/mysqli.allow_local_infile
, v6 I9 M: c" s. T+ |# m - ;mysqli.allow_local_infile = On
5 ]9 Y& K# X: p - * h6 f+ `3 U: ~5 V
- ; Allow or prevent persistent links.
9 W# G0 x: l; A6 w1 | - ; http://php.net/mysqli.allow-persistent
/ k9 R* G+ Y! h' |9 l - mysqli.allow_persistent = On- X% j* e5 A! E( G: A1 f
- 8 K0 A/ {" `. N2 j
- ; Maximum number of links. -1 means no limit.
+ }) I( S0 T# d4 D - ; http://php.net/mysqli.max-links2 e; ~+ I" a/ [: Q; _+ u
- mysqli.max_links = -1
$ c. {- f7 n8 z0 V" z
4 x- |/ d# k& T+ [- ; If mysqlnd is used: Number of cache slots for the internal result set cache' i* l0 F9 u: ~6 F
- ; http://php.net/mysqli.cache_size
- h) R9 r$ F z3 P - mysqli.cache_size = 20001 |4 n& g- A9 |6 Y9 V3 n% D# n
$ L/ Q+ j6 q _- Q4 o7 z, J5 _- ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
4 M/ ^4 h% D H: o - ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the2 H1 i) A0 \7 ^0 Y z/ a
- ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look, r g) ?# z8 ~( C4 v6 L# i2 ` ?
- ; at MYSQL_PORT.
8 M5 K. [. Y1 m9 y$ c1 | - ; http://php.net/mysqli.default-port
5 R3 E0 e4 I1 L7 I6 h; V+ Z - mysqli.default_port = 3306
( I) P' `; u! m1 Z+ z9 ] - 2 l/ U- o5 `0 U. c0 o2 L
- ; Default socket name for local MySQL connects. If empty, uses the built-in& }$ v% R. y7 D% v& r8 u. Z
- ; MySQL defaults.! B! i) C5 P9 Q$ W3 F
- ; http://php.net/mysqli.default-socket/ e6 X5 C0 s P$ r, d4 ~* e
- mysqli.default_socket =& U ]) P0 L0 ~- {# R0 ?1 W _
* E8 J2 s$ u2 s- ; Default host for mysql_connect() (doesn't apply in safe mode).& T5 l/ ~- Y' x& K9 p6 e4 V9 P0 F
- ; http://php.net/mysqli.default-host
0 ?* m5 r/ }; d/ Z - mysqli.default_host =
- B9 ]( v8 H* Z - / [3 C/ O# ^6 D- J- _5 q( W# U' P% w0 v
- ; Default user for mysql_connect() (doesn't apply in safe mode).4 D e9 n: |1 @5 q' f3 X
- ; http://php.net/mysqli.default-user: R" U/ G* J- y
- mysqli.default_user =
* A* ~5 N6 E9 I1 O - 8 s/ H' _' q6 ?' F
- ; Default password for mysqli_connect() (doesn't apply in safe mode).
% S# B1 I6 X+ I7 U0 M* z. T& z - ; Note that this is generally a *bad* idea to store passwords in this file.
' r0 l8 ]$ U# u7 ]0 g8 T; I" l - ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
7 O) [/ b$ l* w: t5 B# _ - ; and reveal this password! And of course, any users with read access to this9 r6 X' ]8 b! l; [% b. W& C+ {
- ; file will be able to reveal the password as well.* u4 N1 q, [. ^" i4 |+ d) ?
- ; http://php.net/mysqli.default-pw3 ?, {+ |) r" u" p2 O9 l, \
- mysqli.default_pw =" J2 m P3 S4 ^# b+ ]1 c% n7 j
- 6 R) T/ b9 |3 e7 K O7 ^
- ; Allow or prevent reconnect
' j' W) O* n% U6 R: k! @ - mysqli.reconnect = Off
6 H3 r8 h1 ?; T: A
) z _ q+ X% @3 ]- [mysqlnd]3 A" a: c k: J5 f& A& p& M$ x
- ; Enable / Disable collection of general statistics by mysqlnd which can be
, H9 H+ l9 a$ p& \ - ; used to tune and monitor MySQL operations.# q3 e" Q7 s6 p
- ; http://php.net/mysqlnd.collect_statistics; ?! V' ?7 x3 a4 e
- mysqlnd.collect_statistics = On4 U5 ~/ i. e. i; ]+ h
- & y4 X5 d5 Y3 _- f7 n; @
- ; Enable / Disable collection of memory usage statistics by mysqlnd which can be+ F1 \* K9 O6 ^
- ; used to tune and monitor MySQL operations.
8 a) _' Z8 m: F& H2 g# d - ; http://php.net/mysqlnd.collect_memory_statistics: I0 R/ Z% s6 j6 A
- mysqlnd.collect_memory_statistics = Off
) B B7 o) G. y" T* l* q1 E. | - 0 D D, G9 J! T
- ; Records communication from all extensions using mysqlnd to the specified log( O% e! Y9 X9 \( h
- ; file.
* H* y- D( B' y( D. k - ; http://php.net/mysqlnd.debug
) Y1 h. L6 q. m) J8 H, [7 _ - ;mysqlnd.debug =
2 [9 _/ d+ P' c2 n1 n% M& [7 X
) Z; l' x0 V: l) H- ; Defines which queries will be logged.* V9 G4 R8 @0 G& m! ?2 F2 ]6 S, {
- ; http://php.net/mysqlnd.log_mask2 }+ w/ n5 F9 h$ P3 t
- ;mysqlnd.log_mask = 0
/ i, U' L- N. d3 ? - + `3 U4 Z4 X' _! S0 |/ q
- ; Default size of the mysqlnd memory pool, which is used by result sets.
6 [; J& I# r: S, ` - ; http://php.net/mysqlnd.mempool_default_size9 A# s3 n+ ^4 N% D9 P
- ;mysqlnd.mempool_default_size = 16000- j4 E& h6 B, p2 X0 E& D; N
- 6 w/ X( V1 y0 {7 m! S+ }: T3 i
- ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
2 ~4 ]7 z3 o% p n5 e: _2 i - ; http://php.net/mysqlnd.net_cmd_buffer_size
s. a! m/ k$ ~" R; S# {" } - ;mysqlnd.net_cmd_buffer_size = 2048
: }3 ^2 E7 h$ [6 F2 s1 E
# T* F% k# `4 l0 p- ; Size of a pre-allocated buffer used for reading data sent by the server in
& ?( t5 V Y" _& J - ; bytes.
( f: h, L7 k3 ? - ; http://php.net/mysqlnd.net_read_buffer_size3 J8 Z- T. |* x4 W1 F8 j
- ;mysqlnd.net_read_buffer_size = 32768
1 w! G1 R, U! p- s# J/ J - ! m9 c0 p* _) v/ U1 S
- ; Timeout for network requests in seconds.% M* l5 ~8 ]( l" T( k8 B
- ; http://php.net/mysqlnd.net_read_timeout' Y3 i8 k9 `! ]) W( z1 a. h/ y
- ;mysqlnd.net_read_timeout = 31536000
" Y# Z! f& P; e* ]9 O$ E' x# h
" q8 K' x0 n7 J+ l: B( r3 `) D! P1 s- ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA9 o" J4 F0 p9 ~- }# Y7 x
- ; key.
; Q8 x& e! ?: w3 |* x$ f - ; http://php.net/mysqlnd.sha256_server_public_key
9 {- I' F% D& [( d - ;mysqlnd.sha256_server_public_key =
2 _9 ]7 L, Q [/ o - 8 l* a; m. `: j: g/ K" |& M( M
- [OCI8]- N) Y/ v$ H9 K( i, `
- + N% N; q; C- q
- ; Connection: Enables privileged connections using external) d& y9 ~' J8 b6 w4 A* F+ X
- ; credentials (OCI_SYSOPER, OCI_SYSDBA)
# C* g8 a# S, {* l6 T2 ~% [8 r% X - ; http://php.net/oci8.privileged-connect( L$ Q% C5 T: k+ @. m6 [7 [( ?# m
- ;oci8.privileged_connect = Off
2 X% s7 C: F/ Q0 P - . W8 l6 [& c/ P( H* f4 c0 E
- ; Connection: The maximum number of persistent OCI8 connections per+ ~/ `* e. Q. ~4 H) S
- ; process. Using -1 means no limit.* |1 I/ _" b, ]& `
- ; http://php.net/oci8.max-persistent/ s3 Q& J" j' t
- ;oci8.max_persistent = -1+ B2 x1 c- h" b+ f7 n
- $ R( X, p0 \" s& F
- ; Connection: The maximum number of seconds a process is allowed to
" ~( h- E9 K! o - ; maintain an idle persistent connection. Using -1 means idle; x* W. w: W( Z- ]9 A/ ?% l3 d
- ; persistent connections will be maintained forever.
" }9 B3 K, z8 @5 n* l - ; http://php.net/oci8.persistent-timeout, `$ V5 x9 J }8 p2 m# g
- ;oci8.persistent_timeout = -1
; O. J& x8 w _4 h
; n' I) ^% W( i" p- ; Connection: The number of seconds that must pass before issuing a2 u# n9 N! |9 Z1 T: B8 X
- ; ping during oci_pconnect() to check the connection validity. When+ g. c% d- P! q- T' a
- ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables( I& h2 G, c/ v& U. B1 [
- ; pings completely.; o+ B/ @; d7 F
- ; http://php.net/oci8.ping-interval
" A* P& N+ x' {) y6 s& N; u - ;oci8.ping_interval = 60: i. m& Y3 j2 ~' h5 N( z' |2 h
- # [7 V; L7 u3 v8 O( Z7 X3 A
- ; Connection: Set this to a user chosen connection class to be used+ g) T1 R/ o" ^4 y* l" ^' P
- ; for all pooled server requests with Oracle 11g Database Resident
3 ?5 Q h4 d% n1 ^! X/ S- o - ; Connection Pooling (DRCP). To use DRCP, this value should be set to0 |) @+ [* k# P& y
- ; the same string for all web servers running the same application,$ l( S+ w- y4 K7 r L6 P
- ; the database pool must be configured, and the connection string must
. |6 V9 M5 s4 g9 a) s7 M1 G3 o( } - ; specify to use a pooled server.
, @/ q* S, G8 T! H* A; L' H' y - ;oci8.connection_class =
6 K- w" _0 \& `& P/ \+ H1 C: O& M
. n- [* x' i& _6 g- ; High Availability: Using On lets PHP receive Fast Application
! J) Z& I7 f: b& |5 S# r - ; Notification (FAN) events generated when a database node fails. The
2 E; |9 }. C) n' @ - ; database must also be configured to post FAN events.& W5 _7 L/ u9 S# {
- ;oci8.events = Off7 c! q3 b% n6 d7 V$ i; i0 `0 V
- ) p, L' U: r7 Z/ T& v% K" ?& y8 ?
- ; Tuning: This option enables statement caching, and specifies how
2 Y" `9 D( V8 i1 J: [- y - ; many statements to cache. Using 0 disables statement caching.: \0 K. C7 I: k% r
- ; http://php.net/oci8.statement-cache-size% j: X1 P- W) C( N
- ;oci8.statement_cache_size = 20
4 T, q* B1 }& \+ k7 v7 n* |2 c, v - 1 T6 j2 U; p5 e# Q; F' y
- ; Tuning: Enables statement prefetching and sets the default number of% p2 }$ A9 z# N- U, P
- ; rows that will be fetched automatically after statement execution.7 _+ R9 B( \+ f9 u' l$ j
- ; http://php.net/oci8.default-prefetch
- W/ N. _* {$ c$ ` w) w7 V! n - ;oci8.default_prefetch = 100
& }2 R! q2 t; L. l( R% b
9 O" ?' Y% K5 V6 g4 Y; i- }4 e' P" z- ; Compatibility. Using On means oci_close() will not close
7 e z1 v! ^7 `4 B - ; oci_connect() and oci_new_connect() connections. P- b6 G w" r- [* z' R0 x5 e
- ; http://php.net/oci8.old-oci-close-semantics
S5 y! Q% u( c- O - ;oci8.old_oci_close_semantics = Off
o# j; C4 B) L/ }" T - . R2 q \! T4 z
- [PostgreSQL]# N' s$ h6 n3 N, k
- ; Allow or prevent persistent links.7 b. R( w( k# i2 r' m! I
- ; http://php.net/pgsql.allow-persistent K1 K7 L$ N1 e3 z( ^: x+ n! q& ?! a
- pgsql.allow_persistent = On3 g( b8 q- l/ c% V
- ' F0 t+ t! z4 ^; h& ]) J
- ; Detect broken persistent links always with pg_pconnect().& W5 W& I/ _) ~8 S: m
- ; Auto reset feature requires a little overheads.( J5 {2 D# K& ?8 e7 c
- ; http://php.net/pgsql.auto-reset-persistent R9 t l# O4 o" o1 C
- pgsql.auto_reset_persistent = Off8 c" s* J& s7 t
" U r& t2 ~+ w! |. ?4 u# k- ; Maximum number of persistent links. -1 means no limit.
% G8 z9 c+ {. U4 e t2 g M - ; http://php.net/pgsql.max-persistent
3 M1 {2 @: p* P- R$ {3 Y - pgsql.max_persistent = -1
+ x/ d9 L8 B Q$ A- X2 C% R3 Z - 5 l8 u1 q9 x+ q% s; {8 l0 k
- ; Maximum number of links (persistent+non persistent). -1 means no limit.
' l B! W2 ^0 Q4 V) ~& L - ; http://php.net/pgsql.max-links) M5 E7 i- j6 w- h
- pgsql.max_links = -1
8 A' B) X! W9 Y5 p. P - : @# y6 e) r) g2 T% ~" T' \! a
- ; Ignore PostgreSQL backends Notice message or not.+ L9 `& d8 k6 [. H. \
- ; Notice message logging require a little overheads.+ Y& e" g% ^6 Y. b6 B
- ; http://php.net/pgsql.ignore-notice3 K ~. `; x5 {4 K0 f% ~
- pgsql.ignore_notice = 0
9 T9 L5 @; G d$ C- }/ Y - 5 r1 U; h$ {1 h2 d4 a" s. X' V2 o3 c
- ; Log PostgreSQL backends Notice message or not./ ?0 V/ C, K" ]2 c
- ; Unless pgsql.ignore_notice=0, module cannot log notice message.' @( N. @$ K5 x+ \4 w4 L
- ; http://php.net/pgsql.log-notice) B( F5 }& S+ e0 |: z5 \
- pgsql.log_notice = 0
. K: ]! P" @) V; ?- }# a4 R
/ a. p: y( R- g# |7 z* M- [bcmath]5 P6 e6 _) V- v
- ; Number of decimal digits for all bcmath functions.
. ]5 x, F+ h$ t; H - ; http://php.net/bcmath.scale
/ d6 ^% ~9 h6 `3 D6 Y - bcmath.scale = 09 W6 o) u; i+ r" m8 z" l6 O
6 F. B& k* |$ [6 Z' ~7 t+ ?" p- [browscap]
2 p$ ]5 k: {2 N* `! X - ; http://php.net/browscap
, n( b- T; S/ M3 v s4 a5 J; v5 u - ;browscap = extra/browscap.ini
# t* _* O2 O1 l: `6 v$ P - ( g3 X9 i( d M! @2 v7 \
- [Session]: _$ K% |8 o* z* [# B; o
- ; Handler used to store/retrieve data.
& w9 Z# T, V0 L+ J l - ; http://php.net/session.save-handler) j; v( y- h9 A% W$ c% b8 I
- session.save_handler = files
& E0 ?) W3 f- v0 [0 z' q& \
# A2 n7 _' `$ H9 s# G- ; Argument passed to save_handler. In the case of files, this is the path
+ y( ^+ c9 X& t+ O9 S% g3 a$ z - ; where data files are stored. Note: Windows users have to change this
, T& y4 g, K6 u, @- E. D - ; variable in order to use PHP's session functions.
9 B) t6 c/ g% x- m1 {) e - ;/ N# }" `. y2 r3 H* Y* c8 f
- ; The path can be defined as:
( k2 t) Q2 }5 p0 d; A4 l3 \4 r' u - ;6 B* ?$ i# |0 t
- ; session.save_path = "N;/path", W! B& v5 s9 M, q( S
- ;
; c( g$ m, b8 A* M: ?: U% w/ X - ; where N is an integer. Instead of storing all the session files in- O; z" E4 _1 Z& U
- ; /path, what this will do is use subdirectories N-levels deep, and
# ] `' d0 q) g- R - ; store the session data in those directories. This is useful if5 A! ^, V o1 i+ K! u5 L
- ; your OS has problems with many files in one directory, and is
& X: J) g4 e% f- E4 y. h - ; a more efficient layout for servers that handle many sessions.7 c" |& S! J7 O! f/ d
- ;
0 N1 m5 g4 c' O) D$ k - ; NOTE 1: PHP will not create this directory structure automatically.( U: e6 v& ?6 x
- ; You can use the script in the ext/session dir for that purpose.
+ d k* r7 w- P - ; NOTE 2: See the section on garbage collection below if you choose to
/ q5 }- g" \8 S. I - ; use subdirectories for session storage) E8 h) r2 G9 W P1 Y
- ;
* S+ S4 X8 I) Z$ p5 @6 Z* ?1 A - ; The file storage module creates files using mode 600 by default.! h! C$ U: }2 A; u& } O& T
- ; You can change that by using, q. Y7 Q8 ~ l: n% R% `
- ;3 q# B) t5 F. f/ f) ^
- ; session.save_path = "N;MODE;/path"! Y& j3 e' B# }; \( }
- ;8 |# g$ P- H) k, l, \4 `- C
- ; where MODE is the octal representation of the mode. Note that this
" E z: h" n6 ] - ; does not overwrite the process's umask." Q* N) n% u6 k$ F
- ; http://php.net/session.save-path* `3 k: m# q' c9 {; [$ I( @* J
- ;session.save_path = "/tmp"
3 k7 s4 h3 x. D* B. W
% q6 T$ a! f D: R8 y1 s- ; Whether to use strict session mode.
: _! x4 k1 m7 _! g+ @ - ; Strict session mode does not accept uninitialized session ID and regenerate
' J' e6 f7 O3 F) b8 y3 _/ x5 o! t# Q - ; session ID if browser sends uninitialized session ID. Strict mode protects6 U$ ]1 [$ b3 Z; @
- ; applications from session fixation via session adoption vulnerability. It is
4 k4 |3 N! H f3 x2 s1 Z5 J) `8 j - ; disabled by default for maximum compatibility, but enabling it is encouraged. A i3 V y$ ?8 d5 P
- ; https://wiki.php.net/rfc/strict_sessions) R' [' {: F! M# ]
- session.use_strict_mode = 0: ?- N2 j y3 |
- 8 e( Z$ R, q$ c! d, e+ F) b) R/ ]3 u
- ; Whether to use cookies.( d2 R" S; h0 U* ~. _, B* |& t
- ; http://php.net/session.use-cookies
1 I% X! I" [# Y# v2 d. S - session.use_cookies = 1" K" x% u$ j* z9 [
- 1 e( S/ x) l6 `- B0 g* I
- ; http://php.net/session.cookie-secure2 B6 v# P5 p& S" z D2 E0 J ~0 f
- ;session.cookie_secure =9 d5 S- y: Q( k7 V
; o8 g1 f5 @3 O9 Y- ; This option forces PHP to fetch and use a cookie for storing and maintaining
; p# `7 ]( Y) x% [8 l - ; the session id. We encourage this operation as it's very helpful in combating- e7 p5 e ?. P7 C
- ; session hijacking when not specifying and managing your own session id. It is
9 ^9 X' Y6 [1 L& `. ^# g& n - ; not the be-all and end-all of session hijacking defense, but it's a good start.1 d1 {$ `$ j& n: P: J8 y
- ; http://php.net/session.use-only-cookies
0 P" Q2 q3 M4 I6 _ - session.use_only_cookies = 1
5 m* d& Q$ W# W - N' F' m3 @6 J+ K
- ; Name of the session (used as cookie name).4 E: T" Q8 g& a5 h$ W
- ; http://php.net/session.name
3 Z+ ^4 Z) n7 N4 ]# n( T1 Q - session.name = PHPSESSID
j5 q$ F0 g1 ]9 e$ n+ H9 L
8 a7 ~+ ]( c* S! b# ]" `( d- ; Initialize session on request startup.) |0 ?0 m* u0 N7 f* }
- ; http://php.net/session.auto-start1 F3 A1 G" N" B$ I" @ n
- session.auto_start = 0
% G% V2 l H2 L' P) } - / y! V3 h2 C; ~/ `
- ; Lifetime in seconds of cookie or, if 0, until browser is restarted." s% D$ ?# ^/ f4 Y; [% Y
- ; http://php.net/session.cookie-lifetime
4 ?# Q# E1 Q5 d) f3 `+ T4 M - session.cookie_lifetime = 01 j- d- z) V! l# Y9 v
- . O/ k/ B4 A; V, t( F6 F
- ; The path for which the cookie is valid.
, G$ x3 a9 u. T2 X/ n. q5 D ~7 y - ; http://php.net/session.cookie-path
) G" B4 y2 Y4 Z* _0 ]! o - session.cookie_path = /
. H/ l$ _7 q% j6 r0 X# @
9 G. R. Y; X, Y- ; The domain for which the cookie is valid.: ]* q/ z+ d1 j+ u
- ; http://php.net/session.cookie-domain
2 X" M: q, g+ F$ c7 s5 { \9 p - session.cookie_domain =. I. i" O j- [9 D
- / Y# y. r8 B& E1 _* V
- ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
. j& E n' w9 r: }! h - ; http://php.net/session.cookie-httponly
& D0 g" Y+ d: |0 \ - session.cookie_httponly =- t5 @+ u3 ?; H. @0 S
6 e& B- D# @: G7 X% h# @7 W- ; Handler used to serialize data. php is the standard serializer of PHP.
( s4 q: s" w4 E# D) P" S$ n - ; http://php.net/session.serialize-handler0 _1 Z/ Z- S' k7 H$ e. I1 e# A# J
- session.serialize_handler = php
" ?6 G' |. t0 b$ H0 J% P2 t
# S4 t6 J/ V+ i6 H" i" A; d9 U2 B5 f- ; Defines the probability that the 'garbage collection' process is started
0 O# @4 l9 Q) I/ ]2 V - ; on every session initialization. The probability is calculated by using
% D6 n# V. k% w7 S - ; gc_probability/gc_divisor. Where session.gc_probability is the numerator( x6 m+ }9 W2 L+ v% @1 R z
- ; and gc_divisor is the denominator in the equation. Setting this value to 1
! Q3 a/ K0 H- ~5 L+ W7 O9 R: b - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
5 p: r% T+ B! | K5 h - ; the gc will run on any give request.2 V- \6 |) }3 v; @) S. q
- ; Default Value: 16 ~7 {7 N: A4 _4 C
- ; Development Value: 1; S% E0 X Q' z; K8 t* Q$ o9 \
- ; Production Value: 15 F, O2 k$ g5 `9 |6 _% o) \1 Q/ U% e
- ; http://php.net/session.gc-probability% i# ~: h) B: n7 E- ]/ ? V
- session.gc_probability = 18 S( k. ~9 B( ?( B/ ?
+ I; x- r3 s N3 r- U# `- ; Defines the probability that the 'garbage collection' process is started on every
8 C8 [8 N) q# H, S; { - ; session initialization. The probability is calculated by using the following equation:9 a+ c; W6 w8 }4 V' _% t4 E- H
- ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and0 i- C' e* W" r" \- h# [. z5 z
- ; session.gc_divisor is the denominator in the equation. Setting this value to 1
# N2 S/ e# B ]5 p - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
8 k$ G+ w, {1 T - ; the gc will run on any give request. Increasing this value to 1000 will give you
2 D$ ~! u+ c# e) ` - ; a 0.1% chance the gc will run on any give request. For high volume production servers,- p9 _7 E. Z( V j/ M
- ; this is a more efficient approach.9 o8 \% J/ n) A1 Q! ~, b G9 I
- ; Default Value: 100; E6 C$ S4 o) j$ M' o' R0 V0 [
- ; Development Value: 1000
8 o+ b6 N) d, c# u/ B# Q - ; Production Value: 10009 H1 G( A; Q9 @+ k- }' M
- ; http://php.net/session.gc-divisor
) J9 i9 N3 c" v, p, @ - session.gc_divisor = 1000+ H( L2 h B( a5 R3 E9 N
6 P7 g- o v; K8 j( {& B& O4 d- ; After this number of seconds, stored data will be seen as 'garbage' and
' [0 C G! f3 f) p - ; cleaned up by the garbage collection process.+ L" [0 X8 t5 b8 ^) U- }+ j4 W
- ; http://php.net/session.gc-maxlifetime! I$ S+ P @8 R0 i. v \
- session.gc_maxlifetime = 1440
9 A- w& l- c& y: M; u' G( i4 K - - T! [' |# {: o& B7 S& \9 G
- ; NOTE: If you are using the subdirectory option for storing session files/ t- a% n5 V3 E% x2 q r0 f! X
- ; (see session.save_path above), then garbage collection does *not*. Q3 }8 K) r: B, }
- ; happen automatically. You will need to do your own garbage/ |. N, y; z7 m# ^" w
- ; collection through a shell script, cron entry, or some other method.% ~ P* i( ?1 \* W1 ?/ J
- ; For example, the following script would is the equivalent of
7 Q' v/ u, r. z( G6 y$ n6 [ z - ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):+ _2 h" ]$ n# L6 p
- ; find /path/to/sessions -cmin +24 -type f | xargs rm
1 |3 e4 S; Z7 E+ {& O, X6 F
3 ^1 e' }4 q' }9 o6 P- ; Check HTTP Referer to invalidate externally stored URLs containing ids.
* [ j# h6 D1 v+ o - ; HTTP_REFERER has to contain this substring for the session to be$ B! d9 N9 i) s" R" B
- ; considered as valid.
. ^9 K6 h% s: ~' N - ; http://php.net/session.referer-check \7 @& O2 s5 o( Z8 C
- session.referer_check =, ? f' U5 b9 B
2 I: V) H! o: }) L8 R/ R- ; How many bytes to read from the file.7 H3 U: Y8 K( ]( N+ s3 l' a
- ; http://php.net/session.entropy-length; k9 f3 I B2 M+ |* W6 E+ V2 n
- ;session.entropy_length = 32
% p7 F j$ f+ @" t1 b
+ \4 M8 i* n+ L2 @" B- ; Specified here to create the session id.
. v1 U- S' d. m/ O1 D' s - ; http://php.net/session.entropy-file9 s+ U+ S2 |. g' t
- ; Defaults to /dev/urandom. F7 T2 f( @* W2 W' _
- ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom3 w+ T8 h( ]; F9 f+ n! X' U
- ; If neither are found at compile time, the default is no entropy file.
% I1 L1 ^/ w) O( I - ; On windows, setting the entropy_length setting will activate the; r2 e) ~3 ?, z( X) l0 q
- ; Windows random source (using the CryptoAPI)- d$ |) P/ ]% l, r9 [5 c
- ;session.entropy_file = /dev/urandom* A% O: }$ Z, u) ^ G) }- O
$ z# d9 o5 ~! J F- ; Set to {nocache,private,public,} to determine HTTP caching aspects
7 d5 j! r. k: n4 ~7 Z, ]6 T - ; or leave this empty to avoid sending anti-caching headers.
! [! ]# a" A- B% k* B# P - ; http://php.net/session.cache-limiter
- Y, [# r% n/ T2 m* ^6 | - session.cache_limiter = nocache% f: V0 r7 p0 S( }8 v
2 | _/ {, w9 K5 ^- ; Document expires after n minutes.
k4 F4 q! f, y - ; http://php.net/session.cache-expire5 i" R; t& Y7 w2 ?+ [& z. J
- session.cache_expire = 1804 I& ^5 H0 f' e2 L
2 U- [* H' Z: B, y# P6 F; u/ W- ; trans sid support is disabled by default.+ J) _- b# y5 q- R
- ; Use of trans sid may risk your users' security.
+ ]5 x& Q9 Q" v0 D% v5 C - ; Use this option with caution.
' Z5 \ e# p- H - ; - User may send URL contains active session ID4 ?) o1 S/ u1 b' a. l
- ; to other person via. email/irc/etc.3 q' G9 Z. C N- H! h6 N
- ; - URL that contains active session ID may be stored* C6 d4 Z K5 u4 Z5 z4 z# G
- ; in publicly accessible computer.
R5 ]7 v" J9 Q/ D - ; - User may access your site with the same session ID1 Z$ L# p4 {# ^( D$ {
- ; always using URL stored in browser's history or bookmarks.
0 n* z# `: c% N$ y" `: w Z - ; http://php.net/session.use-trans-sid
7 e: g$ f7 H* z - session.use_trans_sid = 0( w! H0 o- B( v4 j( W; n6 Z: J
+ [# e. h; M+ [' z- ; Select a hash function for use in generating session ids.# V9 r2 `9 A0 k+ A+ _) B
- ; Possible Values
3 `+ l( I* I9 Z - ; 0 (MD5 128 bits)$ \3 f& _; B5 m k9 j* Y
- ; 1 (SHA-1 160 bits)' n4 ^" K6 M3 j; w
- ; This option may also be set to the name of any hash function supported by/ l0 q+ Y) z! b: w
- ; the hash extension. A list of available hashes is returned by the hash_algos()2 H/ ~( m8 a( |$ ?3 N3 E9 ~! A! z
- ; function.5 y' `9 d x6 H
- ; http://php.net/session.hash-function
# W s8 \! U# d; Z7 w - session.hash_function = 07 Z6 i5 D1 u, ?; c4 s" b
, {: I! @$ {( O5 @- ; Define how many bits are stored in each character when converting) a: q+ x+ ?5 s! b9 J
- ; the binary hash data to something readable.
# ~- Y" R) h0 Z { - ; Possible values:
* F; Y! N4 l. R5 r( R - ; 4 (4 bits: 0-9, a-f)
+ S9 x# q5 n2 N - ; 5 (5 bits: 0-9, a-v)
' j4 X1 B3 {6 I: B4 `9 L" j V - ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")
/ ^7 p5 D6 s7 o0 d } - ; Default Value: 4
. o8 t( M7 L- c- ?+ f+ Z0 V1 H" b - ; Development Value: 5
$ w5 X# V/ G' n p: L. K4 Y - ; Production Value: 5
1 a" e" t9 \4 q- N - ; http://php.net/session.hash-bits-per-character' I( ?/ f0 M: ~( B
- session.hash_bits_per_character = 5* X2 g9 v2 b! _/ u: k
) T! g6 _, U( A( M. @6 O- ; The URL rewriter will look for URLs in a defined set of HTML tags.# ]" N# G2 K( W! v
- ; form/fieldset are special; if you include them here, the rewriter will6 O: \$ Q3 A1 D s
- ; add a hidden <input> field with the info which is otherwise appended
% ^( s& O$ T/ j! D$ V5 c% i - ; to URLs. If you want XHTML conformity, remove the form entry.
N% e- d. h5 Q# Q" { - ; Note that all valid entries require a "=", even if no value follows.
, {; E' b; ?' Q2 ` - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
/ G6 H3 D1 g1 u+ d - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"" E- w4 ]* Z: z5 r" l
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"8 |& K! T ~; c
- ; http://php.net/url-rewriter.tags
; f% ~. X! D6 p8 B/ R6 R7 P; B( j R - url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
! ^7 K( M: {# u" v' o
- ^$ |0 O1 f& W# Q7 `' B) K3 D- ; Enable upload progress tracking in $_SESSION& S! e5 u) D; F* c5 B7 x' l t
- ; Default Value: On
9 c$ ^8 f! b; B - ; Development Value: On0 H7 g# L( V8 u. R6 _
- ; Production Value: On: C# X; _* L2 L2 H# i5 e4 C
- ; http://php.net/session.upload-progress.enabled
! X% r4 T3 z7 {! V# \, S4 x - ;session.upload_progress.enabled = On( g9 J8 ]3 A* i5 y
- % z2 t+ q5 x) v1 @
- ; Cleanup the progress information as soon as all POST data has been read
: W0 T% ?9 t9 D( Y( S/ g - ; (i.e. upload completed).
5 v% R+ t: u* \! @9 |" U - ; Default Value: On, e! v& t$ N: o0 f. F3 |
- ; Development Value: On
) J9 r% S. c: ]/ G, D1 h0 _( h - ; Production Value: On
7 S/ `8 R) n' m; L - ; http://php.net/session.upload-progress.cleanup% b" w# A, p ]% b
- ;session.upload_progress.cleanup = On
4 j# i/ @2 L r+ Y9 Q* H
7 d" b2 W6 M2 K8 m% _( I9 g) P- ; A prefix used for the upload progress key in $_SESSION7 o6 E" X' I: U9 @) c. M
- ; Default Value: "upload_progress_"
4 A0 }+ `9 y9 }6 g5 S - ; Development Value: "upload_progress_"0 ^' }) e% D# F) l- Q- | X
- ; Production Value: "upload_progress_"
, L! f8 z! u) a2 f L" e - ; http://php.net/session.upload-progress.prefix
, `3 N( r. X- q& w - ;session.upload_progress.prefix = "upload_progress_"7 T& e" v2 [, Z! J( r
- ; {0 @) A+ Y# k& y" _
- ; The index name (concatenated with the prefix) in $_SESSION! q- Y9 Z5 r& j4 {
- ; containing the upload progress information
5 P: g0 F2 N( q' e - ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"" j9 h' o! Y. c, i4 T+ |
- ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"
8 o2 A: V/ z, S$ ^8 \# x: n - ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS"8 V. M' C( d7 i5 ~0 p
- ; http://php.net/session.upload-progress.name5 a" M8 s. T( J7 _( {1 k! V
- ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"4 I* e2 A5 M: F5 z+ o
. f0 E6 @$ D" m3 b b( z* E- ; How frequently the upload progress should be updated.
3 v$ U: X0 q& L% I K - ; Given either in percentages (per-file), or in bytes
+ n" K w/ W4 ?3 R' d0 S7 s) \9 j - ; Default Value: "1%"8 U% E4 ]" A _) c2 i
- ; Development Value: "1%"' R$ \5 W$ n4 h" ?9 L
- ; Production Value: "1%"/ f+ J. T9 Y/ V5 j5 D: n
- ; http://php.net/session.upload-progress.freq
8 f( Y" \2 D" [, e8 Y - ;session.upload_progress.freq = "1%"1 j8 |& Q. Y2 B: a
5 q, w: A2 ^/ P- ; The minimum delay between updates, in seconds
; P; t: S, Z- C( C. @) }# q - ; Default Value: 1
" J) T; v$ r" ]& {( R. ? - ; Development Value: 1; g5 S. U) ?) ?" P Y& f9 O
- ; Production Value: 1- q6 m' a' `+ v% K$ `% X9 w4 l( Y
- ; http://php.net/session.upload-progress.min-freq
# P& P. r; j, Y1 F4 t. r - ;session.upload_progress.min_freq = "1"
7 K* l* B6 S8 O2 }
9 I9 u3 E/ }3 ~- ; Only write session data when session data is changed. Enabled by default.1 `* M1 c" ?: b8 i/ n
- ; http://php.net/session.lazy-write
0 i4 |8 Z, k+ d - ;session.lazy_write = On$ Z4 t* T* Y/ o
- 1 i; W2 p. P, B3 T) L4 N% L3 j3 u
- [Assertion]/ @3 p8 B9 D' R' l4 P! F r4 U
- ; Switch whether to compile assertions at all (to have no overhead at run-time)
. a% K6 S. V" u8 ^2 Z& W - ; -1: Do not compile at all- V \# @ B0 X+ G
- ; 0: Jump over assertion at run-time
% @/ w% s6 s0 k: [. ` - ; 1: Execute assertions
8 F' b. s0 \/ z | - ; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1)
7 ]* l) f# X2 O4 ] - ; Default Value: 1
6 z$ J( n: y2 d1 N# E, l' s3 [ - ; Development Value: 1
7 G1 l$ }' F- a/ v - ; Production Value: -1
9 A9 N+ O/ `3 m1 D9 s& u/ { - ; http://php.net/zend.assertions
% E2 C" \/ t0 t/ F' K0 _ |- t% h - zend.assertions = -1
" K6 O( C! `7 k! p9 v. U* | - ! ~0 ]0 [% C4 o Q" o l$ {4 L! G! b
- ; Assert(expr); active by default.2 S- r! }( d* i6 c9 E# W: |
- ; http://php.net/assert.active; y( @$ \9 g. Y4 v( @
- ;assert.active = On
, W, }0 @- {/ w5 c# B
- j0 s8 L) ?( S9 B. p- ; Throw an AssertationException on failed assertions: x2 G5 Y9 @, i
- ; http://php.net/assert.exception
! k, d3 u& w; B; ^/ |' W4 I - ;assert.exception = On
: F* } X' t, u& ~
5 Z% A: ~$ s/ m& Q) j) q4 u' Z- ; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active)/ ] O; `, B3 ^) V) l
- ; http://php.net/assert.warning0 N* a V* S2 i
- ;assert.warning = On4 W, E- F; {% n$ W% P7 z
- $ r P( ?7 U6 @) Z5 Q6 `0 |! F9 Q1 y
- ; Don't bail out by default.
+ I( u; f; J. g$ N7 T; J# y - ; http://php.net/assert.bail& Q4 ]0 b- G6 Y0 E5 `5 {# y
- ;assert.bail = Off
" q! l2 E6 u. p+ X' ?/ I5 ` ~ - / s! k, D9 X/ N& g
- ; User-function to be called if an assertion fails.
3 L7 `8 k( [" F9 Q$ c# l( h - ; http://php.net/assert.callback* @2 f, C9 O" s/ V' g" N: h+ O5 O
- ;assert.callback = 0
$ s' n1 a# F7 T* b6 c - + Q- p U% c. |9 U) @ F
- ; Eval the expression with current error_reporting(). Set to true if you want
2 I) i; D# d1 J$ r, ] [ y% p - ; error_reporting(0) around the eval().
( v9 c/ L! I& ~8 w0 A - ; http://php.net/assert.quiet-eval1 G+ P4 W/ N* K$ z
- ;assert.quiet_eval = 0
( y: _) V& O+ V0 X. j
$ J3 s a2 w6 m& ^( i- [COM]
0 ?. t) v$ Q' q1 s - ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs6 i3 ~1 Z# G/ Q6 B) ~+ c
- ; http://php.net/com.typelib-file
0 ?: Q) V1 c, E. |/ U* J2 I - ;com.typelib_file =9 I) ^7 H: u' [! V. e; p
& z$ S/ {8 P% c d Z- ; allow Distributed-COM calls& O3 O4 S$ p# p; l- z! q
- ; http://php.net/com.allow-dcom
) s9 `8 U# K+ C7 r - ;com.allow_dcom = true0 a! Q/ Y- ]0 g7 V2 u
- , ?- L. P& R( u" G
- ; autoregister constants of a components typlib on com_load(), X4 W( k3 G6 ]1 ]1 W
- ; http://php.net/com.autoregister-typelib9 x3 z! Z' q$ G7 d# x
- ;com.autoregister_typelib = true. Q* M" C# f2 I8 b% q- ?
/ X% H+ i# i: b1 h# I) r- ; register constants casesensitive, D1 O3 p- k7 Q) g
- ; http://php.net/com.autoregister-casesensitive N7 {$ v' O/ Z# d5 j4 Q6 L
- ;com.autoregister_casesensitive = false
0 h7 d* Q2 _7 |" p ?6 h9 I
0 G. w; u% q# T) a! f) X8 A- ; show warnings on duplicate constant registrations: U6 u. t- S! J2 e
- ; http://php.net/com.autoregister-verbose" s$ H8 X8 M) s, _
- ;com.autoregister_verbose = true
6 N7 ?2 H! B" w( k, L5 j - 3 E" W- Q9 }% u( v# Y
- ; The default character set code-page to use when passing strings to and from COM objects.7 J- }6 A4 R: N0 @+ ^$ K5 q
- ; Default: system ANSI code page ?. R/ `% Q, F# _1 e' B
- ;com.code_page=) Z/ ]& p+ A7 D$ g4 m
- ) u% D s8 X; S5 k% K
- [mbstring]# K% d; H' d q
- ; language for internal character representation.5 p: D5 i$ g# @$ {7 c9 w5 v
- ; This affects mb_send_mail() and mbstring.detect_order.
3 {6 @( I9 c% h- F0 r7 k - ; http://php.net/mbstring.language# ^; C/ p, A* l8 Z
- ;mbstring.language = Japanese" _/ O, }$ O. P
- N; A# J: X- {6 _, A3 w- ; Use of this INI entry is deprecated, use global internal_encoding instead.% S$ ~: z: Y* S
- ; internal/script encoding.+ T/ l. b$ l0 f3 N8 g
- ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)' J, o. S" L6 `7 l1 e
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
1 G! O, L- h u! s. y! [ - ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
: R! c( K% y( k z2 l+ e5 \ - ;mbstring.internal_encoding =/ v4 c$ B6 Q- w( b$ k
. ^2 D: e6 ~8 b0 O% i& p- ; Use of this INI entry is deprecated, use global input_encoding instead.- a9 z3 z& i" f9 @5 @- x
- ; http input encoding.( [$ z; O. R3 g4 ~1 F* J
- ; mbstring.encoding_traslation = On is needed to use this setting.
' Q3 T& Z: q! A' A7 { - ; If empty, default_charset or input_encoding or mbstring.input is used.9 @# x3 N; [3 {
- ; The precedence is: default_charset < intput_encoding < mbsting.http_input
0 |/ j/ o3 W/ p6 Q5 B - ; http://php.net/mbstring.http-input1 |* L# l9 r, @8 Q) c" Q2 G
- ;mbstring.http_input =
% s& ?( w' X+ ] U8 [3 @
# Y6 B$ H' v4 X$ N4 s- ; Use of this INI entry is deprecated, use global output_encoding instead.
1 Z# k n: i; N - ; http output encoding.
+ L0 _; T! |" ?4 N# c - ; mb_output_handler must be registered as output buffer to function.. P; E7 K1 o! i/ R8 N
- ; If empty, default_charset or output_encoding or mbstring.http_output is used.. A7 b B, a; o* h, u! X
- ; The precedence is: default_charset < output_encoding < mbstring.http_output, v) ~. B! K5 g5 J5 x# c
- ; To use an output encoding conversion, mbstring's output handler must be set m4 e$ t+ i) n' U3 U) Z& Q
- ; otherwise output encoding conversion cannot be performed.' D3 |: @2 a$ D4 B5 ~
- ; http://php.net/mbstring.http-output
4 I# A: @. M+ _, R: | - ;mbstring.http_output =
5 J2 W1 K, D X - 8 w# F: ?7 v5 [ C' F+ _. R
- ; enable automatic encoding translation according to
4 Q4 N2 B6 d; @6 V& L1 {, B - ; mbstring.internal_encoding setting. Input chars are
$ S& ]. _2 y( `2 C3 s - ; converted to internal encoding by setting this to On.) |2 k, x/ b; z
- ; Note: Do _not_ use automatic encoding translation for
7 V( \# Z7 q7 A6 `: { - ; portable libs/applications.
! E1 I8 P* s; P) _ - ; http://php.net/mbstring.encoding-translation1 y: |4 ^ H' q5 X
- ;mbstring.encoding_translation = Off
' [& I) R5 u& o0 t( x1 ~& f
8 L; e1 L x; w: \# ^( u- ; automatic encoding detection order.9 g' y( ~$ s5 ?4 @5 b
- ; "auto" detect order is changed according to mbstring.language; S! V: R, C' q/ `8 H& ~
- ; http://php.net/mbstring.detect-order: ~1 V' a$ l0 k/ \
- ;mbstring.detect_order = auto( O* T! e3 J8 Z. F# u3 |* H" C5 _
, P- K! ]5 m" H# I2 v) ?- ; substitute_character used when character cannot be converted) b2 D7 }7 H4 b0 d
- ; one from another- m0 z3 a1 D3 x" F# A ?2 {
- ; http://php.net/mbstring.substitute-character
/ ?* }9 U4 p$ { - ;mbstring.substitute_character = none
" a5 v5 K$ f/ q, K# I
s$ ]* t' [- U% J. }# ]- ; overload(replace) single byte functions by mbstring functions.8 @% c5 H- U6 b! \; ~$ t7 U. C! L
- ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
3 F. Z- P, e. i- j6 a; n$ O - ; etc. Possible values are 0,1,2,4 or combination of them.: O, v- b# X2 x2 T
- ; For example, 7 for overload everything.0 K y4 a9 `# A# z7 m
- ; 0: No overload6 G6 }: ^5 [3 _9 q: e6 p! J$ L$ l
- ; 1: Overload mail() function2 }/ g; T9 a# _4 _+ ^7 ]2 B5 B3 i
- ; 2: Overload str*() functions
+ c+ l1 q* u3 z2 w' X - ; 4: Overload ereg*() functions5 B% Q) f6 h3 S3 b5 A# }
- ; http://php.net/mbstring.func-overload% P' l1 N' B# A4 k( t* \4 P
- ;mbstring.func_overload = 02 J% _& e; r7 v5 p* C; {
- / \* @ |: q7 e4 W }
- ; enable strict encoding detection.
# h6 w& v4 u+ S7 O7 Y; b3 W* V' l - ; Default: Off
9 U% ^6 i8 N& S" ]7 ~: e( C$ W - ;mbstring.strict_detection = On
* n* T" y% J" K0 F6 E" C
9 g: [# j( N$ H5 ~& c- ; This directive specifies the regex pattern of content types for which mb_output_handler()' o( S* l( _7 |& A/ w% ~
- ; is activated.
* _5 k0 \5 H" j4 i; G$ K! m - ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml); Y4 M1 t3 [5 K( d C- u
- ;mbstring.http_output_conv_mimetype=
! }0 R+ j! T: K+ a& t$ B: G/ |9 x( j3 O - , W2 u. O1 P3 Z
- [gd]3 _% B/ n2 v: j. g3 b; u
- ; Tell the jpeg decode to ignore warnings and try to create
' |: K6 K- l* I# m i - ; a gd image. The warning will then be displayed as notices" R6 k$ W- |* e( ^
- ; disabled by default
) w8 [- O% M7 f. q7 B; j% { - ; http://php.net/gd.jpeg-ignore-warning
$ z! M4 U. U: U - ;gd.jpeg_ignore_warning = 00 |5 ?5 a0 I! L. Z- K) L& Z! w0 R- H
- & `) l9 e- L/ v$ Y! j) b
- [exif]2 t/ y& j# X% z8 ]$ q1 {" x
- ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.& X8 r" G+ G) {9 n. b8 K) k
- ; With mbstring support this will automatically be converted into the encoding
! O! B7 W9 t2 g, `5 o; p' X5 h* E - ; given by corresponding encode setting. When empty mbstring.internal_encoding
6 E& ]/ W# Q5 b1 G - ; is used. For the decode settings you can distinguish between motorola and1 i) C0 k5 ]4 z6 G! ~, N" K
- ; intel byte order. A decode setting cannot be empty. r0 O- v' D0 G! m2 c, _" o
- ; http://php.net/exif.encode-unicode
P3 f5 W( \, |9 V) y - ;exif.encode_unicode = ISO-8859-156 k% W5 t' ?' I9 |7 S
- 5 j, u/ ^) x0 c2 z- x$ [
- ; http://php.net/exif.decode-unicode-motorola3 ^! h% q8 F7 B5 U* c
- ;exif.decode_unicode_motorola = UCS-2BE
! p' P4 F3 K B' Z - * i. a p; f, Q B
- ; http://php.net/exif.decode-unicode-intel
2 \1 _" o! P) U$ i7 ]8 p, R$ Q - ;exif.decode_unicode_intel = UCS-2LE
3 a9 h9 t- v3 r8 L1 X - ! { R& r/ |; [
- ; http://php.net/exif.encode-jis
- D' k; `3 Y8 P0 o2 s - ;exif.encode_jis =0 W$ [! c$ M9 ~! r4 i
- # O% S; ^% v5 ~7 c0 [. F* e7 h& {! q
- ; http://php.net/exif.decode-jis-motorola
' `) `8 r& f' j0 e5 j0 Z - ;exif.decode_jis_motorola = JIS; f2 z( j4 |4 [8 v
- 9 s6 N3 Z |. G) H" t
- ; http://php.net/exif.decode-jis-intel
& W4 i- ^# E& z" Z - ;exif.decode_jis_intel = JIS
% c+ y/ U# A8 z2 k
0 `4 s3 Y7 z3 f+ @: \- [Tidy]
$ {) y) x7 E$ i, e0 C - ; The path to a default tidy configuration file to use when using tidy
2 k* d% {; ^0 Q' w' g0 V# f, v# j - ; http://php.net/tidy.default-config
. Y8 l( J2 B# |9 Y5 \, n3 z& o - ;tidy.default_config = /usr/local/lib/php/default.tcfg
5 X8 s* m9 d- _4 `0 y$ G
9 A W: a" C* z$ J6 R- ; Should tidy clean and repair output automatically?; l- J C9 H: `2 f0 _
- ; WARNING: Do not use this option if you are generating non-html content; y% M* V5 Q( H; l" ~, U' Z
- ; such as dynamic images& _7 C7 v+ k Y8 N. B; C
- ; http://php.net/tidy.clean-output
0 |, g2 q( u/ Y - tidy.clean_output = Off
/ o! I1 g! H. r0 f z0 t% W5 d - ; R! n1 F3 C- v
- [soap]
* @, |4 H+ o: L9 c6 U" \! | - ; Enables or disables WSDL caching feature.$ w, q7 |8 D5 D& Y5 ^
- ; http://php.net/soap.wsdl-cache-enabled
& @2 B# [4 ~6 A5 r) y2 \2 L - soap.wsdl_cache_enabled=1" {4 \- J& S6 P* c. _- ?! j+ g
* l. F A& m2 Q0 S% T% R- ; Sets the directory name where SOAP extension will put cache files. |- V; a/ C1 G) j; s
- ; http://php.net/soap.wsdl-cache-dir; \; ]( E, ~) s2 P0 w
- soap.wsdl_cache_dir="/tmp"
8 r, F( r6 d% e' |& O2 m4 D
* C% Z; a5 m6 D9 c' D- ; (time to live) Sets the number of second while cached file will be used
8 l; F4 ]9 P! L. S% t6 P# c1 x - ; instead of original one.
# N6 |: i- S9 y6 Z' n - ; http://php.net/soap.wsdl-cache-ttl) [7 b2 i/ S2 ]7 [: A: @# b
- soap.wsdl_cache_ttl=86400$ c" k6 [' Y$ I# e2 R* R% {
2 A; v& p8 }3 G- ; Sets the size of the cache limit. (Max. number of WSDL files to cache)! e+ ^% z; }7 |' o5 W0 V
- soap.wsdl_cache_limit = 54 T4 w& w$ j( _, R5 J
- $ b' v: U, X7 ~0 I' i
- [sysvshm]
& D& u, j, }8 m8 S& w - ; A default size of the shared memory segment# L9 [* N+ @) h' ?3 C; k6 U
- ;sysvshm.init_mem = 10000
2 h8 T: \; M) H c; v$ {7 Q
* z* y( E" L5 v& |: y- [ldap]
! n& U& L* a# \& \ - ; Sets the maximum number of open links or -1 for unlimited.5 j# r7 C& K, i4 O( K
- ldap.max_links = -1, q9 C2 I( h. a2 D
& w' t( e {) g6 P( `6 H# {. P- [mcrypt]/ Z( @; A! Z2 o
- ; For more information about mcrypt settings see http://php.net/mcrypt-module-open
; }0 u( j" M! a& R2 w7 `2 k
7 z9 ], s; M, }+ A- ; Directory where to load mcrypt algorithms! Q% b, Q' ]4 [& N4 S% g* U3 p
- ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
5 q1 F' p" t2 g. n8 M% h - ;mcrypt.algorithms_dir=( z& J, @4 y# i/ ]
5 A7 }5 w; b9 |- ; Directory where to load mcrypt modes6 f1 ^3 q: T& C' A& \: \
- ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)+ O" R" Q9 _/ p1 \% I; Q
- ;mcrypt.modes_dir=0 x( c$ n' L' X$ a3 I
- ! J+ w( E& W+ I7 D
- [dba]
7 y; A5 f4 [9 ?- g- i - ;dba.default_handler=
5 N& q$ I9 E' @) _ - 3 j! u, K2 y: `7 X
- [opcache]
, q& [ N l7 w* \* A - ; Determines if Zend OPCache is enabled
+ H3 Z4 l" _8 j, n - ;opcache.enable=01 v& C! X1 a9 d' J. t" I- ^ J
# u3 r O7 x# s- ; Determines if Zend OPCache is enabled for the CLI version of PHP
# b$ s7 `0 q6 V V- c# O0 Y - ;opcache.enable_cli=0' c; c. i; G* h$ j) o; L& O' ^! ^
- 3 M6 Y# Y4 g/ t4 L( ? i1 ^$ w
- ; The OPcache shared memory storage size.2 H3 o1 ?& Z( V% ?
- ;opcache.memory_consumption=64: U- j1 Q4 E) E0 a
- , E6 q: e) j# t5 [8 G9 b
- ; The amount of memory for interned strings in Mbytes.5 l; V6 A8 k- {8 ^% ]/ N4 G; d' m
- ;opcache.interned_strings_buffer=4% F$ v& j" V; i* w
. l, W- H4 e2 w) r% H% j- ; The maximum number of keys (scripts) in the OPcache hash table.
: v2 [& n; ]# Q4 z4 X8 P% L - ; Only numbers between 200 and 1000000 are allowed.& }8 H7 h! \+ v2 S
- ;opcache.max_accelerated_files=2000
/ @8 `. S" \4 r: q& W k - ) s! ~% R& V+ U& l: |* |) b
- ; The maximum percentage of "wasted" memory until a restart is scheduled./ W) Q6 e5 I5 c0 z
- ;opcache.max_wasted_percentage=5
- u/ w$ A( }# I - ( A, u/ n* d2 [, J3 p. Z
- ; When this directive is enabled, the OPcache appends the current working
( X2 c/ I$ M, `6 d) l" o - ; directory to the script key, thus eliminating possible collisions between
5 g* @% G1 |" P+ y8 B& C8 L - ; files with the same name (basename). Disabling the directive improves
- R9 r& g1 H! m" d1 `1 w - ; performance, but may break existing applications.' F# [3 R3 x1 o( H
- ;opcache.use_cwd=1! i g6 W3 X1 _/ A8 N
- - c! H9 h1 Q; \3 H% u& H- M3 S
- ; When disabled, you must reset the OPcache manually or restart the
* z+ A" J3 J$ e6 {6 ^9 P8 Y - ; webserver for changes to the filesystem to take effect.# B8 {, w. Q" h+ [9 p5 O1 {
- ;opcache.validate_timestamps=1/ @8 v, W' e+ Z: _( _7 H
) V6 u, |% }! R$ f. Y- ; How often (in seconds) to check file timestamps for changes to the shared
4 h7 I- v% r3 {3 d - ; memory storage allocation. ("1" means validate once per second, but only
; F* x7 J7 D+ P3 J; W' o/ n - ; once per request. "0" means always validate)
' t. ] a3 |9 |5 Z3 K4 `3 P - ;opcache.revalidate_freq=2
0 v. g; L5 e5 b3 g' _ - 7 m- U! B7 ^ r' c% E- X
- ; Enables or disables file search in include_path optimization6 ~: i4 Q( \) w% [
- ;opcache.revalidate_path=0- ]1 _7 q+ `0 a i
- 2 \* z5 g5 U7 k- U
- ; If disabled, all PHPDoc comments are dropped from the code to reduce the
8 W, L. y# `0 T+ P8 ^ - ; size of the optimized code.
: r& u* K' d; u1 P: C8 k& ] - ;opcache.save_comments=1
) J0 K7 Q% ?; S. X" B7 R8 d- Q
/ b/ M0 x# \4 k8 g+ P& b( `. a1 Z- ; If enabled, a fast shutdown sequence is used for the accelerated code
?; O/ G: g7 | - ; Depending on the used Memory Manager this may cause some incompatibilities.
+ A7 _! x" X% I& ?# \. \ - ;opcache.fast_shutdown=09 d9 A \- B2 P
- ) U8 b# n- K0 ?8 R
- ; Allow file existence override (file_exists, etc.) performance feature. [" s/ K1 C, {. n
- ;opcache.enable_file_override=08 q$ E1 Q; ^5 l0 S* K* a
% _2 Y( ^5 C# p- I' u/ M7 Z- ; A bitmask, where each bit enables or disables the appropriate OPcache9 n5 @5 g8 G9 Y+ i& X. N! I T
- ; passes
" b3 A0 b9 a9 T, r- ]. M9 U - ;opcache.optimization_level=0xffffffff
: a, A- F' Z1 q7 I- I8 J u9 Z* L - 6 u P! W- K1 H# t
- ;opcache.inherited_hack=1* q# W1 L; k) C! r/ b* \
- ;opcache.dups_fix=05 ]7 }$ T2 H) ~% b2 }' q9 A
, C/ g+ Z* `7 U) X- ; The location of the OPcache blacklist file (wildcards allowed).0 j8 @' a% T; m4 Y8 g' D
- ; Each OPcache blacklist file is a text file that holds the names of files# G2 U X1 K- l% d* l7 o: u
- ; that should not be accelerated. The file format is to add each filename
) q" F. J4 W" ]% `4 {( m0 C - ; to a new line. The filename may be a full path or just a file prefix2 ~5 }" ^8 | U6 |' o
- ; (i.e., /var/www/x blacklists all the files and directories in /var/www
7 B, G( B; M$ m/ I0 M - ; that start with 'x'). Line starting with a ; are ignored (comments).
_0 G, H; H M) d2 b - ;opcache.blacklist_filename=; r- y3 i$ Z I$ N8 ]
- ) C4 i5 m, H& G8 N" H, G- {# i
- ; Allows exclusion of large files from being cached. By default all files
. |, N/ ~# g# T A8 J - ; are cached.
: F. L& Y ]7 h, n1 `' I - ;opcache.max_file_size=0
; l# F+ F; w+ v8 L) Q' @' T
* k4 ~2 r0 ~0 R5 H- ; Check the cache checksum each N requests.. X- k* O6 X6 _6 i6 q
- ; The default value of "0" means that the checks are disabled.
2 _) \2 ]" E# _6 P7 q' u - ;opcache.consistency_checks=00 W4 Y! |& t3 @) l0 [. c9 Q
: |7 S {6 m6 B# m! X; A$ |2 A- ; How long to wait (in seconds) for a scheduled restart to begin if the cache
) O" \* Q, w1 y: X - ; is not being accessed.
. \: q: M1 Q0 c9 I# j8 g - ;opcache.force_restart_timeout=180
; M6 X+ l& S3 B) ?5 p& f; }
2 b! n5 A# I" r) |0 I9 s4 t2 Y- ; OPcache error_log file name. Empty string assumes "stderr".9 ~8 {% J0 N7 }
- ;opcache.error_log=
4 a; N" Y# V, `7 H% y% s
& ]& G0 D6 d( F/ Y- ; All OPcache errors go to the Web server log.6 j1 g. U! z' N/ V0 P; h
- ; By default, only fatal errors (level 0) or errors (level 1) are logged.
' V; k8 A8 W( k, L' F# t: H3 f - ; You can also enable warnings (level 2), info messages (level 3) or* _! ?, y) c! P0 [. }. Q x6 Z
- ; debug messages (level 4).
) z' g/ m0 i/ c - ;opcache.log_verbosity_level=1! e& e5 Y6 H! P4 j5 s6 V: D% N
- $ p2 S1 d0 s, B
- ; Preferred Shared Memory back-end. Leave empty and let the system decide.
* Q8 k& V0 K/ J" Z+ z1 q0 Z - ;opcache.preferred_memory_model=. r z) @/ W# X* o9 n$ Y4 G
* Q5 C: _2 u1 w0 _& m3 S& j) k4 x- ; Protect the shared memory from unexpected writing during script execution.
6 }4 o4 S# k. V1 \$ u/ Q+ j - ; Useful for internal debugging only. g* @1 t6 H( l# Q5 n% T
- ;opcache.protect_memory=08 M/ P8 y) z8 {/ ?8 n! T
/ ]/ x6 k, q1 P, E+ q+ `- ; Allows calling OPcache API functions only from PHP scripts which path is
8 i" m3 _) x& [# n- A3 J% q s( l) q - ; started from specified string. The default "" means no restriction; c2 e" d- I2 H4 y, S; D9 V
- ;opcache.restrict_api=
! q; I9 @5 G9 i3 S - - N- w2 j& `9 `
- ; Mapping base of shared memory segments (for Windows only). All the PHP
% |7 Y7 _2 a1 x3 G3 e7 q. z, } - ; processes have to map shared memory into the same address space. This9 Z* T' p2 `4 H2 L8 b7 W& x
- ; directive allows to manually fix the "Unable to reattach to base address"% y0 P3 s+ z0 k Z
- ; errors.
3 R" t4 r0 o4 ^1 R - ;opcache.mmap_base=
7 h: J1 ~7 @& A& J$ r
# ]3 j1 `- @4 x5 }" k$ x- ; Enables and sets the second level cache directory.' e4 n9 b1 G4 }! H- q: w7 q
- ; It should improve performance when SHM memory is full, at server restart or
3 G& J5 f8 C) f ^2 d - ; SHM reset. The default "" disables file based caching.8 e: H" z( l4 e& x+ L% ~: R. ?7 v
- ;opcache.file_cache=4 \$ K- [3 Q& \. e) Q9 ?7 M6 t
- % M# ?+ B/ k A6 E
- ; Enables or disables opcode caching in shared memory.- O0 b2 m# O' C5 j% E& ^
- ;opcache.file_cache_only=0
6 j; o5 { n; ~' A! g - : D; i" r6 R7 Q9 k* F# g6 M1 v8 c
- ; Enables or disables checksum validation when script loaded from file cache.3 S0 d# c& p( K3 _* y# p
- ;opcache.file_cache_consistency_checks=1
1 ]8 E& E, g7 z
# d% u8 p* {1 Y% ~- ; Implies opcache.file_cache_only=1 for a certain process that failed to
0 L* f$ m8 ]1 g6 B7 D5 ]# v. ^ - ; reattach to the shared memory (for Windows only). Explicitly enabled file, O3 J* L0 m9 t0 O# ?, F
- ; cache is required.
1 N0 a1 `6 ^. u1 m& n& G - ;opcache.file_cache_fallback=1
$ {8 [& ]" U( q0 H F h. r - 3 }* G: t' @ o* r5 j* Q
- ; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
1 o' v4 }& C& j7 e - ; This should improve performance, but requires appropriate OS configuration.
3 l! G4 \6 X: }5 Q3 }$ V, r6 ? - ;opcache.huge_code_pages=1
1 ]3 E8 x1 \5 B5 `8 |9 Y
( j. n; J2 C$ ?+ W3 t. _% \1 j- ; Validate cached file permissions.
+ ?+ Q4 K3 k+ [3 t) n. L6 d$ R - ; opcache.validate_permission=0
- s$ v' W2 Y: j2 J" G2 y6 |* W/ a
0 q. n) ~3 e5 z( O6 |- w+ m- ; Prevent name collisions in chroot'ed environment.3 y/ N, R H' A0 h( k& v" w9 @
- ; opcache.validate_root=0
4 g* T$ i# i& r6 f - 6 a1 S, b( w! L
- [curl]
' U/ J( x* \' k. r - ; A default value for the CURLOPT_CAINFO option. This is required to be an
8 |0 G" Z* v! N: y/ Z: H/ _ - ; absolute path.5 ~% r( i; s' Q
- curl.cainfo = /etc/pki/tls/certs/ca-bundle.crt
( }/ s( g O5 V3 X9 f5 v' C
" d2 c% z$ [/ a, U; n- [openssl]1 G3 f% T& P3 K5 K0 o- h0 z
- ; The location of a Certificate Authority (CA) file on the local filesystem. u6 B+ |; x/ B8 F3 K% G+ U
- ; to use when verifying the identity of SSL/TLS peers. Most users should4 i7 T! ^6 a" ]: e
- ; not specify a value for this directive as PHP will attempt to use the
8 L$ k9 h7 a C - ; OS-managed cert stores in its absence. If specified, this value may still( K/ ?. j; L7 R8 z8 \
- ; be overridden on a per-stream basis via the "cafile" SSL stream context
- h y1 p1 x0 M - ; option.$ @3 \+ J, C, Q% t, c
- openssl.cafile=/etc/pki/tls/certs/ca-bundle.crt! {- z; J8 d: O e @+ H
/ H0 \) x2 J/ f M; Z4 G5 \+ n4 Q- ; If openssl.cafile is not specified or if the CA file is not found, the
: X# S" y7 f+ _7 Y8 X - ; directory pointed to by openssl.capath is searched for a suitable1 e/ ~) K! d* p: t- k+ u5 x6 w
- ; certificate. This value must be a correctly hashed certificate directory.
# C8 c0 V6 t+ R, r: u$ d - ; Most users should not specify a value for this directive as PHP will7 J* m0 N# X7 G; `! w# U2 O
- ; attempt to use the OS-managed cert stores in its absence. If specified,
1 P8 B K J' Q9 b5 I2 J! ~ - ; this value may still be overridden on a per-stream basis via the "capath"
5 ~0 g/ s0 ?8 S. R t - ; SSL stream context option." y* n" z' `3 k1 P
- ;openssl.capath=
; l6 p+ L' [2 j, E) v - / N0 [/ W! [5 |; g$ ]3 u% x
- ; Local Variables:- ^% b$ d: i/ ?7 g
- ; tab-width: 48 u3 f. G3 M( R! T* L: k; x
- ; End:% w4 f! V( e& a2 @" w% J
* L6 k8 f8 l4 h- ;eaccelerator8 P0 F5 x: ^3 d0 ]' Q! t- ]
- ; y1 \. r7 y: i7 m
- ;ionCube2 _) H8 q( d6 R4 z/ @* P
7 B. \' p' ^5 m( z- ;opcache' L& l# P) x @0 d/ M9 G; _! C
- 8 h, O2 h7 f/ N& a; K
- [Zend ZendGuard Loader]
7 k6 w: P* T' s% C9 A - ;php7 do not support zendguardloader @Sep.2015,after support you can uncomment the following line.
0 t; ?# G% V5 A y8 p* H - ;zend_extension=/usr/local/zend/php70/ZendGuardLoader.so% M& x5 {6 h; E: \
- ;zend_loader.enable=1% [ w* {, |$ w: ^2 C0 w' x
- ;zend_loader.disable_licensing=0
1 a3 z9 y3 N' O7 R. r/ I3 H - ;zend_loader.obfuscation_level_support=36 ]: C* I1 a! h! C; o" u
- ;zend_loader.license_path=! A) f. n: r1 _, T
9 k& G& B* M* V- j2 [& a4 c3 a- ;xcache
% _* y* {( f% _% I7 Q# C - ! N/ Z* i0 D1 R. p' [
复制代码
8 a# P. S5 x/ {$ K9 o2 L3 C3 y4 W
+ Q/ @* a7 y$ Q( I' k# e# t" ^ m) w1 I
/ R2 X v& a3 I" V
0 F( [4 B$ p# H8 P# s" x, H) j% D9 f
" ]$ x& s/ Q0 w' @8 p
PHP5.6版本原始设置
7 ?6 K" z; ?: D* I. C: k; c6 ]" S
+ `) S5 j/ p, `$ u- [PHP]' V6 J- f) K, d
- 4 z& k7 \/ u `4 B! t* n$ @% i4 J
- ;;;;;;;;;;;;;;;;;;;
8 x2 {3 i$ r0 k3 h/ V. p* L - ; About php.ini ;/ A9 }5 [: y" R5 ]" b3 w- x
- ;;;;;;;;;;;;;;;;;;;. ?$ Q3 b4 Q5 p# B
- ; PHP's initialization file, generally called php.ini, is responsible for
+ J* s" e; ?; m/ D, } - ; configuring many of the aspects of PHP's behavior.
: q: s; R J, h+ p U0 e F
4 o3 R. Q7 ^9 [9 y- ; PHP attempts to find and load this configuration from a number of locations.
* I+ J8 d/ h1 D: q/ q9 T$ X5 J+ d - ; The following is a summary of its search order:
i7 ^5 O; b9 \( g/ t+ @1 b3 g - ; 1. SAPI module specific location.! U& b: V$ o, b! v
- ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
! p; _ T/ A& z) w8 n- `" t) l - ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)' ~5 v0 P% C% x% E
- ; 4. Current working directory (except CLI)
2 B! G" w. i+ d1 b9 g' }. @ V; ^! Y - ; 5. The web server's directory (for SAPI modules), or directory of PHP
4 w+ j1 o9 s& _1 K! N - ; (otherwise in Windows)
9 @6 X- x/ c9 ]+ p, K - ; 6. The directory from the --with-config-file-path compile time option, or the
9 x5 Z9 M& j6 p/ ] - ; Windows directory (C:\windows or C:\winnt)
$ Z8 { e6 C# c" M - ; See the PHP docs for more specific information.: z; u2 N) e. _: a
- ; http://php.net/configuration.file
/ h; h& b- }$ d - 8 c& P! F$ M$ u8 Q% R
- ; The syntax of the file is extremely simple. Whitespace and lines* Q H8 v: W( ~( p
- ; beginning with a semicolon are silently ignored (as you probably guessed).
' C H/ E5 B" R: B - ; Section headers (e.g. [Foo]) are also silently ignored, even though/ l/ N/ r1 K: F* u7 V
- ; they might mean something in the future.
3 \5 f6 R. J$ n4 G! `( J0 C
! t% f' e, v+ S! u, X- ; Directives following the section heading [PATH=/www/mysite] only
' {- @$ A% E+ z& V* X - ; apply to PHP files in the /www/mysite directory. Directives
l8 h4 K, V. |3 e6 J" T - ; following the section heading [HOST=www.example.com] only apply to2 N* R9 }; Z% X
- ; PHP files served from www.example.com. Directives set in these
7 K" v3 T+ r5 n) x5 O - ; special sections cannot be overridden by user-defined INI files or
! T& h+ S7 d2 l - ; at runtime. Currently, [PATH=] and [HOST=] sections only work under
: ^! g/ |# A' ^1 r8 D - ; CGI/FastCGI.$ m' g; F% }% e( _
- ; http://php.net/ini.sections
1 B# d, k ]. A" r# D0 x. D
" D) U' [& r/ h$ X5 L0 f- ; Directives are specified using the following syntax:
3 s! o6 m' e) k+ a) | - ; directive = value' G. G7 U0 E' w' H) D$ S8 t0 L$ d( T
- ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
9 \ e% C4 j# K9 J$ D - ; Directives are variables used to configure PHP or PHP extensions.
8 `1 a0 r% z' ~! {: o - ; There is no name validation. If PHP can't find an expected
/ h. b9 f5 w& b - ; directive because it is not set or is mistyped, a default value will be used.
) @9 w" A" O! f2 n1 a
: W5 ^( c8 r5 l. N- ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one% }. c9 W- Y' ^, v H* z
- ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
" }# x1 w& U D( ]3 G) ^% p - ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
/ U" G+ h1 E# l; v' O - ; previously set variable or directive (e.g. ${foo})
7 y: e' m+ v. f3 ]+ T - : l7 @- S0 B7 _) y1 F# Q
- ; Expressions in the INI file are limited to bitwise operators and parentheses:8 m" @0 K" `/ Q0 _' a# ~. o' y
- ; | bitwise OR( c7 J2 v; S6 E% X
- ; ^ bitwise XOR& [- G% }( M/ H# n6 }- L! W4 r
- ; & bitwise AND- O, ?5 w! ?1 _ I* M( Q; J
- ; ~ bitwise NOT
B: u) m- u6 H5 s% d4 r - ; ! boolean NOT% I; A; |$ U) X% K$ n* Y) X
' B4 }6 F- k( k' o7 d- M) q: ]. D- ; Boolean flags can be turned on using the values 1, On, True or Yes.
+ Q7 m2 S+ D) \6 v9 i9 i - ; They can be turned off using the values 0, Off, False or No.
: o3 X4 B$ M/ j; a( u8 i' r
/ [( p6 p2 i1 k; c( @$ ]- ; An empty string can be denoted by simply not writing anything after the equal
& C" |( V: Y0 q. J% S" ^ - ; sign, or by using the None keyword:
# L# C8 n( o* o' x+ {
$ K5 F6 t4 l9 O9 ]% j+ B9 U9 s- ; foo = ; sets foo to an empty string5 a0 T# O% n9 A! x2 G6 g
- ; foo = None ; sets foo to an empty string
' v9 O/ K T) d7 v& N, j. P - ; foo = "None" ; sets foo to the string 'None'
, g! f6 y2 x3 z2 A. ` X) X - 7 c* N, m% P9 m. ]2 L- x m# f6 d; O
- ; If you use constants in your value, and these constants belong to a
7 U3 C- K9 w/ N! Z9 F; e% n - ; dynamically loaded extension (either a PHP extension or a Zend extension),% C; I" }; w1 [; Y
- ; you may only use these constants *after* the line that loads the extension.% y; g. h/ R |4 F
/ U$ _6 [/ i" d0 f1 R* G$ k- ;;;;;;;;;;;;;;;;;;;
' f$ c; B, c4 U: T5 n2 F( _, H+ I! T - ; About this file ;" Z4 h0 B$ t4 ?
- ;;;;;;;;;;;;;;;;;;;
" d8 ?% w8 g C/ ` - ; PHP comes packaged with two INI files. One that is recommended to be used
; O3 R" @8 ]6 |$ V- j. g - ; in production environments and one that is recommended to be used in
7 M. H) o1 U& Q) Q - ; development environments.
5 Z# @8 }1 I3 }% \. J# F/ ~
0 }8 g' b% E" K: k' H2 u- ; php.ini-production contains settings which hold security, performance and$ a) @" l9 N8 A& D; n1 y) h; `
- ; best practices at its core. But please be aware, these settings may break# T% @, n) o8 U( t4 M
- ; compatibility with older or less security conscience applications. We
8 m: k" V: y. o( m9 x/ T - ; recommending using the production ini in production and testing environments.
! L' r( A. U5 `1 Q# M* u+ _0 H
& D0 |3 Z( O' a. m" [+ t- ; php.ini-development is very similar to its production variant, except it is9 y. t, r. O* a: G% M8 Q' k7 y. \, Y
- ; much more verbose when it comes to errors. We recommend using the
% v8 T" s1 O% a/ D* y H6 i4 C' L$ n - ; development version only in development environments, as errors shown to
9 v4 V" g0 A! `* T* ^$ K5 ^: r! \ - ; application users can inadvertently leak otherwise secure information.
. O' e( }9 [2 f# ?, y - " B D* z! n7 r' N. x8 d- }5 z
- ; This is php.ini-production INI file.
7 ^( D+ {# o: s; ]2 ~ c, j - 8 H J- v- @0 Z. [! n- r6 w
- ;;;;;;;;;;;;;;;;;;;1 K/ K2 |9 | j. {+ l
- ; Quick Reference ;
# x$ @4 A, q$ f# w1 w - ;;;;;;;;;;;;;;;;;;;
2 Q3 o p( `$ b e9 Y - ; The following are all the settings which are different in either the production
. Z* h* Z3 v9 @ - ; or development versions of the INIs with respect to PHP's default behavior.
# x, _% B7 c3 H% V - ; Please see the actual settings later in the document for more details as to why! F, i2 S* e4 I: H, x( a
- ; we recommend these changes in PHP's behavior.
8 G9 I! h, W* R1 j! t - ) e' e2 y4 j; Z+ x2 Q' M; P
- ; display_errors0 Q+ U& W% e4 Q; o
- ; Default Value: On
& S; |7 k! r2 O* ` - ; Development Value: On
. `, J5 F \( ^ - ; Production Value: Off: @1 o/ z$ l6 E7 h0 c+ X
$ ?) u1 y6 g) n- |) ^- ; display_startup_errors
( }; [6 O3 w5 ]- d - ; Default Value: Off
9 c/ Y7 h4 g9 f - ; Development Value: On
# U0 y9 P- a8 l4 F - ; Production Value: Off; K! r' x2 K2 l2 M, Z- Y) U
5 d$ G! o& n# O) c( F- ; error_reporting2 Z5 q2 y% a3 @$ F0 U% G
- ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED p) w! s) O, G' }
- ; Development Value: E_ALL8 C8 T- n3 ^- h
- ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
! i4 D$ o+ [* P) g2 N( L
5 \8 S& D! ^1 G" @- |- ; html_errors
" N# n1 b( t) d6 H - ; Default Value: On
; h& }, A% {0 V4 [2 I& Z - ; Development Value: On
2 u& Z" c6 R+ e5 C - ; Production value: On* ^% q9 c# j3 A- t$ k R
- ( M! L3 z5 ~& H
- ; log_errors6 {' A7 v q2 m" }$ ], T
- ; Default Value: Off: C; w$ `" S/ Z9 R$ u1 t$ [
- ; Development Value: On$ c; P1 l& N4 }$ O0 a- }
- ; Production Value: On
+ m& M/ m4 q- i! D" z% O
( G, y* M5 u2 D7 s4 J/ |: a- ; max_input_time
' C. J7 A; A% o - ; Default Value: -1 (Unlimited)5 ~/ ]# R( A8 v7 L. u+ a
- ; Development Value: 60 (60 seconds), I0 B' w" ^+ |' p! K5 b
- ; Production Value: 60 (60 seconds)
% D( V4 \8 G. i5 D' ] - $ s7 j+ n7 ?- E' [# t k
- ; output_buffering6 G* O! h5 g8 x/ o" n4 W
- ; Default Value: Off! d# m3 g& B* a8 `
- ; Development Value: 4096
3 Z: c) e+ y u" m3 c- ] - ; Production Value: 40964 @9 G5 J% r/ Z& w7 z7 r# { Z: G
- . [5 @5 Z1 i1 n0 D& H( J/ r" R
- ; register_argc_argv$ X0 {# ^5 R% D4 c
- ; Default Value: On- J! k }* o3 i! ?* O# M; y# I* U
- ; Development Value: Off
' H/ u4 m: Z" e5 r, D9 `2 ^ - ; Production Value: Off
2 _7 q3 w' B2 Y; T2 P
1 Q/ V9 ]% t' ~+ {7 b! P- ; request_order
# {6 \$ l# C p+ v - ; Default Value: None
" U1 e$ `; Y/ {8 E9 W" D - ; Development Value: "GP"; v" s# R8 Z' y; o3 t' b( S" c L
- ; Production Value: "GP"
; X" y% m' E2 l7 v6 a - B3 n: J/ i1 {8 r. l+ ~8 Y
- ; session.gc_divisor
$ G8 r" h1 E! a+ w6 ] - ; Default Value: 100
; ~! Y0 D( R# A9 I, q% _$ O - ; Development Value: 1000
" q- Q8 w- L) O. ]0 T: a - ; Production Value: 1000
* c4 D/ _: f0 W1 r/ `) G% h: G! k
4 }( R. ]8 p% g' ]' S- ; session.hash_bits_per_character
6 m* f' y5 E; m$ s% x1 M - ; Default Value: 4
+ r0 I9 d }6 ~ - ; Development Value: 55 o& H7 o- j- Z' ]% L# S
- ; Production Value: 58 b4 ?7 }1 l/ P! {: ]# Q# C3 |
- 9 g N; O% `5 c4 u# H
- ; short_open_tag
1 F8 X& s9 d% b; l: Y- W - ; Default Value: On
3 ^& V) J: x8 d- |$ E6 } - ; Development Value: Off2 [0 V+ }: y1 `( n7 g
- ; Production Value: Off
4 P5 m0 Y7 i' Q$ V Q - ( @' M: f7 v% R: O! Z
- ; track_errors* c& V$ s) V; X" A+ C: R
- ; Default Value: Off
8 ]* |. r# W$ b: m' A* L - ; Development Value: On3 ^% g" ]- N# a+ t1 ]2 ?/ B: D
- ; Production Value: Off: n0 m6 C, W) R2 J5 h
# ], p4 ?/ _! ^0 F5 E# _3 K0 D- ; url_rewriter.tags
3 B0 U/ c2 t! a' Q: w0 y0 T0 w6 u - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
$ d. K3 }# _2 l3 P5 }& }0 m8 ~ - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"9 E' [6 N" F/ `. Y8 l
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry") V! j7 G& W" T0 _# a; j$ h6 _
" i" Z+ c3 b6 u- ; variables_order
x# H' Q0 p% j, x - ; Default Value: "EGPCS"- d4 f: N. q( _$ x
- ; Development Value: "GPCS"2 {6 R& [7 j$ A9 u: c5 `( r" l: Y
- ; Production Value: "GPCS"
. L, E1 |6 q: _1 Z
T* ~' @) [, X1 Z- ;;;;;;;;;;;;;;;;;;;;$ q- _; t+ b! M S" w
- ; php.ini Options ;
1 n% K6 [+ h" K4 h$ D- d4 V - ;;;;;;;;;;;;;;;;;;;;
# i: e; u% `% _. Q - ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"( @ v9 `2 E9 H- r3 F0 a& p
- ;user_ini.filename = ".user.ini"
9 K, G% {' U' i( l( S$ i
6 l: N' j) s* Z1 J( X; H9 k9 t8 v- ; To disable this feature set this option to empty value& ]3 |- H, I6 `6 j- `
- ;user_ini.filename =
' [& E8 H6 v: M |* ^ - : {8 } y5 ~2 K; t
- ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)* p3 {! B/ Z+ p& g
- ;user_ini.cache_ttl = 3007 @2 m2 C' b- M/ X7 f# M: B
- * I. Q# X$ \* F. \
- ;;;;;;;;;;;;;;;;;;;;
- ~- j& F$ f" L1 g - ; Language Options ;7 g8 ?0 I, D2 [( d% t
- ;;;;;;;;;;;;;;;;;;;;2 p$ Z0 X) c) H O
) u& k& Z7 D. P; o3 j- W- ; Enable the PHP scripting language engine under Apache.
( [+ l6 j! s. [# ^! L - ; http://php.net/engine
5 p3 b2 `1 }( W& X, B, z) O! L3 {9 ?! B - engine = On+ m; Q) g& I1 g: E) W
' T8 a2 [% D; a, v" a5 g: j- ; This directive determines whether or not PHP will recognize code between1 N6 J, n7 w+ {! \, {
- ; <? and ?> tags as PHP source which should be processed as such. It is
2 v( P) a$ `4 j3 x8 o) f8 _ - ; generally recommended that <?php and ?> should be used and that this feature, X7 O- j$ `+ j/ ~- R( G
- ; should be disabled, as enabling it may result in issues when generating XML
3 |7 T/ ?6 [3 |9 o s9 ~ - ; documents, however this remains supported for backward compatibility reasons.
3 p9 m& N* k" V. A# | - ; Note that this directive does not control the <?= shorthand tag, which can be V+ x D5 K0 {8 H, R4 f
- ; used regardless of this directive.+ E) B# A. w9 k0 F+ l$ o( h
- ; Default Value: On8 Q8 p, s8 h* A: x6 a( K
- ; Development Value: Off; \/ Q5 i M1 _/ ^8 P# }& m7 f
- ; Production Value: Off
% p# c* x: e' y% L# m - ; http://php.net/short-open-tag
) v+ ]' @$ p" L4 u1 q+ }, q - short_open_tag = On2 u% `$ H: ~' A' B
- : u% e, E% [; O" d3 B
- ; Allow ASP-style <% %> tags. J! c c1 }) d4 k$ I
- ; http://php.net/asp-tags
$ y+ Y- `6 n' I+ y - asp_tags = Off
4 K+ }$ Y; l( t# M7 @3 D8 a' R - & K# `4 w& z Z& P; e) D! \4 Z5 n
- ; The number of significant digits displayed in floating point numbers.& E; H+ m) A- b# k
- ; http://php.net/precision# L4 O8 M- w i) g" f+ T2 i1 D
- precision = 14- h$ ~$ @ [1 a) u* n2 y# X; I
- 8 ^& X$ G1 x$ A1 \8 |# r$ R2 m+ ^
- ; Output buffering is a mechanism for controlling how much output data
: F7 |. ^2 F! u8 L$ d) N. P - ; (excluding headers and cookies) PHP should keep internally before pushing that% K! }' Q. [# T! I/ u( H/ n) J
- ; data to the client. If your application's output exceeds this setting, PHP0 a1 |6 E9 M5 c9 G) R6 L
- ; will send that data in chunks of roughly the size you specify.
6 A+ B* D$ k9 Q0 a) q" W }6 z - ; Turning on this setting and managing its maximum buffer size can yield some% q- L1 ]8 Q, j6 S
- ; interesting side-effects depending on your application and web server.
' ~& F/ p0 r6 T7 w. q - ; You may be able to send headers and cookies after you've already sent output; z$ |- m/ O7 }$ @" D8 M
- ; through print or echo. You also may see performance benefits if your server is% H9 J2 B" u! y( L, d" d* ?/ o; n3 |
- ; emitting less packets due to buffered output versus PHP streaming the output
4 x4 v3 c1 H- Q% L - ; as it gets it. On production servers, 4096 bytes is a good setting for performance
% Y: }% v2 @! w& m9 P/ Y% I/ ? - ; reasons.- i# N/ q* k2 K. @
- ; Note: Output buffering can also be controlled via Output Buffering Control) _) b( M; [% d# F* @8 E
- ; functions.
1 G6 F5 T+ T1 j, e8 K0 Z3 \. u - ; Possible Values:
2 A+ ^6 l6 v! a/ t6 e - ; On = Enabled and buffer is unlimited. (Use with caution)8 X, K4 l, H4 H3 M/ C
- ; Off = Disabled8 a5 U+ y+ G8 ?$ P& M
- ; Integer = Enables the buffer and sets its maximum size in bytes.
8 m! N3 O; X1 w8 \. B - ; Note: This directive is hardcoded to Off for the CLI SAPI [$ l& `) n: @3 ]3 d2 O
- ; Default Value: Off+ j% B. `8 J2 e. e# C9 ]' L
- ; Development Value: 4096
' M! [: y. y3 U; X' E0 X - ; Production Value: 4096' f8 d6 ]0 W6 a. p1 `9 p1 Z l
- ; http://php.net/output-buffering
3 N$ d3 _3 b3 U. U6 f - output_buffering = 4096 j4 J W6 b7 H3 K: B: J7 \! n
1 ]+ F1 b; Q, k. Q, f- ; You can redirect all of the output of your scripts to a function. For
- l- g G% h* R: e" s6 c r) G - ; example, if you set output_handler to "mb_output_handler", character5 R" [) K" {. j/ {9 Z2 E/ v o. h
- ; encoding will be transparently converted to the specified encoding.7 I! l8 x. }( N2 w
- ; Setting any output handler automatically turns on output buffering.8 I6 z$ S5 h( u
- ; Note: People who wrote portable scripts should not depend on this ini
# }2 {) @' v" Y$ b- F$ ` - ; directive. Instead, explicitly set the output handler using ob_start().
0 Y8 h+ G! P0 g1 B! W% d+ f - ; Using this ini directive may cause problems unless you know what script
0 V5 e9 `# Q/ U4 n - ; is doing. o2 v- i5 f5 i( {9 a. `" Q6 Q
- ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
3 C8 Q4 n' a- ]$ y* L# |3 y. z - ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
& z! ~, `) N8 ` - ; Note: output_handler must be empty if this is set 'On' !!!!3 X% q; P( p4 d( s9 l
- ; Instead you must use zlib.output_handler.
! j) w. ]8 n6 \! L0 E0 c - ; http://php.net/output-handler
. x3 y3 e' @: W - ;output_handler =- D! ^) |( f T, i: l" u
. z: l; q0 j. ]+ t' T- ; Transparent output compression using the zlib library) i/ @- e& z3 x$ H7 V9 a7 l: w
- ; Valid values for this option are 'off', 'on', or a specific buffer size6 c% ?' |% S2 T( Z$ B2 i
- ; to be used for compression (default is 4KB)
* z+ h. Z5 N, p" g; @! ]4 W: D+ { - ; Note: Resulting chunk size may vary due to nature of compression. PHP
3 C( H4 W" p* F: K0 B7 M, t - ; outputs chunks that are few hundreds bytes each as a result of
8 l, v" E9 x$ r" x4 S$ ~ - ; compression. If you prefer a larger chunk size for better
. j# T6 H5 t( t) P9 k* Z5 U* ~3 D - ; performance, enable output_buffering in addition.0 s, U0 m7 m+ q% ^- |) v" q6 o
- ; Note: You need to use zlib.output_handler instead of the standard. x+ F% b9 i" m2 u- V
- ; output_handler, or otherwise the output will be corrupted. v& ~5 I* Y$ w! o( N' A- b- j
- ; http://php.net/zlib.output-compression
7 N# e' j6 S' v. N/ K - zlib.output_compression = Off
9 w) u' e6 r* z - $ h, |& Y, t( s- b3 Z
- ; http://php.net/zlib.output-compression-level5 w3 N& l9 \- C" k% Q; i; K
- ;zlib.output_compression_level = -17 Z: m: I$ a0 Q8 V$ m! j
- 0 M9 s' n7 ^( m% ~3 i
- ; You cannot specify additional output handlers if zlib.output_compression
: i6 I& x0 E8 T# c! J! d E& e - ; is activated here. This setting does the same as output_handler but in
2 |/ q2 s7 K- U$ S/ L7 J( H - ; a different order.) {( H& E9 s/ T2 C; N
- ; http://php.net/zlib.output-handler: A7 A: l1 x+ W* y" o V; G7 X9 |
- ;zlib.output_handler =
+ p u: p/ `4 T- a T# | - 6 Z/ X! G J, }1 R3 g
- ; Implicit flush tells PHP to tell the output layer to flush itself7 T' b7 g( e5 q; L7 O
- ; automatically after every output block. This is equivalent to calling the! Q: r. f/ N& l: i) M4 S
- ; PHP function flush() after each and every call to print() or echo() and each
9 L+ Z1 P9 g" ^9 \8 ]* _0 n% L5 N - ; and every HTML block. Turning this option on has serious performance' f: N+ w6 U, p2 M9 O7 w
- ; implications and is generally recommended for debugging purposes only.- _+ m4 x5 V/ I a, h- G
- ; http://php.net/implicit-flush
5 ]. L3 I8 n0 X: j8 }# C - ; Note: This directive is hardcoded to On for the CLI SAPI
& J* V% c$ G7 h) Q0 p$ Z - implicit_flush = Off
8 |) z1 v- P9 c) H* ]) z6 d* w9 E - 5 T$ A( I) ]. E9 a
- ; The unserialize callback function will be called (with the undefined class': N1 t# q, h9 q: ]" E' s
- ; name as parameter), if the unserializer finds an undefined class: d3 {( e w) f1 L5 e
- ; which should be instantiated. A warning appears if the specified function is! v0 K4 q- X+ I( b E: _
- ; not defined, or if the function doesn't include/implement the missing class.0 n* K- |9 B9 v+ R* O0 T" O, c# Y
- ; So only set this entry, if you really want to implement such a+ U" A/ a% M; d C
- ; callback-function.
2 A6 A! Z: Z f x9 K# r9 I/ i- H - unserialize_callback_func =
! Z2 D3 R z( |) T) Q4 u- _1 Q* S
1 Z( M3 q+ n; o8 l% S. R1 x3 [- ; When floats & doubles are serialized store serialize_precision significant
: ^6 y" [2 U; r) q' x6 I - ; digits after the floating point. The default value ensures that when floats
. }* z) t/ \8 | - ; are decoded with unserialize, the data will remain the same.4 o$ {# V$ I: s3 K9 P$ x$ Q
- serialize_precision = 17
8 t3 i' E% Z) B7 e
$ \' N+ Z# h. Z3 `' z, _- ; open_basedir, if set, limits all file operations to the defined directory6 }( R+ l5 b9 l. b0 D3 c0 }5 U3 t
- ; and below. This directive makes most sense if used in a per-directory- z [6 [; I0 v- f4 p3 P% f
- ; or per-virtualhost web server configuration file.
( \: W! P! R4 Z8 G3 u# q* E - ; http://php.net/open-basedir
) |" b2 H1 y* x1 w0 c1 g7 o# X - ;open_basedir =
4 [7 S% b( e$ R8 p5 K' `
& z) h1 P/ ] x2 l I; k- ; This directive allows you to disable certain functions for security reasons.
) f- |# {3 p8 t! `: {, G; ?5 C) d; R- ?: k - ; It receives a comma-delimited list of function names.* s& r* f$ B: p' ], y
- ; http://php.net/disable-functions' b$ x* ?' c) T8 Y& f/ {
- disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
& [4 h& i8 e6 U* M' v, d6 t, d
$ F- B! X. c. T3 T8 R9 A- ; This directive allows you to disable certain classes for security reasons.
' K- G+ V8 z2 v. v, p6 z2 z" O z - ; It receives a comma-delimited list of class names.& l" @8 I s) U) I8 p& `) A: M! i
- ; http://php.net/disable-classes
d0 _4 M9 x/ d# Z. c: A - disable_classes =* j4 I. ^: O/ s/ n
0 o& f8 c% t& t7 Y- h- ; Colors for Syntax Highlighting mode. Anything that's acceptable in: _3 }8 `- Z% u8 l% j
- ; <span style="color: ???????"> would work.
, b, K% I- I+ b- ~ - ; http://php.net/syntax-highlighting
0 d) a$ S+ c" z2 d) M - ;highlight.string = #DD0000" W# M. j6 X K
- ;highlight.comment = #FF9900 \1 U8 q9 V$ j; ^. V
- ;highlight.keyword = #007700; _& Q( |. S# e( ]( [
- ;highlight.default = #0000BB3 a2 }) H: G& r5 y* W
- ;highlight.html = #000000
( x* g$ f2 y& g' r$ L6 P
" W! D, B2 X% ]% n F/ R+ X; q6 Q- ; If enabled, the request will be allowed to complete even if the user aborts
]% q7 F+ i+ x$ N - ; the request. Consider enabling it if executing long requests, which may end up
( R1 `' ^# a" R' \ - ; being interrupted by the user or a browser timing out. PHP's default behavior
' z$ \9 C s) M2 D - ; is to disable this feature.
1 ^, A; L' M2 S: X, A* D* v - ; http://php.net/ignore-user-abort
' L S; m! q/ z6 N/ X- D3 v$ Z - ;ignore_user_abort = On
* E4 j$ h. \5 f
+ z) L% y" M4 B: a4 H9 z: C% l- ; Determines the size of the realpath cache to be used by PHP. This value should+ Z' U. p0 b7 x4 p, _
- ; be increased on systems where PHP opens many files to reflect the quantity of6 M+ `" c$ F Y8 X( Z6 P
- ; the file operations performed.
2 K% o* B8 N: M& s2 T' Q! b - ; http://php.net/realpath-cache-size$ q1 M; D' F* a3 ^
- ;realpath_cache_size = 16k: G8 B$ a% B' j+ p7 Y+ q
- # N/ |7 I- N6 Y* P- O
- ; Duration of time, in seconds for which to cache realpath information for a given1 T2 r, H, v9 b/ u c8 H
- ; file or directory. For systems with rarely changing files, consider increasing this8 ^+ _4 X' ?* l5 l n# r" ]; m6 J) _
- ; value.7 h$ q) H6 ?" h
- ; http://php.net/realpath-cache-ttl
, E- v7 A' O( n( c; [8 S - ;realpath_cache_ttl = 120% I3 J# L( u. I# m% d) d) {
- + |7 z; V7 Y8 W' f) c9 F
- ; Enables or disables the circular reference collector.
1 p) \0 S$ n- {& H$ F - ; http://php.net/zend.enable-gc
0 ~' B: S' K: a/ U {& \& c( y - zend.enable_gc = On
8 t2 o2 B! C0 J" I - 7 a/ t5 s9 M& }: G7 \! s6 N
- ; If enabled, scripts may be written in encodings that are incompatible with2 L/ e" x4 `* @
- ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such/ b7 T7 n2 C' K' W) ~- P2 J
- ; encodings. To use this feature, mbstring extension must be enabled.
, \* o+ l1 K) J# [/ g1 Z2 W. n4 t/ Q - ; Default: Off& q* P* I- v1 w' G/ I
- ;zend.multibyte = Off
$ C* M, U6 `9 Q" C! w6 A' U% C
! b( H/ O1 l" Y8 S# X- ; Allows to set the default encoding for the scripts. This value will be used: ?! a: A8 }- f- S2 S& b: k
- ; unless "declare(encoding=...)" directive appears at the top of the script." m4 M: G0 a4 H3 i2 R, f
- ; Only affects if zend.multibyte is set.7 F8 b! L7 G4 l
- ; Default: ""
2 x* q! ? h+ M" X4 @ T - ;zend.script_encoding =7 c3 K) d( w: K- [
7 g- K4 n/ z6 f7 Y' X% U& @, Z( y7 X- ;;;;;;;;;;;;;;;;;; u0 n# a* d1 `% q* W+ ?
- ; Miscellaneous ;% v+ T4 ]6 Q, K) H
- ;;;;;;;;;;;;;;;;;: |2 d& h3 w" k% u7 b% k, @- F
* V) o' z2 B- c- ; Decides whether PHP may expose the fact that it is installed on the server' I5 @ \& s9 j3 g3 k
- ; (e.g. by adding its signature to the Web server header). It is no security0 v T0 }5 X/ Q, w5 l8 N: F
- ; threat in any way, but it makes it possible to determine whether you use PHP
* |, r5 K g; k j+ K4 k% s! u - ; on your server or not., W7 m4 ^ B! F
- ; http://php.net/expose-php
; @9 r2 I3 e" C( Q$ r4 H5 J - expose_php = On8 `4 V8 r4 ~% S w3 I2 d# w
- # O- A) H1 r- \7 d7 c* _0 ?
- ;;;;;;;;;;;;;;;;;;;
# K/ O$ v. l w! X - ; Resource Limits ;
3 x0 S9 J4 ]$ @ N1 s5 @ - ;;;;;;;;;;;;;;;;;;;
$ c7 ]* \2 U* e( q - ( m! V' h, [2 a$ a/ H9 \
- ; Maximum execution time of each script, in seconds9 _0 v) `4 S, |" F
- ; http://php.net/max-execution-time- |$ i, \! j, L4 s, j m3 w
- ; Note: This directive is hardcoded to 0 for the CLI SAPI
& P0 k2 O$ m& ~# x0 b& w- C - max_execution_time = 3004 X6 g" l1 Q/ t5 |) r9 e# {* ?# h
- 8 O1 P3 t _+ Z; \* Z
- ; Maximum amount of time each script may spend parsing request data. It's a good
* B0 F6 f8 H! D4 O$ H - ; idea to limit this time on productions servers in order to eliminate unexpectedly8 \, D! u0 M: g" H
- ; long running scripts.9 I4 d/ v4 w9 S$ x9 w
- ; Note: This directive is hardcoded to -1 for the CLI SAPI8 Z* j% R8 v2 m
- ; Default Value: -1 (Unlimited)
) {; n% l/ z! x1 f& W2 @4 ` - ; Development Value: 60 (60 seconds)
" P/ ^/ @; U$ X# {; ]- u4 @ - ; Production Value: 60 (60 seconds)1 o# A: Z0 A; n( r; d& W" p9 c) c
- ; http://php.net/max-input-time; F$ _2 ~/ L3 h, x# N% y# G7 A
- max_input_time = 600 T( u* n ?# ~8 v8 T
" ]0 P, k. H! p9 q3 c- ; Maximum input variable nesting level1 t, v7 S2 o( S& l% Q$ Y
- ; http://php.net/max-input-nesting-level
; u3 Z u' V: x: |* v9 o! u - ;max_input_nesting_level = 64
% x- j a/ w8 M# R& h' P
* `% [6 J8 l# c( f% R' ?: {- ; How many GET/POST/COOKIE input variables may be accepted
/ E: R" C* o) ^' Y, [- S - ; max_input_vars = 1000$ K2 o* e& h1 F6 p; K# }8 [* q
- 0 E# `+ o- L9 L5 b: U* ^
- ; Maximum amount of memory a script may consume (128MB)
9 W q; y. i9 U- J - ; http://php.net/memory-limit. L" K3 r0 |& Y$ b% }
- memory_limit = 128M
7 i# x N# X* a
2 y/ X3 I0 G( d" M8 |1 L- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( J5 d$ b% R# d0 t. r% j - ; Error handling and logging ;3 A% W% Z% N a; U
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9 o7 w' C# N/ K: _
- $ _) Q4 F( K* t! n. Q2 s, c
- ; This directive informs PHP of which errors, warnings and notices you would like9 F; C6 z1 U" m; t: H9 R5 X+ V( F' u5 T0 }
- ; it to take action for. The recommended way of setting values for this: D$ q1 y. \' @0 w( M6 p0 y
- ; directive is through the use of the error level constants and bitwise9 |9 B7 ` O3 p T: L% ?6 a
- ; operators. The error level constants are below here for convenience as well as4 \" x9 s Q' y8 \0 o5 ~
- ; some common settings and their meanings.
2 U: y4 e1 O, ~ - ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
% ]$ h* d* X( d" x5 `- D' t6 l3 @ - ; those related to E_NOTICE and E_STRICT, which together cover best practices and
/ H4 l; Z9 z0 S - ; recommended coding standards in PHP. For performance reasons, this is the- L% a# e! P: o6 D: p2 |% o
- ; recommend error reporting setting. Your production server shouldn't be wasting( J9 K2 Y3 n# l+ W" w8 ]
- ; resources complaining about best practices and coding standards. That's what. D, V& l b& m5 @
- ; development servers and development settings are for.
" M5 Z( }( U% x - ; Note: The php.ini-development file has this setting as E_ALL. This- d9 A4 @) j7 L \. t& q, n/ {3 k! G8 I
- ; means it pretty much reports everything which is exactly what you want during( C$ {' d! d6 w. r* }; {5 B
- ; development and early testing.6 K+ I' ~% s9 P+ F$ S3 Z) u
- ;
" S$ A6 Q9 L! Y+ z/ N( X - ; Error Level Constants:0 ^, d8 D# a, [0 L% D) p3 k
- ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)7 b' D' [7 e- k( d8 j) t; z; Y
- ; E_ERROR - fatal run-time errors
3 l5 v" ~- X1 w+ c - ; E_RECOVERABLE_ERROR - almost fatal run-time errors2 R) `& I9 N2 b8 p
- ; E_WARNING - run-time warnings (non-fatal errors)0 ?, o, d9 R0 ^2 r D
- ; E_PARSE - compile-time parse errors$ w! f5 T. ^) s* i( v9 Q
- ; E_NOTICE - run-time notices (these are warnings which often result
& p/ M8 @+ V- D6 a - ; from a bug in your code, but it's possible that it was
, `; |* w: ]0 B5 i - ; intentional (e.g., using an uninitialized variable and- z; {- I$ z$ G8 T# ]& x! o: q
- ; relying on the fact it is automatically initialized to an
9 |! B4 K5 n3 I% B4 b5 F - ; empty string)
2 k- _- F& S# |2 Q0 w - ; E_STRICT - run-time notices, enable to have PHP suggest changes
! {* T* E3 |0 z, t9 w. K* B T0 B - ; to your code which will ensure the best interoperability
. _. ~( I8 j# U. a+ F5 p w- i( o - ; and forward compatibility of your code: V7 S: \; @. h% N. F1 _; u+ O
- ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup h! \7 r, \* r; O3 A, |( R5 Q
- ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
( Q7 ^9 H0 e1 ?" x' c - ; initial startup# D3 ]+ F5 K7 V J0 k" c
- ; E_COMPILE_ERROR - fatal compile-time errors
& A0 O. u" n7 B# o6 j2 o - ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)' ^4 E' d3 g' g+ I
- ; E_USER_ERROR - user-generated error message
9 j! E5 n( ~8 [+ f: `/ S - ; E_USER_WARNING - user-generated warning message
0 J+ f+ h3 `; X - ; E_USER_NOTICE - user-generated notice message$ g' p# H2 g0 a Y& n, s
- ; E_DEPRECATED - warn about code that will not work in future versions: K. k$ K! C3 o, G9 k% U+ V; p6 b
- ; of PHP
" W: {0 Z5 x, {& o: u - ; E_USER_DEPRECATED - user-generated deprecation warnings0 t* J4 y; A. O
- ;9 X2 U2 |6 K9 n1 f0 N) o
- ; Common Values:
. V& b2 B7 T9 b; o& T- J: d# w$ ^ - ; E_ALL (Show all errors, warnings and notices including coding standards.)
. x6 u+ z! h2 o L" I" @, q# i - ; E_ALL & ~E_NOTICE (Show all errors, except for notices)$ \$ N U2 H0 H0 z! r
- ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)3 z3 \4 d) z: x9 d% p5 e1 o
- ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)8 i( F4 t, y7 [1 X/ Q; l
- ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED" l( {" ?3 p& w
- ; Development Value: E_ALL
' h: c* S R7 N4 D: U; A - ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
( P7 D* q$ a. b" ~. g, X - ; http://php.net/error-reporting. w% {5 c5 W& N' u
- error_reporting = E_ALL & ~E_NOTICE
( W5 t& ~% F2 D6 |/ l
P* K" J: q* f! U- ; This directive controls whether or not and where PHP will output errors,0 G) _/ P. O( c0 P
- ; notices and warnings too. Error output is very useful during development, but/ }1 C1 B1 @5 T1 V% i U. i) ?+ e
- ; it could be very dangerous in production environments. Depending on the code
& n5 s7 L# f+ L+ k( z% K: J' N - ; which is triggering the error, sensitive information could potentially leak4 y% ~# n% i4 v8 Z/ z$ C1 n# j
- ; out of your application such as database usernames and passwords or worse.0 i0 u+ _5 {% j2 T
- ; For production environments, we recommend logging errors rather than* u( K1 d. I. k5 r+ _+ d
- ; sending them to STDOUT.3 X$ d# }4 j; H! ]& R
- ; Possible Values:; d% A9 i7 P# k+ g8 V/ E
- ; Off = Do not display any errors
- N! I& k4 W7 }/ e# ~ - ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
! p+ f$ O. G9 e/ @# _. L% h - ; On or stdout = Display errors to STDOUT
/ }+ o$ s* R/ Z! I, E; r% W - ; Default Value: On9 q8 G `1 K! f) n/ k9 _
- ; Development Value: On
; t9 _! s, W/ X) Q) ~- B: \) W - ; Production Value: Off* X6 I( s5 ~4 G! G/ Z; ]0 d) N6 E
- ; http://php.net/display-errors
3 l, e( l3 d' \4 Y+ p - display_errors = On! p- n0 u$ z4 b4 r
3 S0 l- Q/ Q: O0 O& ~- ; The display of errors which occur during PHP's startup sequence are handled3 `2 \* u! R2 N$ t& H k
- ; separately from display_errors. PHP's default behavior is to suppress those
' A# Q0 c" q f/ l% b - ; errors from clients. Turning the display of startup errors on can be useful in1 j& Q0 h! H- X' E. M7 [1 R! e* L5 `
- ; debugging configuration problems. We strongly recommend you
2 N8 P& X4 o7 \, p" B. e - ; set this to 'off' for production servers.& i- I( Q+ w- G8 C+ r
- ; Default Value: Off5 B2 y9 W! b5 [! F
- ; Development Value: On2 `9 j# v3 {$ @! v, K, y- c
- ; Production Value: Off# Y; _$ J! x( [$ A. D$ e: \1 J
- ; http://php.net/display-startup-errors8 a% |% {& _2 S; D( z. R
- display_startup_errors = Off
! u$ J& H9 A( W7 Q* F7 h( g - 7 l |0 a( I! W3 y& Z, `# K$ E* e
- ; Besides displaying errors, PHP can also log errors to locations such as a
. G r* }) _+ C% [ - ; server-specific log, STDERR, or a location specified by the error_log
2 W. p _9 T( i2 D( L - ; directive found below. While errors should not be displayed on productions
! M. C) B/ X1 k F - ; servers they should still be monitored and logging is a great way to do that.
8 T6 r+ E6 z8 | - ; Default Value: Off
0 U: D- d; y/ T4 U7 S - ; Development Value: On
4 Y: ?4 T0 h9 Y; r" k - ; Production Value: On
- }! S/ T1 s0 n; ?; h+ d3 D) l - ; http://php.net/log-errors; W: ~+ Z( \2 p
- log_errors = On, B& e! g$ ^: _/ m& [
- 9 K, k2 S5 L$ q! e
- ; Set maximum length of log_errors. In error_log information about the source is5 w3 G( ]0 v: J1 _. ~
- ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
' i/ k9 ^( ], b. Q0 a9 d - ; http://php.net/log-errors-max-len
2 f7 w$ n' y6 r/ f - log_errors_max_len = 1024& M; B6 x9 w& j; T9 ~' Q! x
5 X8 a; w% @! N- ; Do not log repeated messages. Repeated errors must occur in same file on same
. n l8 F8 r3 D3 N! u - ; line unless ignore_repeated_source is set true.
# I1 m8 O! O3 z& M3 u& `/ G) C - ; http://php.net/ignore-repeated-errors
, W; X ?8 H( e2 I% O - ignore_repeated_errors = Off: s+ Y+ K+ ]) M$ m' P2 U
$ `- M2 W6 Y3 |7 _5 ~6 A- ; Ignore source of message when ignoring repeated messages. When this setting
$ d9 D( u' F& F' y - ; is On you will not log errors with repeated messages from different files or
; N4 [/ b& s( M- | - ; source lines.! e+ u+ k {% |$ N2 y$ G
- ; http://php.net/ignore-repeated-source
! ]" T6 t- o, X5 Q0 w4 Y - ignore_repeated_source = Off
& ~+ Y- J+ V. t& Q5 h* V$ i; L - " Y1 z1 M# b: P0 E2 d6 _$ V
- ; If this parameter is set to Off, then memory leaks will not be shown (on
1 L# \. n z- \4 {& L - ; stdout or in the log). This has only effect in a debug compile, and if
2 G) g" L7 x/ M' v! \ - ; error reporting includes E_WARNING in the allowed list
1 @1 n& Q7 z( o U i$ ]! x - ; http://php.net/report-memleaks
$ o# S/ a1 m5 ?6 Y2 O: G5 n; L - report_memleaks = On; s/ j* c' W( p6 {9 ~7 [
7 ~4 C0 F6 \2 T$ ]" l- ; This setting is on by default.9 V, B" n7 H8 O2 }1 h
- ;report_zend_debug = 0$ I. Q; N# S, l3 ?: r3 h
+ N% U& Q& O2 E* v9 O, O$ v4 A9 O- ; Store the last error/warning message in $php_errormsg (boolean). Setting this value
$ u! i3 z4 q0 @; l - ; to On can assist in debugging and is appropriate for development servers. It should
; e: r S% W4 f; ]4 m1 Q0 j - ; however be disabled on production servers.
X) ~* _- B# K- g" t1 [$ Q - ; Default Value: Off
! u6 z; c. s2 M, M# P/ ~, p - ; Development Value: On
4 ~! W6 G! w- H* V1 C5 C5 m - ; Production Value: Off
; z7 l& b% |# O0 e' D, f# v7 D - ; http://php.net/track-errors
# l. T3 x: f5 c- D - track_errors = Off
M# p d% K! U. G6 D
5 ~0 p/ ?& f0 Q4 O( I- ; Turn off normal error reporting and emit XML-RPC error XML+ q) {, `/ |. p' U2 k# x9 ?. \
- ; http://php.net/xmlrpc-errors
, D6 T- i {7 y* W8 ]6 s* I - ;xmlrpc_errors = 0% J( ~+ p( I8 v7 I
- # w6 @% v3 U0 \2 T, K
- ; An XML-RPC faultCode
4 O1 h* {4 [2 z1 j - ;xmlrpc_error_number = 0, y0 s A' I0 _. Q( `# b; w
- ( x6 m' c9 @7 b2 M/ M
- ; When PHP displays or logs an error, it has the capability of formatting the9 ]7 g$ v) u; a4 ?, q
- ; error message as HTML for easier reading. This directive controls whether
; a" q2 j' A* _* a* @ - ; the error message is formatted as HTML or not.& l+ Y* k' |/ P7 i
- ; Note: This directive is hardcoded to Off for the CLI SAPI
' N0 N, |9 N7 N9 Y+ m8 ^* ^4 Z1 P7 s - ; Default Value: On
2 N, _+ A! Q. A6 e - ; Development Value: On, K+ U/ `+ m' b: \) ]
- ; Production value: On \& M" B2 y$ Y: }2 k4 q' g
- ; http://php.net/html-errors
4 W7 s1 w6 M% Z - html_errors = On# ~" l6 n+ c# y8 M! j% a
6 h, ?; e$ E! @! x* g4 T# T. Q- ; If html_errors is set to On *and* docref_root is not empty, then PHP6 Z; e4 s; y) I
- ; produces clickable error messages that direct to a page describing the error# v- {2 v% X1 N- F0 w& e/ F% ^7 Y( a, H
- ; or function causing the error in detail. {% R+ R7 j3 ^" Q$ ]) N
- ; You can download a copy of the PHP manual from http://php.net/docs
0 X6 M! Y {( D$ v8 o - ; and change docref_root to the base URL of your local copy including the0 B, o; C/ ?" L% A
- ; leading '/'. You must also specify the file extension being used including [* p$ W. O8 S0 ]) |( E p
- ; the dot. PHP's default behavior is to leave these settings empty, in which6 K+ ~) l: g' g& i8 P( r) x8 F5 Z
- ; case no links to documentation are generated.
% y7 c+ c5 y3 x, G" H# s Y6 D7 n - ; Note: Never use this feature for production boxes.
9 L/ A1 H) d% o9 M3 n - ; http://php.net/docref-root
( g4 K' d1 O" t7 \1 { - ; Examples
; t' h/ [$ U* v0 ?, l" D - ;docref_root = "/phpmanual/"
* i8 `- r9 z; f+ J
* H/ ^/ | {5 \3 O+ ]- ; http://php.net/docref-ext
' m. t9 X9 c' P) r - ;docref_ext = .html& t6 |) H9 d6 o& L
) c1 s2 I, q, c$ n- ; String to output before an error message. PHP's default behavior is to leave
0 K2 i' U( @# J2 Q& s, r - ; this setting blank.3 |9 Q8 D1 `5 w
- ; http://php.net/error-prepend-string# Y) _8 Z5 S2 ^" E: |
- ; Example:
2 l/ z) g0 k; y- M0 X - ;error_prepend_string = "<span style='color: #ff0000'>"
# ?& k( S( e/ r7 X; t+ W% W, |
& u) ^: w6 |" t- ; String to output after an error message. PHP's default behavior is to leave
5 x* e/ v1 j3 y% H4 i5 E* d" I7 B8 M - ; this setting blank.
6 \% \- U1 S2 V( F - ; http://php.net/error-append-string( I" `, l# b& T S' J' R. x
- ; Example:( \% s# N- ^* z% F: C2 Q
- ;error_append_string = "</span>"
5 d1 c8 Y- p- u* S* D, g
' R$ |, T6 H* _+ b c* A- w- ; Log errors to specified file. PHP's default behavior is to leave this value
4 _5 d5 c3 H: f6 C! e7 ^$ h; s - ; empty.( x+ H1 ~, _$ M* g5 K
- ; http://php.net/error-log
" e: t- D: {0 @0 a9 V. C - ; Example:
$ d0 `3 Z( _$ a" P( u - ;error_log = php_errors.log% Z' Z3 b2 c0 L* N3 G* Q
- ; Log errors to syslog (Event Log on Windows).; H2 H+ V) p& o$ W$ ?
- ;error_log = syslog
$ Z5 I6 l5 O. C5 \4 |: S - ! ?: b2 X4 Y' P
- ;windows.show_crt_warning! d$ A/ O! i6 q- M
- ; Default value: 05 ?: w; Y* E( e1 b; `% g9 K
- ; Development value: 0
! @& @0 p( z6 } - ; Production value: 0
4 E8 R3 M$ U, H. ~$ E
2 B; u; {: W5 U& M, v- ;;;;;;;;;;;;;;;;;# r+ M" C' S& v
- ; Data Handling ;
' m2 P0 j# ?# T9 e - ;;;;;;;;;;;;;;;;;/ R" @; l' d3 ~; L; B# o
6 [$ ?0 }; c: T" x2 _3 w" ^- ; The separator used in PHP generated URLs to separate arguments.
$ {7 W- [" G% h! v - ; PHP's default setting is "&".1 _$ N0 S5 s3 c
- ; http://php.net/arg-separator.output& I, ~. T2 q# y
- ; Example:( t9 V; e, ^! P
- ;arg_separator.output = "&"
% E) y, c/ I; U" C$ g3 u4 j+ j - * V; m' R; [' S0 ?
- ; List of separator(s) used by PHP to parse input URLs into variables.3 `+ y+ j1 @% B' ^* s! j+ i% r, S
- ; PHP's default setting is "&".5 ]0 p4 I, v7 a$ ~: d7 s1 ?
- ; NOTE: Every character in this directive is considered as separator!: \% f0 o- [1 B5 i0 U- q( }
- ; http://php.net/arg-separator.input
2 S$ p- {# q% @ - ; Example:
' o1 b. b, s) m7 } - ;arg_separator.input = ";&"
% o) z6 d5 @1 P+ w
^* J0 s1 Q; o( L- ; This directive determines which super global arrays are registered when PHP7 ?4 s; m. E9 |4 t0 B9 @0 L
- ; starts up. G,P,C,E & S are abbreviations for the following respective super
+ B$ o/ [, D# c2 M5 b - ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty' @7 V" T2 _+ d9 v6 A- W8 Y2 I
- ; paid for the registration of these arrays and because ENV is not as commonly9 |: l# h' R) @
- ; used as the others, ENV is not recommended on productions servers. You9 m: _5 }. h; w0 T$ z
- ; can still get access to the environment variables through getenv() should you
0 f' F" N7 G: p: H - ; need to.
t4 t6 p% l. h- y - ; Default Value: "EGPCS"8 p; ~1 H0 {) ^$ d
- ; Development Value: "GPCS"0 U8 R2 i# g3 s7 \, o8 ^1 D
- ; Production Value: "GPCS";3 K" _ ~$ w3 T6 ^' a5 c9 ?* I
- ; http://php.net/variables-order2 n& a" Y+ Q0 S' O" K V
- variables_order = "GPCS". \( V* ~+ I- k9 }0 v
- , h1 {) s' y$ G, h, g
- ; This directive determines which super global data (G,P & C) should be- y T( a/ l- [& m3 I1 e6 i
- ; registered into the super global array REQUEST. If so, it also determines" p% @7 h. H* I* A
- ; the order in which that data is registered. The values for this directive
0 l8 w7 A& f: Z, S - ; are specified in the same manner as the variables_order directive,
5 S D5 }8 w. M3 U1 f - ; EXCEPT one. Leaving this value empty will cause PHP to use the value set) c. w. p% Y$ @- P' j g+ v k- c
- ; in the variables_order directive. It does not mean it will leave the super
/ T5 v4 U9 C' q* P - ; globals array REQUEST empty.: k, G S. ~' X. X7 h
- ; Default Value: None
2 J+ i' k* a& k* O* { - ; Development Value: "GP"
7 E! Z* x0 Y5 H; k" Z q4 A. I - ; Production Value: "GP"& H1 U$ C! p, k( \
- ; http://php.net/request-order
; j# S" s0 J7 J$ j3 P; M) n$ L - request_order = "GP"
; E8 R$ ^7 J7 D4 ?4 f7 i - " J/ _) A' I% @1 n
- ; This directive determines whether PHP registers $argv & $argc each time it
4 }+ I* B o* [: c - ; runs. $argv contains an array of all the arguments passed to PHP when a script
9 X- M5 L; x: p1 S - ; is invoked. $argc contains an integer representing the number of arguments
. |, X2 s1 f l4 T: p" |1 a3 ~ - ; that were passed when the script was invoked. These arrays are extremely
d) ?7 E; B D+ j - ; useful when running scripts from the command line. When this directive is7 E* w: M/ t1 ^
- ; enabled, registering these variables consumes CPU cycles and memory each time( W" A' A+ N: M
- ; a script is executed. For performance reasons, this feature should be disabled
1 H* A" }/ J1 ]. O5 T! c - ; on production servers.' U% x+ O- w0 e2 E0 e, r
- ; Note: This directive is hardcoded to On for the CLI SAPI
- i6 F$ D3 u, K - ; Default Value: On
# a4 O8 E* M# j' y - ; Development Value: Off# z3 |$ h! l! [) v K8 u
- ; Production Value: Off" c- {5 \1 d& x) z% q8 n: ?
- ; http://php.net/register-argc-argv8 T1 T. z6 x% N
- register_argc_argv = Off: O' \$ u) T a1 J+ H0 s
- ( @8 {3 e0 h) ~
- ; When enabled, the ENV, REQUEST and SERVER variables are created when they're2 g& |- k- U1 E6 ?
- ; first used (Just In Time) instead of when the script starts. If these
2 u% P. i! i! ^! t - ; variables are not used within a script, having this directive on will result
$ y# n, f1 d8 |8 o% ~1 q \$ I2 U - ; in a performance gain. The PHP directive register_argc_argv must be disabled$ [ b8 @. q7 J* Z# O3 O2 W- f
- ; for this directive to have any affect.
, z- X. {4 C7 Z7 r' k2 Q' W - ; http://php.net/auto-globals-jit8 D" N$ S% }- ^4 r. G9 [
- auto_globals_jit = On. u8 m, Y5 {5 I& n5 B# U
- / |* M+ e% h4 B
- ; Whether PHP will read the POST data.5 n# v1 C( l8 q0 P! `
- ; This option is enabled by default.+ Z8 `6 @6 }7 t% J
- ; Most likely, you won't want to disable this option globally. It causes $_POST$ Y% {! |! \+ s; J0 N! M* F/ K
- ; and $_FILES to always be empty; the only way you will be able to read the% G) b r7 V% d9 D# v( M, B
- ; POST data will be through the php://input stream wrapper. This can be useful
. Y) P3 m) W5 s# X* N - ; to proxy requests or to process the POST data in a memory efficient fashion.- [$ N* G4 g, h* I I& n- `
- ; http://php.net/enable-post-data-reading
$ f2 t5 w2 D' F0 T0 p: W: H - ;enable_post_data_reading = Off
4 M# ?, Q, J+ C2 Y2 U: n% t2 Z3 m - , y% x: H' P+ ?) G
- ; Maximum size of POST data that PHP will accept.% z& k$ _& p- j' y. I$ d& k' T7 ?
- ; Its value may be 0 to disable the limit. It is ignored if POST data reading
0 c( q# ~/ ~2 l2 k( [ - ; is disabled through enable_post_data_reading.
3 \* l7 K4 C" [/ [, P5 w - ; http://php.net/post-max-size! `7 j4 s9 C. g" b
- post_max_size = 50M
7 H* J1 X7 ] K( e8 l5 G' f8 W$ i- i) n - & n& h) _& `% H
- ; Automatically add files before PHP document.
8 K% R6 |* Z- V" M7 k4 { - ; http://php.net/auto-prepend-file0 D) O# o4 t& \. F% ]% W: C& Z
- auto_prepend_file =7 _" g; n. V: ^. a3 i+ x
- * N/ ~! A+ U, Z+ |! E2 M0 F/ I% s& z* \
- ; Automatically add files after PHP document.
; h) ?! v4 ^/ F7 w+ H- e1 H - ; http://php.net/auto-append-file+ M t8 } u. V/ \/ `
- auto_append_file =
- E7 d2 e: ]1 Q3 B. k* X$ {
0 Q* z+ o% K' y) B0 {% ^ s/ R j- ; By default, PHP will output a media type using the Content-Type header. To# a' s6 T8 q/ i$ C# O* G
- ; disable this, simply set it to be empty.
0 f, d0 a# o5 J - ;$ V3 A1 B5 A- _2 x# r) P
- ; PHP's built-in default media type is set to text/html.9 m! |$ X* I0 |/ ?5 r
- ; http://php.net/default-mimetype
4 M% a- b o0 M% H2 N. L - default_mimetype = "text/html"
3 { B, C! B; x) u. y# W$ F - - p3 Z! A' Z! g' c* T& Q
- ; PHP's default character set is set to UTF-8.
/ X8 z6 {4 Z! \, N( l w - ; http://php.net/default-charset# |+ T t# d! A( R. `& g
- default_charset = "UTF-8"5 m3 ^9 M; L3 A2 n1 G& Z9 H
: @4 ^' y. I$ T% t# v, N. N- ; PHP internal character encoding is set to empty." R g& c: v+ |" v
- ; If empty, default_charset is used.
. w% _' P \" {& O& t - ; http://php.net/internal-encoding2 c! j" A- Q4 o. Y( C; C
- ;internal_encoding =1 F; }0 s, }8 Y" o. J$ [
- 9 [* p; f3 z& K8 G6 M9 J
- ; PHP input character encoding is set to empty." D1 y1 w; u9 e3 a$ x% X
- ; If empty, default_charset is used.; M. t( W Q8 G2 z' K7 S" I
- ; http://php.net/input-encoding) r% T: g& A; t$ ^" i5 R' P J+ w
- ;input_encoding =
9 o$ W7 L4 K7 Q3 }5 L, q5 { - 4 a! O' u2 ^& L6 b) B' {' v$ }
- ; PHP output character encoding is set to empty.
! }4 v% Z& C: l6 d/ }6 m- @ - ; If empty, default_charset is used.
- J4 @( |! ^ R* m7 Y n - ; See also output_buffer./ s( Z4 r2 ~8 a- r9 u
- ; http://php.net/output-encoding
/ s9 l+ p0 \: ^4 G. L - ;output_encoding =3 W9 \8 k3 g' ~4 y, F1 F/ K
6 J' g" A; ~9 D$ Q- ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
, d ~" q4 n# l3 W - ; to disable this feature and it will be removed in a future version.% B0 s; s- }. _
- ; If post reading is disabled through enable_post_data_reading,
- j6 |! p' N' u - ; $HTTP_RAW_POST_DATA is *NOT* populated.! M+ Q) ^7 }3 ]- N7 |( B
- ; http://php.net/always-populate-raw-post-data- q( d! P/ M5 P+ \( z
- ;always_populate_raw_post_data = -1% `% B. T! d* G$ P
9 J# U* _; ]" k' t- ;;;;;;;;;;;;;;;;;;;;;;;;;
, u4 F4 [& n3 w9 x; M) C - ; Paths and Directories ;& f9 h4 |5 h! Z x- S! L5 }
- ;;;;;;;;;;;;;;;;;;;;;;;;;
+ e/ B% B+ i# ] - + ^$ I0 Z2 Z3 P0 @4 d% {4 S. r% K
- ; UNIX: "/path1:/path2"3 S& w, {0 w, k$ V) Z2 j
- ;include_path = ".:/php/includes"2 H) P# L Y4 s6 A+ t# R4 o% S: u$ A( x7 u
- ;- H/ A9 q) [- l! I
- ; Windows: "\path1;\path2"+ k0 U7 i9 {( o7 v5 x& x# W
- ;include_path = ".;c:\php\includes"
3 Z) J+ l# L( p) K - ;
/ j; ], t$ ?; [ a) Q+ E( m) X - ; PHP's default setting for include_path is ".;/path/to/php/pear"
3 S1 j- j" a$ G* g - ; http://php.net/include-path
% S, B' H5 Q, m1 C: S4 [1 `8 K - 4 A* W) X! y9 Y# Y
- ; The root of the PHP pages, used only if nonempty.
6 c, ^$ @+ K8 w/ w - ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root0 R9 }* u6 T( K
- ; if you are running php as a CGI under any web server (other than IIS)
# n: w( K6 s& ]& t# u3 ~( c% m* y - ; see documentation for security issues. The alternate is to use the
8 b4 I, ~ f, | - ; cgi.force_redirect configuration below$ @" T5 ]. G/ D3 E- o7 d7 w3 H
- ; http://php.net/doc-root
8 q( o( p% Q+ ^0 w1 q0 T; E- r - doc_root =
0 o6 _! B5 p# c8 `0 t8 Q+ d' Y7 W; y - / t: E9 V u5 s" c9 r1 i
- ; The directory under which PHP opens the script using /~username used only' _$ h: P' t4 F$ E# o3 E7 X* f
- ; if nonempty.7 V1 H/ ?6 d1 V" x( G4 j" o, l
- ; http://php.net/user-dir
]% V. G& V2 O v. [ - user_dir =( t+ }; k G$ I
- ' y: z6 Q* a' j1 T6 v0 U3 q
- ; Directory in which the loadable extensions (modules) reside.3 Q' T+ O$ Z! B g2 G
- ; http://php.net/extension-dir
& b- N5 g1 g5 g+ u9 p! L! r - ; extension_dir = "./"
4 c+ J% |" n) U# e - ; On windows:5 q" W/ {" {7 Y/ z4 q( @
- ; extension_dir = "ext". q1 }. Q/ V4 n O; v# i! m
- ) b8 ?$ B! R1 b7 W. W p9 V
- ; Directory where the temporary files should be placed.
1 C, Q6 v7 G1 y [; U, O6 \* D - ; Defaults to the system default (see sys_get_temp_dir)
- Y# K& P1 E0 v V+ _' C - ; sys_temp_dir = "/tmp", l2 Z5 w r! _6 c2 [- R
/ N/ R4 S( x C1 M4 w- ; Whether or not to enable the dl() function. The dl() function does NOT work
r$ O! I+ P2 W' L% t - ; properly in multithreaded servers, such as IIS or Zeus, and is automatically e0 n" W# ]1 c7 r! T) K- }7 S
- ; disabled on them.# T9 p2 O, r; m0 G" d$ }$ S' }: k9 g1 P
- ; http://php.net/enable-dl
! X1 q* c1 o% F- m - enable_dl = Off1 G. g4 | a/ Z3 j7 n
/ p8 M4 X0 u0 d8 J: G- ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
9 N1 v& |* B; v7 b) w - ; most web servers. Left undefined, PHP turns this on by default. You can
6 \, S6 Z7 H- F4 X! M4 j - ; turn it off here AT YOUR OWN RISK Q& R. e' U6 o
- ; **You CAN safely turn this off for IIS, in fact, you MUST.**1 [, l B+ o5 e+ ]7 o. }9 f. _
- ; http://php.net/cgi.force-redirect% k+ \ c0 N. E
- ;cgi.force_redirect = 1: t2 n: w2 L' M f: G2 I' C
- 4 W& p% M/ K) y# @& g/ @
- ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
9 l7 S) L: |2 j( F& T - ; every request. PHP's default behavior is to disable this feature.4 f9 G, `+ @- v | U
- ;cgi.nph = 16 b K" p: ^& E1 i2 I' i! x
- $ l; z2 E% Q+ Q, A4 a- M
- ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape& o! O& X. V7 d% F/ J F
- ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
% S( o% A( g- Y& Q - ; will look for to know it is OK to continue execution. Setting this variable MAY
# h. F2 u5 C% q& I5 G: k0 I& w - ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.7 H: w( ^# G y4 p+ f/ o# R+ A
- ; http://php.net/cgi.redirect-status-env. G) s3 B, }1 g, q, E
- ;cgi.redirect_status_env =
+ `: n @( r0 _# [' s
$ x+ ^# b# x* o" ^. i- ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's& I2 n, j/ n. r% ~, S* W( ?! j1 ?
- ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok' K; K9 w% Y! M$ t4 ?8 g3 k
- ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
2 p8 C6 Q/ E" i - ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting- o& I' Z5 p9 ~/ b* H
- ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
% X" i! g6 Z; L. C6 ~ - ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.2 F& ~, c* x: C( U3 |
- ; http://php.net/cgi.fix-pathinfo! n" p, b5 C) j: ]3 q
- cgi.fix_pathinfo=1' Z, v% S( q. G) E0 [, H
# K7 [# N# I; @" |+ e4 j- ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside/ G6 n. B7 ]( C- q5 m ]! V1 x1 q
- ; of the web tree and people will not be able to circumvent .htaccess security.
, X6 \1 o& _9 h - ; http://php.net/cgi.dicard-path
! b w0 G# b9 M0 ~) M) X+ s: Q, B - ;cgi.discard_path=1' ?. C: `0 `4 J( q/ a1 t3 V$ ]) t& l
1 u# n& Y; [' w* ]$ V7 \* w9 [: X- ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate0 |# }( ~- Q Y% z* L- N1 a! \( o
- ; security tokens of the calling client. This allows IIS to define the
4 s2 o/ r4 @& c$ ~ - ; security context that the request runs under. mod_fastcgi under Apache
$ s; Q* U8 S6 x$ i - ; does not currently support this feature (03/17/2002)
, e+ [: ]4 V# j) L; P# ] - ; Set to 1 if running under IIS. Default is zero.
J' B( e7 F7 n - ; http://php.net/fastcgi.impersonate6 S+ }, k5 J1 ~
- ;fastcgi.impersonate = 1
3 k+ |+ a; p2 {$ f, P6 D, z& l$ m - : G" w. `6 ?- b; r) o l0 J' j
- ; Disable logging through FastCGI connection. PHP's default behavior is to enable
$ ^* |. Z# o" V - ; this feature.7 W5 l; Y( C" L. p1 t
- ;fastcgi.logging = 0% o' N# [5 O U. v+ l0 p" Q# Q3 {) S
& @4 r- ?+ T9 W5 ^5 M: `- ; cgi.rfc2616_headers configuration option tells PHP what type of headers to
4 D% V, f5 s7 G( ] - ; use when sending HTTP response code. If set to 0, PHP sends Status: header that! N; H$ t; o2 d. e S
- ; is supported by Apache. When this option is set to 1, PHP will send1 @7 W; R9 C2 i
- ; RFC2616 compliant header.5 T: m+ c" U0 I; a$ \! z7 J7 z O
- ; Default is zero.% }8 l% [) @, j8 t$ G* j: S
- ; http://php.net/cgi.rfc2616-headers! {5 l1 a7 e2 c8 e0 @. `7 v
- ;cgi.rfc2616_headers = 0$ ?* O1 b5 G* y2 i
- ( s. k, B0 U) t& @/ k% ]9 W
- ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!
. o1 ^; r2 u3 s6 ~* S0 l - ; (shebang) at the top of the running script. This line might be needed if the. [4 k6 K. R/ c# z. N
- ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI
0 s; o1 e' W5 U! C/ Z+ [ - ; mode skips this line and ignores its content if this directive is turned on.! g9 U6 ?# N+ K( r# Q/ c
- ; http://php.net/cgi.check-shebang-line% c @9 U& s9 H" p) T
- ;cgi.check_shebang_line=1
+ a& j& q1 M1 J! N6 w - 5 Y/ X! r. d S3 T! u- I
- ;;;;;;;;;;;;;;;;
4 x, b# p# ~: J# e; b* n: ~ - ; File Uploads ;1 n2 d0 Q! r r9 z3 h
- ;;;;;;;;;;;;;;;;. t/ e. e" E! u5 [$ ~+ D" [
8 L, d( m0 ]3 m5 Y2 R+ w- ; Whether to allow HTTP file uploads.1 {- q% Q. k7 R% N% e7 K7 {7 r: b
- ; http://php.net/file-uploads
/ s ~- s' j' C! X9 o+ _9 s - file_uploads = On
, y& F) I. o7 C3 ?5 _ - / B; o5 ~: }2 E! P" H- E3 c/ e2 \
- ; Temporary directory for HTTP uploaded files (will use system default if not
- `/ W h: F! J( s# p+ a - ; specified).& A2 h5 q9 D) E) B, W
- ; http://php.net/upload-tmp-dir& V! W( M5 l3 [) t3 s+ } [. R+ P
- ;upload_tmp_dir =
, i6 p* E0 D9 w. Z" _' W9 O$ H8 Y - 5 O$ e, s m5 {; j
- ; Maximum allowed size for uploaded files.
; e; t# s' J& h- d; X6 L - ; http://php.net/upload-max-filesize/ l8 |8 G9 p6 @1 O* n6 J9 ^' h
- upload_max_filesize = 50M* \ l- M% D3 Y7 {3 N" U
- ; O9 |# k) C& b& o0 r' s2 `. \& j
- ; Maximum number of files that can be uploaded via a single request
* W' a: h1 | Y& m) W6 f - max_file_uploads = 208 Y4 M2 H* f: ~, K+ u4 s
: }" a3 {( }& C8 I8 H- ;;;;;;;;;;;;;;;;;;
9 c7 A7 _% e! c8 J: O - ; Fopen wrappers ;' M6 z) z- Q5 e2 H4 I. {8 c
- ;;;;;;;;;;;;;;;;;;( }" l: [* H5 u$ N# ?& u
- ; Z: \' K5 j, i; Q- T* m
- ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.. U5 C7 O) O9 b# `) ^# \
- ; http://php.net/allow-url-fopen6 }, R5 W/ _2 Q$ q
- allow_url_fopen = On3 @+ ^% j, U7 X+ V) J8 H$ n
3 }8 S4 u1 H( O! ]5 w- ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
7 a2 K7 X9 o+ X - ; http://php.net/allow-url-include
/ E+ \& F! D: z) u - allow_url_include = Off
" K5 ] F( p( b2 l( L' v - * {" L! ~2 Z4 C4 f, f
- ; Define the anonymous ftp password (your email address). PHP's default setting1 a* Z9 j. Z9 O8 v
- ; for this is empty. w/ H8 D! R) S$ O
- ; http://php.net/from2 X4 V5 j2 e/ c8 C$ g9 K8 \
- ;from="john@doe.com"! f/ }( R3 Y" f: e5 H
- % a' Q8 T- {, K; n% f3 u4 h8 A
- ; Define the User-Agent string. PHP's default setting for this is empty.3 i! X) S) c0 v5 N
- ; http://php.net/user-agent
& I2 w. X# Y5 H0 h( [- M$ C1 ` - ;user_agent="PHP"
6 H0 C9 R4 p: _ - 5 I; A- w4 E4 G v0 y' R
- ; Default timeout for socket based streams (seconds)+ |! A- Y, X8 X5 K% B8 l- D
- ; http://php.net/default-socket-timeout
0 m. H$ Z4 X7 F0 t9 k& o - default_socket_timeout = 603 B4 Q% H; H& ?4 `4 ^" q+ M
- [9 w1 b$ h2 q/ m' O
- ; If your scripts have to deal with files from Macintosh systems,
3 ^0 W/ u0 p' ]- i; X2 t! l- F - ; or you are running on a Mac and need to deal with files from
# D2 R$ K+ f6 i3 O3 v1 E) [ - ; unix or win32 systems, setting this flag will cause PHP to
* \( @: ~1 P& A+ h& ~) Y - ; automatically detect the EOL character in those files so that# s% S! e; B1 X7 ]( j0 l% p$ p
- ; fgets() and file() will work regardless of the source of the file.
4 N% q: c0 g- w+ A: t0 a - ; http://php.net/auto-detect-line-endings" L" P; x( I, c1 X& J9 S
- ;auto_detect_line_endings = Off
: Z5 _% t# ]7 l7 M7 Z
! \0 F7 L7 n( X- ;;;;;;;;;;;;;;;;;;;;;;! y% `8 T" G4 ]
- ; Dynamic Extensions ;( N* k) ~% Q' d
- ;;;;;;;;;;;;;;;;;;;;;;
& `2 U- j/ @: X4 Z$ q- s - ! N* w5 K" W( Y* I5 m' `
- ; If you wish to have an extension loaded automatically, use the following
' ?; r( T+ X0 n9 x. |% w( Y- Z! k- _ - ; syntax:
/ B. B7 {& S6 q! B - ;
" W5 k) b3 N# z7 U$ o! O2 y( l6 I - ; extension=modulename.extension
b6 q4 z s2 v6 s1 G3 t - ;" [0 n- o5 ]0 B, n P$ X
- ; For example, on Windows:
0 T) x! ]2 ?0 ?8 R3 h% E4 Y/ I - ;
( v* _ ?7 h) w5 e - ; extension=msql.dll3 G/ ~0 b# |% S1 j
- ;( X8 ]. \# l z# X: y, Q3 L
- ; ... or under UNIX:" d$ N) @) g. |0 `
- ;- j; b6 j6 I1 T/ A' Z1 v
- ; extension=msql.so
6 i" I% e) _( y7 i7 l! _ - ;
0 u/ \) Y# P+ d# y1 t) i - ; ... or with a path:/ s* j: @$ Y. V- I
- ;
+ s% s8 N; J& o. o - ; extension=/path/to/extension/msql.so
5 a) g7 d9 ]9 {! ?7 X - ;- q# O; F% }' M
- ; If you only provide the name of the extension, PHP will look for it in its0 Y# r4 {8 L- m8 g
- ; default extension directory.+ y8 Q! f1 }! b* A' f; A
- ;
. q5 B' w6 M; |/ a. D# J - ; Windows Extensions
/ {2 i7 `7 Y9 l4 x0 i% g - ; Note that ODBC support is built in, so no dll is needed for it.
; g! M: a7 F6 m$ f. K5 | - ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
$ t! |/ `6 i \" @8 ~ - ; extension folders as well as the separate PECL DLL download (PHP 5).
9 N% E+ P# m0 h- B - ; Be sure to appropriately set the extension_dir directive.1 Y# _ I- k: V0 c/ q6 m
- ;
& I/ m8 [& M; p - ;extension=php_bz2.dll" C3 I, @! }" X& z+ U& R
- ;extension=php_curl.dll
) h0 I& O1 D3 Y. ?( Y - ;extension=php_fileinfo.dll
$ h" T4 P6 P( B# P' R) z1 V3 q - ;extension=php_gd2.dll
7 f4 h) y) [4 H - ;extension=php_gettext.dll
# z; n) f) C6 s5 z7 g2 H$ w/ e( ` - ;extension=php_gmp.dll, d3 x' k% q* I5 T. w- @' S) j
- ;extension=php_intl.dll
! S* n! d& A( Y; o7 _7 }+ L - ;extension=php_imap.dll
3 r% B( L4 Y& s: [% a1 Q/ c - ;extension=php_interbase.dll
/ P/ } t: F' ]" @4 G L9 L+ N - ;extension=php_ldap.dll
2 m7 ?/ E( i9 M; r+ A# b$ I - ;extension=php_mbstring.dll' W; Q9 p$ I/ r @: P
- ;extension=php_exif.dll ; Must be after mbstring as it depends on it8 j. h. h# h/ C
- ;extension=php_mysql.dll! f0 |" @4 D8 O; M* r# _
- ;extension=php_mysqli.dll
+ K2 x* q+ d) S2 d1 d- [: K - ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
b. F. Z! V Z. j - ;extension=php_openssl.dll% t+ c4 ~9 K8 Y1 {/ r
- ;extension=php_pdo_firebird.dll
+ V0 N2 s1 U% N; E7 w - ;extension=php_pdo_mysql.dll) A5 |! \4 k/ k; l
- ;extension=php_pdo_oci.dll
0 Z& X4 p* O# {; g0 s* f - ;extension=php_pdo_odbc.dll3 ~# |. Y( c; M+ U4 p7 j: ?3 u/ g
- ;extension=php_pdo_pgsql.dll# V' U, u; L9 ^. b
- ;extension=php_pdo_sqlite.dll
3 }. g$ j' y' ^5 t - ;extension=php_pgsql.dll/ M C; @+ d+ u* v1 |- n; z
- ;extension=php_shmop.dll" a( I5 \. O+ X, b7 _
1 S- w) `2 B; @7 @0 ]- ; The MIBS data available in the PHP distribution must be installed.
0 t7 ~( U6 l! d1 N - ; See http://www.php.net/manual/en/snmp.installation.php
: p! S& W) S: o1 @! W - ;extension=php_snmp.dll
) G3 O$ J3 I/ E8 s& T% Y# C6 f) C - ! {8 M8 A# I: l# L z- q
- ;extension=php_soap.dll
) Q5 w' `/ I$ N# J6 f0 | - ;extension=php_sockets.dll, o# x. x+ m8 i
- ;extension=php_sqlite3.dll
, v, m3 Y3 F* ]5 e$ j& ^ - ;extension=php_sybase_ct.dll
$ p% n) h4 n# }& q' x: C - ;extension=php_tidy.dll. n8 U- K6 j! M* _" j6 r; F: i
- ;extension=php_xmlrpc.dll: X7 j4 [6 f$ S. [# n$ m
- ;extension=php_xsl.dll
/ w e" J) H3 {
9 V1 n$ e+ K. r, U+ ]8 q4 _- ;;;;;;;;;;;;;;;;;;;: }+ W, z: e0 Y, o" g
- ; Module Settings ;5 T) ~, j4 A. m! v1 J B
- ;;;;;;;;;;;;;;;;;;;, ^+ r: {: a' Q6 l/ s$ i/ W7 L
& D0 T0 _4 {% ]9 e. W3 L- [CLI Server]
4 n$ G4 H8 Y0 E+ C' C% q - ; Whether the CLI web server uses ANSI color coding in its terminal output., Q3 [& \" D. \) c* x7 z' s) N( G
- cli_server.color = On; c2 D' E2 W! Y, d; R! }
6 m6 M" z1 N) Q1 o! ~) U- [Date]5 C7 A/ K! L) m+ Q6 E
- ; Defines the default timezone used by the date functions
; P; m0 f+ a* S8 ~( h6 c7 M- h5 j - ; http://php.net/date.timezone( g" x) _. `" e6 Y2 V; W
- date.timezone = PRC
2 n& K6 h+ [0 H2 b+ i" u
( t0 a! P: S1 |. }3 I/ K- Z) v- ; http://php.net/date.default-latitude9 `8 v5 C% T4 j4 t& L( c* `/ h
- ;date.default_latitude = 31.7667# V; I# s& K v
- . R4 F) s" ~8 f6 O' s3 S i
- ; http://php.net/date.default-longitude3 [ I$ M6 Z3 R# s3 N5 N
- ;date.default_longitude = 35.23331 n+ K D! y" M3 R
' W5 H% Y4 k' B7 {- ; http://php.net/date.sunrise-zenith
* z+ q4 I4 z2 |+ L* d# |- `9 b, U - ;date.sunrise_zenith = 90.5833333 R! l) p3 e w
- / E/ R2 r8 _3 P+ F# Z4 K
- ; http://php.net/date.sunset-zenith
4 w/ @8 k% `- T9 p2 ` w1 J( K - ;date.sunset_zenith = 90.583333* N l4 \( s2 G7 }
- : X9 W( l4 V2 ~6 p
- [filter] P$ g) [2 _1 Z7 ~" ~" L" j
- ; http://php.net/filter.default- {+ C c; |1 Y! S% \, m5 ^7 w8 N
- ;filter.default = unsafe_raw$ _* T6 N( [( G6 }, V+ V/ [: w$ T8 u
& B8 Q, i' I7 ~6 @9 @- ; http://php.net/filter.default-flags
* U2 ^9 f. _, s A& `* D8 [$ ^% K - ;filter.default_flags =
3 S5 P6 ~: ^5 d- M) [( N
5 b9 E& X0 I2 `# @( q- [iconv]/ G' v* f2 D3 P4 Q8 d
- ; Use of this INI entry is deprecated, use global input_encoding instead.
. }; d, o$ z3 x. [9 }' s - ; If empty, default_charset or input_encoding or iconv.input_encoding is used.* Y. T0 w; c! W& Q" W0 f6 _& ?
- ; The precedence is: default_charset < intput_encoding < iconv.input_encoding, ]: |* D( B) `
- ;iconv.input_encoding =
3 ]3 Z% Y3 L k* I0 I- L# P - 8 ^# H9 }: }1 p# z" L9 P
- ; Use of this INI entry is deprecated, use global internal_encoding instead.) U0 q" A9 ]5 L' [% S! s+ t
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.3 X2 l, m8 `! `' ]* h1 T
- ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding9 J( [1 K; u% b/ @: H
- ;iconv.internal_encoding =
, t; G! j" e3 ~* b, Y& W( |$ H
6 N6 b9 D+ P8 E* {- ; Use of this INI entry is deprecated, use global output_encoding instead.
2 s1 a8 G' p I$ M - ; If empty, default_charset or output_encoding or iconv.output_encoding is used.0 a( h" n- E$ w8 R
- ; The precedence is: default_charset < output_encoding < iconv.output_encoding7 x4 {7 P \- K5 c# y6 l j
- ; To use an output encoding conversion, iconv's output handler must be set0 j! v j# B7 G* X7 t
- ; otherwise output encoding conversion cannot be performed.* K- D( {& Y( y2 S3 C0 j" x
- ;iconv.output_encoding =4 S5 _: I# F% Y8 k) p/ c- H( u0 H
- 4 ?7 k1 l2 m0 _5 A7 T7 f& g
- [intl]
2 {/ [" y" ~5 _" q - ;intl.default_locale =# b* v3 D) e/ l' D
- ; This directive allows you to produce PHP errors when some error" n% _ V! M* X. g l1 C
- ; happens within intl functions. The value is the level of the error produced.2 f7 R% _; S) n+ k% ~
- ; Default is 0, which does not produce any errors.
- I% d& o$ o1 |! E" W! j; m& x3 ~ J) u - ;intl.error_level = E_WARNING
) q" l( ^/ M$ w) |- n - ;intl.use_exceptions = 0
6 Y! ]2 h/ _9 w5 e% b/ k* H! x* X* {
l1 l' `0 ?/ P+ a- [sqlite3]: F3 g0 H2 @4 d1 D% i
- ;sqlite3.extension_dir =
: S+ B ^2 k0 h' j5 w8 e( n
6 P& [: v( P/ S5 [8 P: _2 y- [Pcre]
3 k0 W5 ?' u1 e& G. ~: W - ;PCRE library backtracking limit.
: c- [) u/ }% i& s: @; u% x, [ - ; http://php.net/pcre.backtrack-limit
& H e( k" O' \/ b - ;pcre.backtrack_limit=100000" j5 H1 r. H+ @8 Z5 y8 o# b: N# p' G
2 G) ?. F3 ^% h- ;PCRE library recursion limit.
) Y5 h6 w$ C1 W - ;Please note that if you set this value to a high number you may consume all: U% O: Y7 E5 [. X
- ;the available process stack and eventually crash PHP (due to reaching the( N( \8 w& |; Y9 C+ G0 n; r
- ;stack size limit imposed by the Operating System).3 B) P6 f$ p$ v$ r
- ; http://php.net/pcre.recursion-limit
: p' R7 `4 A3 e8 Y - ;pcre.recursion_limit=100000& Y& A# E( ^# h+ `) ^# g- C
- " i+ e9 k) H N
- [Pdo]
! N$ @/ {/ z- \! \6 H V# i - ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"9 {: u9 U8 B+ U
- ; http://php.net/pdo-odbc.connection-pooling
9 H7 G+ u3 v7 B- C/ v q - ;pdo_odbc.connection_pooling=strict7 x$ ~. z. U# Y1 S7 |' F: ^
8 N2 j& X. Z' F+ L) m9 P- ;pdo_odbc.db2_instance_name+ b% w# o) C: n' b
- 1 v, V5 l* d3 z, u
- [Pdo_mysql]/ @ f0 r% y3 l! ]
- ; If mysqlnd is used: Number of cache slots for the internal result set cache
$ Q L8 }8 o& s - ; http://php.net/pdo_mysql.cache_size
q7 E& E% T1 V9 @ - pdo_mysql.cache_size = 20003 t2 C% I7 M# w% S
- . ^, U. \3 T4 @: }
- ; Default socket name for local MySQL connects. If empty, uses the built-in# [, I* @! d) ]
- ; MySQL defaults.
8 {* A0 n8 J% C4 G" e - ; http://php.net/pdo_mysql.default-socket
/ L0 V( b6 T! W+ D, v/ K - pdo_mysql.default_socket=$ A2 E+ H- \. u
- 5 u& u0 t: \2 j
- [Phar]3 s6 D& A. C8 H0 c& O* L* r
- ; http://php.net/phar.readonly! g; c4 W3 ~" f6 Z1 p
- ;phar.readonly = On
9 R" g, J5 P& L - : b; C/ O3 n- r) U1 I
- ; http://php.net/phar.require-hash- [% C' _" ]+ I& n3 E1 i
- ;phar.require_hash = On2 [' b+ m0 e/ U+ w
- 9 l* _' E! E0 K& r
- ;phar.cache_list =
* ^" X1 V2 z2 y; B2 ?" O6 f
' B' G, T. ~8 B" O- [mail function]3 L2 e" R! m, a& e& ~3 `% }) o
- ; For Win32 only.
& D& k+ G- d1 _ - ; http://php.net/smtp
7 p# _! Y$ E- k$ e' t+ ~ - SMTP = localhost5 l3 L9 S8 ]3 u6 S: R6 r
- ; http://php.net/smtp-port1 D# k j; R/ z( Y
- smtp_port = 258 { G& h6 Z$ B7 Z
$ G; F' o4 j+ _1 g5 [; ^4 ]2 s- ; For Win32 only.% @, Y1 O1 x: K
- ; http://php.net/sendmail-from
" r& A. ^3 y# n5 v) R3 ~% A - ;sendmail_from = me@example.com
4 I$ O8 O# Z: L5 H* N# | - $ k- ^( J" x( m8 `
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
5 c& Y# I8 s: _0 [, } - ; http://php.net/sendmail-path
: N1 R" l8 I: J2 } - sendmail_path = /usr/sbin/sendmail -t -i0 o4 T) v }9 v$ b% \
3 i, E( a2 g0 r2 F% W& X- ; Force the addition of the specified parameters to be passed as extra parameters& v) B8 m* N# F+ v, i8 b L
- ; to the sendmail binary. These parameters will always replace the value of4 g7 t+ i4 P) [% r; Y8 j# x a* `
- ; the 5th parameter to mail().* Y7 Q% v5 s# B1 [ K
- ;mail.force_extra_parameters =5 I' ?' w3 I0 D ?
- 7 }" S5 I Q5 V, P( U2 q
- ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
! u) p: G! p% ^ - mail.add_x_header = On& U: p$ U+ T2 @* ]9 N* }
6 U6 W$ h4 k$ V( a% o+ i- ; The path to a log file that will log all mail() calls. Log entries include
1 w$ d9 O! e- K4 w) t - ; the full path of the script, line number, To address and headers.
7 e |8 e# h! W3 \ d - ;mail.log =- F$ P9 T" O- g2 w C! q4 i! `0 c
- ; Log mail to syslog (Event Log on Windows).: {8 q, N/ ], V8 o: S/ G
- ;mail.log = syslog4 f* Y- I$ b4 [$ c& P$ b1 T
- y) o7 G! r+ R" [% w- [SQL]
3 L2 h* v4 G+ L* t/ R8 h2 y - ; http://php.net/sql.safe-mode( m' s1 B/ a+ b3 Y0 \
- sql.safe_mode = Off
8 K2 Y8 i$ |( K T7 w2 L - ) Z2 ^4 O- A# `" V, m+ R
- [ODBC]: t4 w/ ?: W2 P# ~+ R) _# Z' r
- ; http://php.net/odbc.default-db) _& P& c B2 N4 [3 Z9 v
- ;odbc.default_db = Not yet implemented
2 {& C7 N- n/ m9 o6 V
7 }0 E* {8 o' a) b2 c) d: l- ; http://php.net/odbc.default-user5 E. ~2 ?: y! {3 J
- ;odbc.default_user = Not yet implemented C0 `, E9 w, g0 N) k
2 |: G0 {) k" n1 G0 p- ; http://php.net/odbc.default-pw
2 ^8 B' G. Y% ?/ f - ;odbc.default_pw = Not yet implemented3 r0 E7 ^3 c8 H& t5 Q ^" a2 X
3 m- q- a0 v x- ; Controls the ODBC cursor model.3 ], w; Z7 s/ p5 Q% K
- ; Default: SQL_CURSOR_STATIC (default). x/ m. t( p0 t6 z
- ;odbc.default_cursortype" P/ B: f) @4 |* Y7 ]2 ~( N
) I7 F& D+ h, m) x- ; Allow or prevent persistent links.7 e( O/ a" N4 V) s. c
- ; http://php.net/odbc.allow-persistent8 f; [1 ~# v2 a" Y- m% w& H" w
- odbc.allow_persistent = On/ s9 Q, ~3 C1 _5 k
- @7 Z: N( }% ^/ @
- ; Check that a connection is still valid before reuse.- l5 ]3 g$ F2 a, w
- ; http://php.net/odbc.check-persistent
; h) d+ D( K" H* B$ P - odbc.check_persistent = On
7 X- r! q0 x- c9 N5 o; ] - 7 f1 R6 M5 x+ i2 h9 _+ s O
- ; Maximum number of persistent links. -1 means no limit.: @7 \- x" }4 v4 ?3 _
- ; http://php.net/odbc.max-persistent9 y6 a8 {! I% f
- odbc.max_persistent = -1
: z2 }4 X7 u4 b7 [4 E: | - ) a& ]7 y% F* ]7 Y" @4 Q
- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
. ]4 D- y: R F1 x5 b - ; http://php.net/odbc.max-links+ K$ Q. H! c! `5 `( n( Z K
- odbc.max_links = -1# K. n5 D% ^% r# R, R8 x @- T: t
- % k6 y+ M' R7 Y
- ; Handling of LONG fields. Returns number of bytes to variables. 0 means/ J1 \. d% {4 \7 a
- ; passthru.2 Z0 A2 T0 K5 X& x( Q. R6 [
- ; http://php.net/odbc.defaultlrl2 c1 X E9 ^- z8 c/ w1 O0 C* ~
- odbc.defaultlrl = 4096( l4 H. Z9 L" q9 K2 q% ]4 n
- . |0 z2 ?! g3 ~+ F( T, B
- ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
. C0 S7 J3 X+ F2 z* d* P- P - ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
, k- n* V# V; N! ~ - ; of odbc.defaultlrl and odbc.defaultbinmode
5 [" z9 Q$ D' P. O2 N. i - ; http://php.net/odbc.defaultbinmode! y5 A+ n' {# m. C/ u7 t( g' _
- odbc.defaultbinmode = 13 T5 w" Z0 n$ g% p
- ! d: b$ } P- |7 _/ ^
- ;birdstep.max_links = -1# `2 Z# i0 q8 T- v. c
- 6 R- j' @& \# G3 M6 c
- [Interbase]& N# @7 Z% ]2 t: ]) @2 X4 [
- ; Allow or prevent persistent links.6 Y7 e: A% j9 Q! r- f( k
- ibase.allow_persistent = 1; ]+ c/ U# W0 r& f4 i% m+ }: X
- 2 q- R1 Y; o2 F; F+ W8 ?6 J/ V
- ; Maximum number of persistent links. -1 means no limit.
) }; K0 j2 q/ Q2 T - ibase.max_persistent = -14 \) W7 s1 \* c6 w/ s! ]
- ) V" P- i$ O2 i, S% S/ i
- ; Maximum number of links (persistent + non-persistent). -1 means no limit. R4 g5 n# w9 r9 @; V
- ibase.max_links = -1' E* U2 N9 X8 w* G) K
' w/ p1 w; e/ x# a" x9 I- ; Default database name for ibase_connect().
% x3 `: A$ n! m# e: B - ;ibase.default_db =
& W, Y* i' V }. Q1 Z$ }) S i' A
?1 g& m0 x( c- ; Default username for ibase_connect().8 f& _" S; ~8 ]! r1 J
- ;ibase.default_user =- a8 Q1 g3 N2 _- c
- , [' l! G$ I: ? l \0 \8 _
- ; Default password for ibase_connect().
t9 s w& ]* K# Z. K - ;ibase.default_password =2 k8 K! d5 c& a. w U6 ?5 n
, j- ~. s8 I* \8 ~6 O- ; Default charset for ibase_connect().
, A( W6 Q& z% }, j$ |/ Y6 m! H - ;ibase.default_charset =3 N1 X9 l, u, M. P3 n
. a+ \% }/ q2 v. L- ; Default timestamp format.( a% h( M1 r$ y/ j" ]7 z
- ibase.timestampformat = "%Y-%m-%d %H:%M:%S"" o8 J- r) ?* Q. f' l& L# H
& r; v. @& `+ k( k- ; Default date format.
$ ^+ p* C: l0 c: }0 @! [8 w - ibase.dateformat = "%Y-%m-%d"
8 q9 T! ^+ k1 O7 s& o - ) x" x: Y- K: e }
- ; Default time format.! u' `: n: B( ^/ K, ]2 v. a
- ibase.timeformat = "%H:%M:%S"
, J5 \( A4 Y2 U9 p& q, P8 f - 2 `2 T* o& E! f3 l
- [MySQL]
% L: k( V; m, H( K" c6 P$ N - ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements( Q/ Q. M# X& I ^
- ; http://php.net/mysql.allow_local_infile
( ^* e- c/ w# s U2 G' J/ x - mysql.allow_local_infile = On
' a+ H n/ J9 Z. l+ R+ Y( X
6 C$ ?" y" X1 ?5 j5 R" V- ; Allow or prevent persistent links.
3 s7 D, {) A& r* \ - ; http://php.net/mysql.allow-persistent
* B. R! y* N' d" K8 y- @, ~ - mysql.allow_persistent = On# l' P* E% Q. n5 D
% K" |* Y4 q$ C! o, I& P: N+ @0 L- ; If mysqlnd is used: Number of cache slots for the internal result set cache3 @* G0 j1 e# x# w6 \
- ; http://php.net/mysql.cache_size. R7 q% }* ^) ^0 w6 S6 {$ l
- mysql.cache_size = 2000
+ {- G( G5 z' C1 `
$ Z* |! [& A6 u- I, W- ; Maximum number of persistent links. -1 means no limit.% X( S" _: @& R+ f/ ]
- ; http://php.net/mysql.max-persistent
5 u7 @( ?! K5 U0 d- A5 Q2 r: T& u - mysql.max_persistent = -1- n9 u$ i1 T# H: ^1 C
- . P& k7 ^6 @& r8 E
- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
2 ~: R% N, p# L2 p T6 Y5 K8 z - ; http://php.net/mysql.max-links
( R5 ^9 L7 Q5 A% q4 v* v( Y; Y - mysql.max_links = -1+ J6 v1 L- a, _
- % m: D( t% A6 y4 Q/ a* k, x3 v0 G( x
- ; Default port number for mysql_connect(). If unset, mysql_connect() will use
0 D: m2 J6 [, T/ w - ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the; q5 ], u, l& k+ i+ D5 r
- ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look I! E) u/ X9 _; F
- ; at MYSQL_PORT.
7 Z' }0 g* z# s7 r3 A+ e* u - ; http://php.net/mysql.default-port6 Z4 r- f" X9 F
- mysql.default_port =9 \4 L8 \& t _
- " K+ A' x: K! T. `" A& o M
- ; Default socket name for local MySQL connects. If empty, uses the built-in8 z8 l% e1 b: m0 Z/ _; u
- ; MySQL defaults.+ V- p' L" B& h. ?7 ^- m- B' W$ [
- ; http://php.net/mysql.default-socket
4 e7 Z! ^! M) c8 p0 l5 `: a - mysql.default_socket =; ]# l/ x6 g: G5 z3 c1 w
- & I7 h" t* z: E9 H% U, t
- ; Default host for mysql_connect() (doesn't apply in safe mode).9 d- f0 f, n8 d
- ; http://php.net/mysql.default-host6 C+ z3 Q6 P) J$ N1 {3 p6 a0 M
- mysql.default_host =
5 k7 d2 I& A/ t* r9 w; m - 1 X3 i6 Q+ o& L1 z( s/ D
- ; Default user for mysql_connect() (doesn't apply in safe mode).
" z% k& I$ p% c( \5 N/ F4 \ - ; http://php.net/mysql.default-user
/ `# x, y$ [* K0 E+ p+ Y - mysql.default_user =) Z2 _. |1 w |7 J' f2 E$ F b
7 R z9 ]! y) D* w5 |- ; Default password for mysql_connect() (doesn't apply in safe mode).
5 j5 g, ^) q, A - ; Note that this is generally a *bad* idea to store passwords in this file.
9 |5 J% u* V% d- D+ d2 X - ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
- {4 v* e; W; x3 ^" V9 F - ; and reveal this password! And of course, any users with read access to this' B/ N4 `* Y" ~& T ]
- ; file will be able to reveal the password as well.
( b& c0 O8 r# j2 O# H - ; http://php.net/mysql.default-password- h# B2 K/ B6 a/ Y; F
- mysql.default_password =% @2 _9 K/ L/ a1 ]: |- k
- 9 L$ q \) e2 _) D3 P
- ; Maximum time (in seconds) for connect timeout. -1 means no limit+ p$ C/ I9 G! I) z) b
- ; http://php.net/mysql.connect-timeout
! P4 O: g3 `8 R- w - mysql.connect_timeout = 604 [5 \$ F2 `5 H0 I+ X0 x4 F
- 5 I9 O; r |& K" C) C: B
- ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
$ q! w# E y: F* u - ; SQL-Errors will be displayed.
( W" p' p. g( n& L6 T- j Q: |( z4 ?( I7 c - ; http://php.net/mysql.trace-mode" f# y! R7 P/ @/ K; V& d# R
- mysql.trace_mode = Off
* h3 r$ z* I" J8 t7 w2 r9 d - ! |. p: W& h0 D# V% @
- [MySQLi] h: r% }; t+ C: ?4 w
- 7 w5 e8 K d. w0 L5 J$ w) Q
- ; Maximum number of persistent links. -1 means no limit.
+ ~5 J& k* r/ ], }% }9 U - ; http://php.net/mysqli.max-persistent5 ~5 o* v9 }9 K: B6 q& J1 W
- mysqli.max_persistent = -1
/ c M+ H1 i8 y @+ G
; p& l O- R6 L+ f1 l1 G- ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements$ f) e- g, X8 M R1 \
- ; http://php.net/mysqli.allow_local_infile
0 F" W4 Q; x! @ - ;mysqli.allow_local_infile = On
7 P( t! }0 O4 L1 U9 n$ X - 6 N; F4 c( c* P0 V, I( ~5 J
- ; Allow or prevent persistent links.
- T6 d8 B! Q- a# w9 H* u) ^ - ; http://php.net/mysqli.allow-persistent
. n" C7 B' H5 }/ w; B - mysqli.allow_persistent = On* P- ~: b5 z1 @- F2 m' L
& R- }! d' C3 ]6 ^% R- u- ; Maximum number of links. -1 means no limit.8 y9 G& z, ~2 ?- ]; C* t
- ; http://php.net/mysqli.max-links
2 s2 E0 E" N* K3 T - mysqli.max_links = -15 Y3 R. m9 N* g/ T) p
S* {$ U P2 K3 L- ; If mysqlnd is used: Number of cache slots for the internal result set cache' r, G/ ?9 n$ M& O3 S/ a# L# i4 A
- ; http://php.net/mysqli.cache_size
5 o6 v3 s1 R( |* k% _( l - mysqli.cache_size = 2000" B) G8 v" [% h- M2 n) l
- 2 c) O4 O+ n$ F; j! o+ q4 C
- ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
8 m, @3 K% R; ]8 z; P2 @" s - ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
x* N: F, W) n - ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look! o8 m6 j& W$ R; c- A8 {) n* O( w
- ; at MYSQL_PORT.* _4 G5 b. j" a" ^/ ?
- ; http://php.net/mysqli.default-port
% H+ X: b) q% F, y$ X; l! S - mysqli.default_port = 3306
3 r8 O& h) ]- g - $ v+ I2 n3 o2 N$ P4 I
- ; Default socket name for local MySQL connects. If empty, uses the built-in
# f6 e5 A5 d6 J* |* H - ; MySQL defaults.
% h3 l" ~1 t' ?/ t - ; http://php.net/mysqli.default-socket
* Q6 D8 ?% {$ @) n - mysqli.default_socket =
4 v, K9 F& C/ |" f; Y
! r# [! y4 o" V* ]- ; Default host for mysql_connect() (doesn't apply in safe mode).
: w. Q! m' W: {+ ^; c* l - ; http://php.net/mysqli.default-host
8 b) h7 K7 V! @8 L8 z% U9 R - mysqli.default_host =
- ?% ~# I) X0 Q" M - 0 K. A$ a6 ^: E2 ~) E% Q
- ; Default user for mysql_connect() (doesn't apply in safe mode).
, l g2 C1 s/ ?6 ^( m - ; http://php.net/mysqli.default-user
0 b+ m/ t. k' L# ]2 K5 Y ? - mysqli.default_user =! _9 H% }) N* r6 |$ J, N3 i
L8 L0 V6 N% o- z$ o- ; Default password for mysqli_connect() (doesn't apply in safe mode).* e8 Q) g1 p" c( l5 w" A8 j
- ; Note that this is generally a *bad* idea to store passwords in this file.- d+ B" ~, }' z0 a9 [+ t
- ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")) \" b' p% j3 s( ]
- ; and reveal this password! And of course, any users with read access to this
& o6 E; V- Z. w: K* ~ - ; file will be able to reveal the password as well.3 ]/ |1 L% ]: K( n3 a$ E% J
- ; http://php.net/mysqli.default-pw1 M, i& j) f8 q! C4 y l5 |4 }
- mysqli.default_pw =
; b. P0 q# i$ P - - p p& C* d$ g% h& H
- ; Allow or prevent reconnect/ ?6 u7 Q: y5 E9 h8 k J3 r2 `: G
- mysqli.reconnect = Off6 x$ c- H* Z2 ]
0 K' q. |, a& O' |/ r- [mysqlnd]: z, O9 i& r. v* h! h( x
- ; Enable / Disable collection of general statistics by mysqlnd which can be
6 [: v+ W* z5 s - ; used to tune and monitor MySQL operations.
* ^/ I" x" }) q4 y - ; http://php.net/mysqlnd.collect_statistics T% k, u% {5 e7 U9 r2 m1 j
- mysqlnd.collect_statistics = On* Y1 ]( z% h! s) m$ P( {/ s
- + U9 s% t0 C" V0 h% A% F
- ; Enable / Disable collection of memory usage statistics by mysqlnd which can be
* e3 Y8 z& l0 t* H k# W; O - ; used to tune and monitor MySQL operations.
3 i" P: l& `: S6 Z - ; http://php.net/mysqlnd.collect_memory_statistics
7 B* ]: N( }/ n - mysqlnd.collect_memory_statistics = Off
, ]3 X' M4 b* L6 j" }& M+ }* ^ - & O+ X4 E) Z3 w
- ; Records communication from all extensions using mysqlnd to the specified log$ e9 G( g- ?$ q% p$ Y. v- c% E
- ; file.! O1 _! i0 ? {2 A# M: t* ?+ a
- ; http://php.net/mysqlnd.debug8 E, k0 F- M& ?2 G
- ;mysqlnd.debug =% N; W6 E. J3 j
- * x% N5 M# S3 {
- ; Defines which queries will be logged.
; _! [6 ?8 b7 X( R$ s% m. r - ; http://php.net/mysqlnd.log_mask4 }0 s2 p5 f8 e
- ;mysqlnd.log_mask = 0& H5 z5 r7 `- C& ~! o
8 _ d9 h' b2 j8 p+ _! ^- ; Default size of the mysqlnd memory pool, which is used by result sets.
5 P' h$ U/ d p8 p* ]2 X - ; http://php.net/mysqlnd.mempool_default_size/ R R' I3 X1 c3 ?' V$ r
- ;mysqlnd.mempool_default_size = 16000- M: a' ^6 J2 N4 F
" W$ C0 I+ K* w h* A- ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.! R$ p/ h( G% ]' i' Q- E/ W
- ; http://php.net/mysqlnd.net_cmd_buffer_size
( @3 k1 o! b7 Q& e - ;mysqlnd.net_cmd_buffer_size = 2048& S. a) ]# D, J& L: z6 \
8 o3 K5 T f$ Y- ; Size of a pre-allocated buffer used for reading data sent by the server in" |/ H" @# [/ e) M; |
- ; bytes.6 @1 v! @9 b0 P, T
- ; http://php.net/mysqlnd.net_read_buffer_size2 a9 X' K/ e/ s- q5 y
- ;mysqlnd.net_read_buffer_size = 327683 E1 K) C$ q9 a+ M
8 W% W% d$ T. }# Z- p& P- ; Timeout for network requests in seconds.
X* V1 v) O8 r6 n- ]$ R: { - ; http://php.net/mysqlnd.net_read_timeout
, ?5 W7 F/ `' V& A) z: | - ;mysqlnd.net_read_timeout = 31536000/ I1 q q. @8 R/ E0 B& r/ L$ D R# ^
2 K4 D+ D9 f* i4 S- ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA
+ u( p* s. v( s8 Z/ n$ A - ; key./ I) p6 ?. p, O+ `
- ; http://php.net/mysqlnd.sha256_server_public_key2 n! J, X1 d+ y: R8 B L
- ;mysqlnd.sha256_server_public_key =
% _) [$ a# U# n
" w3 S3 O: [7 L$ \/ e2 w- [OCI8]1 c8 Q- f( h: M1 n7 ?: w! t& v
& ?! @ j# p% W! N0 |& ?' b- |- ; Connection: Enables privileged connections using external" t) }% m" Q: ^& Y& c
- ; credentials (OCI_SYSOPER, OCI_SYSDBA)
/ U; G1 h* V& O9 N" m5 }! l: ?; x$ C - ; http://php.net/oci8.privileged-connect+ F B$ t b3 ?5 c' P+ o) h
- ;oci8.privileged_connect = Off% M4 a( O; ~3 e6 Y9 o+ ^! J# B& n
1 Z$ n9 Q1 a) g! u' u: }( A! j1 W- ; Connection: The maximum number of persistent OCI8 connections per
/ J5 H Q2 I- s( U) y - ; process. Using -1 means no limit.
6 w8 K# t/ x6 ? - ; http://php.net/oci8.max-persistent( m# t: h5 X; H g( N
- ;oci8.max_persistent = -1
; v$ A. v: O! _
1 C8 D# w7 B5 W) ~* U! y- ; Connection: The maximum number of seconds a process is allowed to
# O6 ]5 a* n* i - ; maintain an idle persistent connection. Using -1 means idle
/ Q! P1 }0 t7 P' s0 G6 J7 T! [ - ; persistent connections will be maintained forever.% ?3 I7 s0 Y* Z" ]1 i9 S
- ; http://php.net/oci8.persistent-timeout o7 B2 `' N/ ]3 Y
- ;oci8.persistent_timeout = -1
4 ?2 y1 {0 {4 M7 x7 O5 p2 w+ X - / C- _: p9 Y& A# z: f0 Q
- ; Connection: The number of seconds that must pass before issuing a* ]" q( t% w% @+ G( M* Y8 ]
- ; ping during oci_pconnect() to check the connection validity. When& C" }# k& ~* Q2 I
- ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables$ u! t/ z$ ^" P9 d3 v- Z' f
- ; pings completely., g* D0 ^, V: I: Y6 _! b/ R1 t! i
- ; http://php.net/oci8.ping-interval
# K% x* Q; a: H) t0 Z% H - ;oci8.ping_interval = 60. A, }- ` Y5 j- l
! e8 R' I, i8 i( b" G- ; Connection: Set this to a user chosen connection class to be used, }2 M% T8 ~; q) h# z; n
- ; for all pooled server requests with Oracle 11g Database Resident
& A* g E% _, o3 O! i7 i - ; Connection Pooling (DRCP). To use DRCP, this value should be set to
4 I( z/ e6 w; P: j! z - ; the same string for all web servers running the same application,
6 m8 T$ T" O6 x" j; P# F C9 C2 ~ - ; the database pool must be configured, and the connection string must
0 A- Q1 @+ B! K* P' j - ; specify to use a pooled server.4 r$ S8 F# @: ]: n
- ;oci8.connection_class =' m' Y4 k' n0 S, p1 a, F1 f: `
- 4 ?( [. r4 ~$ s3 C3 D" }) t
- ; High Availability: Using On lets PHP receive Fast Application! \0 s" {; h6 e7 g' |( q: Z( d
- ; Notification (FAN) events generated when a database node fails. The* |0 E$ c$ o- Y' X' X4 d# B* t
- ; database must also be configured to post FAN events.
5 f& m4 U9 Q! }/ M - ;oci8.events = Off
% S1 T. R: ~; \# D2 u9 _
0 d: r% F8 r1 l, J; a6 b) o- ; Tuning: This option enables statement caching, and specifies how
, E0 P1 T: s, b! s+ Y - ; many statements to cache. Using 0 disables statement caching.
3 z X' n' J0 z - ; http://php.net/oci8.statement-cache-size
/ d5 D7 r6 j# f9 g) _; h N. Z8 O - ;oci8.statement_cache_size = 20
7 o- Z9 H0 s& _8 ]! C: | - : Z6 E8 T5 `: s9 ^. M
- ; Tuning: Enables statement prefetching and sets the default number of- F5 k! E5 s! C) l' b$ r T) _6 z% k
- ; rows that will be fetched automatically after statement execution.
$ Q" m. o* h5 @! N1 B; O: p - ; http://php.net/oci8.default-prefetch6 ^. B8 g( N- q+ U9 S q( l$ X# C" C% |9 p
- ;oci8.default_prefetch = 100$ b' h' S1 `- p3 ?4 L5 \- y
' o+ p6 ?" E1 N- O- ; Compatibility. Using On means oci_close() will not close
: Y6 Z! n; k) y- X& O - ; oci_connect() and oci_new_connect() connections." o; S g+ Q! k/ L/ C) [' o8 n
- ; http://php.net/oci8.old-oci-close-semantics- X0 {" a8 ]' k" X8 N6 g( Q
- ;oci8.old_oci_close_semantics = Off# U' p2 d7 G6 L5 W
; Z1 R2 h, X4 E) D Z- [PostgreSQL]( m! Z/ o# `! i. Z" N- O
- ; Allow or prevent persistent links.& F2 M0 H0 Y5 {: B
- ; http://php.net/pgsql.allow-persistent$ Y# c% R8 \7 K$ N# W5 M) S! o
- pgsql.allow_persistent = On$ |, t* Y6 I r1 B8 V- N
- ! C' `+ c- V9 S1 Q6 I3 D8 W
- ; Detect broken persistent links always with pg_pconnect().
D1 p! _1 u6 r4 ^3 ~. Z - ; Auto reset feature requires a little overheads./ h8 F0 a# S" v" r) ^& }5 ?% n
- ; http://php.net/pgsql.auto-reset-persistent! G. ]8 d6 s' Y6 A) p
- pgsql.auto_reset_persistent = Off5 e% _" Y( _& m+ L" ^ X- @$ n+ T
9 E) T: T8 b# B0 }- O- ; Maximum number of persistent links. -1 means no limit.
8 |: L/ A0 L) o7 _ - ; http://php.net/pgsql.max-persistent
5 o6 p3 B1 {% a: ]/ V - pgsql.max_persistent = -1
9 ^) }7 i: U& J; t+ w - + P9 I! M* M' V) l, `) E
- ; Maximum number of links (persistent+non persistent). -1 means no limit.3 J5 o1 x5 E8 s( W& p- A
- ; http://php.net/pgsql.max-links5 N; B" B$ ^, D! z# }* |6 l
- pgsql.max_links = -1
* y) B. {* n" \$ W+ ^$ @' g- k - ! T0 x9 j1 ]! g
- ; Ignore PostgreSQL backends Notice message or not.
- P! r1 x. @- ] - ; Notice message logging require a little overheads.
6 V) C; u' z8 o5 a* L! ~9 W2 a - ; http://php.net/pgsql.ignore-notice
( K+ K- f4 `9 _* r6 I6 q3 B - pgsql.ignore_notice = 0
, }* e5 ]0 i# v3 |9 h3 z7 l
, k( B2 U5 p5 L- L$ j* F5 I- ; Log PostgreSQL backends Notice message or not., M" g) R: M# h$ [7 ]7 C
- ; Unless pgsql.ignore_notice=0, module cannot log notice message.
1 ^: L, Z9 C+ x - ; http://php.net/pgsql.log-notice5 |& r- n- v) k# f6 `2 f
- pgsql.log_notice = 0# S& P9 `' O3 F, i
( _4 i8 K9 q& ~) z2 d @ Z/ k) l- [Sybase-CT]
* p% I9 O, V& r/ J - ; Allow or prevent persistent links.
- w% D. A" @' b - ; http://php.net/sybct.allow-persistent
# z0 T+ U: V* k3 Z6 v# H7 c - sybct.allow_persistent = On
& B5 U& S6 }8 z2 a" D% A - , O y, f- c! ?7 n& |
- ; Maximum number of persistent links. -1 means no limit.% A# K) g# x; [( w5 C1 ^, [5 V* v
- ; http://php.net/sybct.max-persistent
- N) ~( x, |. _. H - sybct.max_persistent = -1
9 K5 P% ?+ X* L) j6 K |
S% B+ n: A& C; x0 l+ g$ D, X V. m- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
$ _& E' x2 w0 |- I! B - ; http://php.net/sybct.max-links4 Y$ T) l, z+ Y: b$ D! E2 M
- sybct.max_links = -11 p, ^9 p" B4 J0 v
- ; z5 g3 x; x& i2 d$ M4 K. z
- ; Minimum server message severity to display.+ c! g. H+ L* b" b' q
- ; http://php.net/sybct.min-server-severity
7 S+ R4 b" E8 w$ Z D- y* z - sybct.min_server_severity = 10
% A) U& k- a9 |. }1 }$ q
% O' R- O+ U6 b9 g& n8 q# U0 G$ e- ; Minimum client message severity to display.7 o0 p6 o/ j" C4 C% r! w
- ; http://php.net/sybct.min-client-severity
8 o. z( i2 Q, ]6 ?4 P - sybct.min_client_severity = 106 j7 m6 ^2 _1 i9 u7 e* t) L- w+ x
. u9 y) ~+ c7 g' f3 H- ; Set per-context timeout
8 g8 ?* l R& w1 ~ - ; http://php.net/sybct.timeout
/ S' Z* L I7 t) p7 |, O# O. k - ;sybct.timeout=) z* |# m5 H# U+ ]2 [& M @
! Z6 Z# @3 ` I' A, F- ;sybct.packet_size
" j) ~) ]* F# |$ H' z1 U - ) V& m) [% d3 \! y
- ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure.; a) ?9 \5 K, o% u& s9 W
- ; Default: one minute
3 W4 e+ z# y7 u" p- P - ;sybct.login_timeout=
* e# X: c% t( I! C/ w' L* i5 v* Z - + S' |; J) C6 [$ m! a$ Y4 b
- ; The name of the host you claim to be connecting from, for display by sp_who.
1 B; s1 ~9 { I - ; Default: none
6 I6 {3 M5 K; X& f6 \ - ;sybct.hostname=
; i: V+ }( b" o8 m. J j& c - ; s7 x) C% ]- f% z2 F K- C) o
- ; Allows you to define how often deadlocks are to be retried. -1 means "forever".) w/ A1 @5 ^5 M! K/ z! m
- ; Default: 0' O+ t& t! P, \& o- k
- ;sybct.deadlock_retry_count=/ a! I4 M$ K$ y" Z4 v1 K: @$ L6 `7 J
- ' }) R! i# M7 O& J: C- M; \2 g0 C
- [bcmath]5 V7 B1 V( U f, R9 n, ^
- ; Number of decimal digits for all bcmath functions.
6 ~6 C. U0 Z) c. h8 y - ; http://php.net/bcmath.scale/ a2 S* y7 O9 N+ F' V
- bcmath.scale = 0& J, {. J9 W7 f
- . Q5 C. H1 F6 C6 ~* y
- [browscap]
j% `$ S+ t: j% R1 J - ; http://php.net/browscap8 H( ^" \8 ?9 l
- ;browscap = extra/browscap.ini' Y# J: T3 N$ M" ~ ^
- - d4 n% k6 r$ e4 n* O
- [Session]
: w4 z) `: `* P: S# b+ | - ; Handler used to store/retrieve data.1 }* l9 A# }6 s* O
- ; http://php.net/session.save-handler
. c2 V9 G; F0 o. k& v" W& ]/ B8 I - session.save_handler = files
+ @5 s: s' `4 L5 e G4 |4 M# ` - 5 b! ]6 s: Y* m$ {5 X' ^
- ; Argument passed to save_handler. In the case of files, this is the path5 s4 K8 i" o8 |% x! O& Z# k
- ; where data files are stored. Note: Windows users have to change this9 _- Q- \4 G+ y9 ^) C- o$ p; t
- ; variable in order to use PHP's session functions./ ~( a# \/ a# p6 x
- ;1 x& A; Y+ @ G: @; [- ^/ J
- ; The path can be defined as:
9 p- h$ Y) z0 M* D Q* L9 A - ;
1 |% X$ z8 u8 V; j - ; session.save_path = "N;/path"
/ _$ a8 }- { _% s1 d9 y I9 j - ;
9 ? s' \' k( z% }) } |& @. d - ; where N is an integer. Instead of storing all the session files in( j3 ]8 { |( V- j# H4 A- [. P# b
- ; /path, what this will do is use subdirectories N-levels deep, and: c- Y, g" Z4 L# `3 T9 w
- ; store the session data in those directories. This is useful if3 Z" Z" f* \. ^$ J! B: }
- ; your OS has problems with many files in one directory, and is
. }; v, }/ r8 Z7 _3 I9 K( [+ ^) A - ; a more efficient layout for servers that handle many sessions.( j$ `9 z" B7 z; H
- ;+ `3 k6 z/ x- `) o6 B4 Z/ ^
- ; NOTE 1: PHP will not create this directory structure automatically.
' y5 G' h7 H* H& R/ d* K. s - ; You can use the script in the ext/session dir for that purpose.
# t) D5 \& d& F% I - ; NOTE 2: See the section on garbage collection below if you choose to' I3 F9 i3 t1 f7 [& o I
- ; use subdirectories for session storage
$ O7 r; x' M/ D - ;, F. r8 i5 I. A, l3 y' s/ P
- ; The file storage module creates files using mode 600 by default.
/ E" `) b" A. c U7 U% a6 H- L - ; You can change that by using
( U/ m# |6 a- H. V+ C/ J - ;, C. a: j3 g) r
- ; session.save_path = "N;MODE;/path"
2 i- Q- \) i6 a, R* S - ;
3 Q2 g8 ~+ k0 W - ; where MODE is the octal representation of the mode. Note that this4 ^0 A& H0 j/ P3 x5 F r
- ; does not overwrite the process's umask., J1 G& x" D) ~+ O; s
- ; http://php.net/session.save-path
1 S. V4 w5 _9 v L7 h - ;session.save_path = "/tmp"8 ]2 U- j) v- J" D& u
' Q5 X; q7 W' b- ?- ; Whether to use strict session mode.
, K5 x% u( e- ^8 a% g- L - ; Strict session mode does not accept uninitialized session ID and regenerate
! p9 a/ F3 C, }; P - ; session ID if browser sends uninitialized session ID. Strict mode protects
" W ~ C3 m# I% F - ; applications from session fixation via session adoption vulnerability. It is4 J9 ]0 w/ J2 F# i/ q
- ; disabled by default for maximum compatibility, but enabling it is encouraged.; Y& D9 C" V/ y6 U! p
- ; https://wiki.php.net/rfc/strict_sessions
3 e. V! v$ U' t% m - session.use_strict_mode = 08 e: ^2 e* ^# O. t) F3 |
- 4 o( N7 r6 `% J X" J6 \
- ; Whether to use cookies.0 B# p1 G+ ?+ W, M9 \( T# ~/ d
- ; http://php.net/session.use-cookies
2 N$ i' N' b& F# n& a$ I+ {/ m - session.use_cookies = 1
" {( G" z1 c0 l+ @4 W' R: q# | - $ O V& H4 A( t+ Y% V, i. ^+ G
- ; http://php.net/session.cookie-secure+ q; d7 T1 H$ L1 F
- ;session.cookie_secure =
1 f' [! S3 B* o- Q* D - / x& z+ d5 O4 G2 K) B) P. D* w
- ; This option forces PHP to fetch and use a cookie for storing and maintaining
" l( E! o" M o) ^' o" q - ; the session id. We encourage this operation as it's very helpful in combating; _- x" D- x0 v0 B" M
- ; session hijacking when not specifying and managing your own session id. It is2 {- ]+ {- t% V5 G6 \. |1 q
- ; not the be-all and end-all of session hijacking defense, but it's a good start.
5 p0 S/ Y8 c7 i w3 b2 `1 c9 {- ~ - ; http://php.net/session.use-only-cookies
" |0 u, {6 o& n% a- g2 q - session.use_only_cookies = 1* B2 o- ^* Y1 v m% v2 k
2 e- f1 z. e7 ]/ d$ F' _( O- ; Name of the session (used as cookie name).7 S0 N/ f# L% \" x- x
- ; http://php.net/session.name \8 n& T6 `! d( G
- session.name = PHPSESSID$ S- P: I% d0 |! I, M; o7 t7 M
- * F- `: I( q Z! c Q; h
- ; Initialize session on request startup.
" q4 a: h" Q G0 ^% H - ; http://php.net/session.auto-start
9 M3 ^; f: u8 w% D) Z( M! j - session.auto_start = 0& L g2 {) I7 W. ]5 y' C `! q+ C
- . [$ X- q! w( o% B' k( H3 [
- ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
" O8 }/ W j5 p - ; http://php.net/session.cookie-lifetime o) v6 c) @( X9 O
- session.cookie_lifetime = 0
1 O% T) S. q* g" C/ g# s6 ^
* x+ l8 f7 @9 f* R- ; The path for which the cookie is valid.
" F- W! ^4 f; ?; Z6 Y - ; http://php.net/session.cookie-path
# U, c3 y3 G: s% x/ E7 M+ i - session.cookie_path = /
. K& T6 \7 {( m2 u: y3 B
5 z$ P( I+ e' e& n, s* r- ; The domain for which the cookie is valid.
9 {' t f( T; F6 } - ; http://php.net/session.cookie-domain; l/ q1 G$ F& {4 _! v
- session.cookie_domain =
+ k/ b% N/ L' |- ]; @4 z
1 \1 H6 n" ~# a. ~ N- ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.6 `7 Z2 N. O, @: b
- ; http://php.net/session.cookie-httponly
6 e! C) L, ]& B( Q* O - session.cookie_httponly =1 F% M- a4 q: z9 ?
- 9 ]8 |8 j" g1 u( I5 t8 }! O+ @" h
- ; Handler used to serialize data. php is the standard serializer of PHP.: ^7 x# g5 `2 h4 I2 z A
- ; http://php.net/session.serialize-handler) `/ J$ B/ Z3 t/ x6 }" [1 G
- session.serialize_handler = php! F# G( a. K9 L8 L& F: p
- : f9 x: f; r/ O' C' k3 E& h
- ; Defines the probability that the 'garbage collection' process is started a; _. H8 Y# ^$ s; t2 \( u" i& X
- ; on every session initialization. The probability is calculated by using
# T' h9 W' A% o0 @9 O - ; gc_probability/gc_divisor. Where session.gc_probability is the numerator8 J% D2 O2 ^8 k3 |0 V) h& |" \
- ; and gc_divisor is the denominator in the equation. Setting this value to 1) a$ ]: A$ G$ K0 N8 Y
- ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
% {; U8 _8 F% i, V+ `; V - ; the gc will run on any give request.
' V0 |3 ^, x% b$ ^5 ^ - ; Default Value: 1# A& D1 J) K+ N- _: k- e* D
- ; Development Value: 1
' t5 t6 b: q; d) E4 C& ?: M - ; Production Value: 1. ~8 O7 X% }# A% ~0 N1 p) l6 u
- ; http://php.net/session.gc-probability
! m; t, Q+ P Z - session.gc_probability = 1$ ~( M+ T2 S! n# \( W# @6 s4 o5 |' B
n4 u# i+ x9 D, C& [3 e% c- ; Defines the probability that the 'garbage collection' process is started on every
- U5 f: L4 |6 @6 B6 B! F! F - ; session initialization. The probability is calculated by using the following equation:4 F7 b6 K) D P/ B9 w
- ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
4 h! R9 O( R' r) h5 p1 @( l - ; session.gc_divisor is the denominator in the equation. Setting this value to 1; B; ~2 o3 H5 q4 o0 ^; Q: X
- ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
a3 g- d3 R+ `! R+ q5 N - ; the gc will run on any give request. Increasing this value to 1000 will give you
9 G v9 P1 Q3 C/ ~' U - ; a 0.1% chance the gc will run on any give request. For high volume production servers,( Y; B- s6 C/ \# Z! Z
- ; this is a more efficient approach.
: d' g V9 d+ l8 s - ; Default Value: 100) d0 a9 Y: D# ~- [+ R8 C5 b
- ; Development Value: 1000
& O, ?; M% P* X - ; Production Value: 1000
6 ~ ?& m! V K3 D9 `7 @* a' x - ; http://php.net/session.gc-divisor* D" E: n' d+ w# j* B/ X
- session.gc_divisor = 1000" T" ?' W) v3 }/ _
- + Z, q" y+ X) x
- ; After this number of seconds, stored data will be seen as 'garbage' and
8 W0 t! t( I6 Z7 [) n( g+ h - ; cleaned up by the garbage collection process.+ _+ _( T6 f3 p+ ^/ H+ `) J O
- ; http://php.net/session.gc-maxlifetime7 z) t {/ Z9 s) }2 w' A7 ]8 j, W- F
- session.gc_maxlifetime = 1440
, d( W3 w) @8 @1 ^# D( q: { - ! }/ W7 [8 L9 r# y+ c0 i2 q2 M5 u
- ; NOTE: If you are using the subdirectory option for storing session files( y; n8 Q& F" T r* v \
- ; (see session.save_path above), then garbage collection does *not*, T' w2 r% u* I# K
- ; happen automatically. You will need to do your own garbage
, C, r3 d4 H9 d/ d* p" I' w - ; collection through a shell script, cron entry, or some other method.
" T7 r: L. i; q$ R. B8 k - ; For example, the following script would is the equivalent of
% K, S* A0 p) {: q/ T% o - ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
9 Z) m- l4 C: i) s4 ] - ; find /path/to/sessions -cmin +24 -type f | xargs rm
: ^& H: D+ F3 _3 [' Y u! L- p - 6 d; O5 e; K( N/ E, R2 q2 m
- ; Check HTTP Referer to invalidate externally stored URLs containing ids.
- F" R1 u( {; W- B. Q! u1 U - ; HTTP_REFERER has to contain this substring for the session to be
4 ^. Q1 f6 s& T1 s! c - ; considered as valid.3 }; v# E# W2 n3 v3 k7 _
- ; http://php.net/session.referer-check8 W3 G2 s& W: X7 R- Z X& j
- session.referer_check =# b6 d7 y; \- o3 F- }: ?
( p4 M* o; g1 w0 H" z- ; How many bytes to read from the file.
: ^" u) D. @% H& v+ S' g - ; http://php.net/session.entropy-length: o; M( C b' ~5 Q! e
- ;session.entropy_length = 32
; o# W" r( g8 F% _3 k; U6 s# D - - L% {. @+ ^7 r& P' b+ a: U
- ; Specified here to create the session id.6 N4 H- ?1 x; p# t4 U$ W
- ; http://php.net/session.entropy-file' Y0 q+ s3 j9 \. e! K0 c
- ; Defaults to /dev/urandom
7 u; J# x' q8 b5 Q% K( l: W - ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom, i" v/ }5 H* H/ _
- ; If neither are found at compile time, the default is no entropy file.
' L# c W# X1 e/ {% p2 I: d8 [+ | - ; On windows, setting the entropy_length setting will activate the; |7 U4 W! C! c
- ; Windows random source (using the CryptoAPI)6 T. i0 \1 O" C2 C& @9 U% G
- ;session.entropy_file = /dev/urandom
, @% g9 O: m' R# x
* x& L9 E6 A- y- ; Set to {nocache,private,public,} to determine HTTP caching aspects$ d2 k# h3 J- x1 w2 g5 s) o2 A
- ; or leave this empty to avoid sending anti-caching headers.
, |" `8 l$ Y/ ?, w6 \: v1 B - ; http://php.net/session.cache-limiter3 E& {5 A2 n0 \) n1 M# E$ y
- session.cache_limiter = nocache! f9 F8 U7 e# y S6 g8 @6 U
% N! O3 u9 w9 w% }6 E- ; Document expires after n minutes.
7 P7 I, x, ?3 B2 [# g7 W3 n* C. K - ; http://php.net/session.cache-expire- j `4 Y5 g C& \1 Q8 ^
- session.cache_expire = 180
0 s8 c8 M+ K. c$ P% X, d1 k - 0 B* L, T! c: n( p2 ~ d
- ; trans sid support is disabled by default.
" g; I( d+ O6 }, V - ; Use of trans sid may risk your users' security.
; B- G' x6 O4 \" V7 H, \6 z2 T - ; Use this option with caution.
( x M6 Q. r7 n. V - ; - User may send URL contains active session ID
1 q3 X3 W! {+ g+ ` - ; to other person via. email/irc/etc.
3 p* l, l. ~- `# \4 S1 S+ J - ; - URL that contains active session ID may be stored
$ ~0 h+ k" m; R. B - ; in publicly accessible computer.8 ~+ \! P }0 H$ t2 c7 [' y+ E
- ; - User may access your site with the same session ID7 {7 B) {& i- T% u$ u
- ; always using URL stored in browser's history or bookmarks.
" e- o1 r3 w( p$ D+ @ - ; http://php.net/session.use-trans-sid& Q. o1 S3 {$ d- k# s! |$ F
- session.use_trans_sid = 0
( X S" k$ g7 d- K/ I$ j
$ y& |$ G3 P, B' K8 w' Q- ; Select a hash function for use in generating session ids.( P; F" f$ ^( {# _: A
- ; Possible Values1 @3 f4 b' ^* S# Y- q
- ; 0 (MD5 128 bits)" O G( t" K+ f
- ; 1 (SHA-1 160 bits)
) h9 R/ B2 J0 P" M0 X, T4 } - ; This option may also be set to the name of any hash function supported by. A9 C/ W: p, u6 {, g/ U, y
- ; the hash extension. A list of available hashes is returned by the hash_algos()
3 m1 Z' @4 }. f; g+ R - ; function.
5 G% t% S/ x5 d% H* w9 ], a a - ; http://php.net/session.hash-function1 n4 \3 _, x7 Z6 v
- session.hash_function = 03 k1 @8 X0 i- o
- . o k) Z0 K9 g
- ; Define how many bits are stored in each character when converting
+ i, _3 i6 ^! d% i8 t$ y; z7 k - ; the binary hash data to something readable.0 |1 R0 q* x) L7 | r
- ; Possible values:
- b# N: A& k; D; b o/ { - ; 4 (4 bits: 0-9, a-f)
) g& l6 j1 N% s) ^' @+ O+ } - ; 5 (5 bits: 0-9, a-v)
# j3 l+ u! L4 _$ Z$ {3 [7 L - ; 6 (6 bits: 0-9, a-z, A-Z, "-", ","). O+ o0 z1 ^/ r/ l6 B
- ; Default Value: 4
- d* B- V- v2 a - ; Development Value: 5
% u' R+ n" B; m( m. `# F - ; Production Value: 5
$ N$ U1 Z! S) H0 ]5 b' Y' a - ; http://php.net/session.hash-bits-per-character- \6 Z! s( f" G1 h; o; t* O- i
- session.hash_bits_per_character = 5
3 g F: c' T" T8 F5 p0 C4 r! f2 M% ~ - # |. v3 D$ w/ q
- ; The URL rewriter will look for URLs in a defined set of HTML tags.
" Z5 d3 H, k; S- \& h - ; form/fieldset are special; if you include them here, the rewriter will, o+ L# Y2 B) c, x. {. L
- ; add a hidden <input> field with the info which is otherwise appended) M3 G- @: K( w9 O! W& l9 l0 Y0 B1 C ^
- ; to URLs. If you want XHTML conformity, remove the form entry.
7 {* j; h1 M3 _1 A) n0 T - ; Note that all valid entries require a "=", even if no value follows." s9 m6 k) A u+ ]) g
- ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
5 c- v5 O1 [1 f - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"0 P! P+ r3 b m$ N
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"& `% ? ^7 X2 E `2 }, t
- ; http://php.net/url-rewriter.tags; k3 N$ O, \9 O* f1 V h
- url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"& F `5 ^+ ^8 X6 Z
- 4 T' p3 U8 N6 L0 g* k% Z
- ; Enable upload progress tracking in $_SESSION
1 L! m2 q$ r2 h3 M M - ; Default Value: On
" n1 i; E' {/ O# L0 | J, k# ] - ; Development Value: On
( I) X2 }. h; V' D% U5 Q% X - ; Production Value: On [& P) G' b J: O3 w
- ; http://php.net/session.upload-progress.enabled
) Y' P/ d7 K: e g5 m; h( | - ;session.upload_progress.enabled = On( E4 W! Q8 D8 [" j
- $ u0 e. D2 j$ M7 C6 o% t2 n
- ; Cleanup the progress information as soon as all POST data has been read
% b& k0 ^0 J3 U8 u8 W4 e. _ - ; (i.e. upload completed).
6 ~' s& p9 @5 X& Z6 B - ; Default Value: On
5 Q* \% J6 O' D6 p. g, |2 E, ]0 j5 q - ; Development Value: On/ d1 Y6 T+ B" R4 i! e: f% q7 o0 u( {
- ; Production Value: On
5 d& s7 @* h7 l - ; http://php.net/session.upload-progress.cleanup6 I, ]; J( c/ ?0 ?& l/ x9 l5 w! }9 ]) Y
- ;session.upload_progress.cleanup = On2 C1 d: f1 p: Y, C8 M" S
; z' `$ `1 x6 K! A* t% s% o( v+ z* R- ; A prefix used for the upload progress key in $_SESSION/ F- Q" e* |. e, }; Q) D4 G
- ; Default Value: "upload_progress_"
/ f, j9 M: j" A) G/ V5 W3 } - ; Development Value: "upload_progress_"! O8 _/ p( ?; j( C4 K1 i* {
- ; Production Value: "upload_progress_"( p8 \+ ^6 v: s; o
- ; http://php.net/session.upload-progress.prefix
0 t' L: k" b0 g1 T$ i - ;session.upload_progress.prefix = "upload_progress_"; [, q5 }' ?# n5 Z, s
& C1 |1 s* S, c# ^5 _- V4 x- ; The index name (concatenated with the prefix) in $_SESSION
/ r* N) W( P( R: d - ; containing the upload progress information2 \8 ~# v7 D8 | A5 B( j( ?
- ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"
* [* u# D* i7 M& K- J - ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"8 J2 O) s' a' `7 K( O5 C
- ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS"
! S( n3 ^. b2 l3 r- g - ; http://php.net/session.upload-progress.name' S' j, I# \0 b& G: {
- ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"1 Z' l2 U4 C. X7 Y& e! m
- ( s) h8 h. S) E; D6 e1 U1 `
- ; How frequently the upload progress should be updated.( h% C7 l2 e/ H8 o% @) N) C
- ; Given either in percentages (per-file), or in bytes
2 e2 K. x- C" y - ; Default Value: "1%"5 S' v7 g p. l0 \& j1 v1 _
- ; Development Value: "1%"3 @1 J0 l" u/ z+ f
- ; Production Value: "1%"( ^5 |7 g! `- f5 A) W1 p' o' {. ^5 p
- ; http://php.net/session.upload-progress.freq+ D. q) @8 I) t! T
- ;session.upload_progress.freq = "1%"
% ?, D5 n3 _9 i) Y" q
* R+ L% z6 p) K; Y0 s) D/ z- ; The minimum delay between updates, in seconds& A# _* D; B. ]4 j- g! J' V6 F: V
- ; Default Value: 1. y) j3 B* a, |
- ; Development Value: 1! y) V& }3 [+ z V- j
- ; Production Value: 19 v5 [) q3 [- v/ O
- ; http://php.net/session.upload-progress.min-freq7 }0 s1 N) [4 H: e4 A0 x
- ;session.upload_progress.min_freq = "1"0 K0 d: t) t, K% ~, Z
7 T, a0 ]5 {. o3 z2 x M! n& G- [MSSQL]# m2 W @! @. Z- S" Q
- ; Allow or prevent persistent links.
, p( ~" S/ r3 [$ R( G7 ?. ]. w W# Y - mssql.allow_persistent = On
, c8 u4 f1 b8 _ I - . K) S; h; }/ H. I k
- ; Maximum number of persistent links. -1 means no limit.8 j9 ?* Z. X3 U' o: Y3 x* J9 M q
- mssql.max_persistent = -1
- M1 C; X. J& z; w7 s7 {$ n - $ k) J# h: s* }8 x* H* R4 l
- ; Maximum number of links (persistent+non persistent). -1 means no limit.
9 X- J2 B5 R( R - mssql.max_links = -1
% ~5 g2 e' m4 o+ M6 P. v - 7 V5 m0 T& B" U
- ; Minimum error severity to display.5 B" |$ `) |- z) @& F# \! S3 v
- mssql.min_error_severity = 10
/ i' c, P; N3 l$ A2 D9 v - & F, z6 a2 h4 v" S$ Y5 D2 J( k
- ; Minimum message severity to display.
. a/ K& k7 K% H8 K+ s4 r - mssql.min_message_severity = 10
/ C q! \+ M% o - 3 L7 ^5 D( _# \& C# f P. r
- ; Compatibility mode with old versions of PHP 3.0.
, f5 m) \) }' l) l! [* [# D. q# G - mssql.compatibility_mode = Off
' D* ?- T& i( G8 |7 T$ y5 m
# [- P y t$ u8 ^' E- ; Connect timeout1 g( K' o: z5 t: I4 ] K
- ;mssql.connect_timeout = 5
6 c" _6 C0 r7 [% B
4 V( z0 q, z, O* X* j- ; Query timeout
0 ^: l) V) }7 { - ;mssql.timeout = 60( ~1 `; { z, E$ _
- ' K7 `1 z x) P8 A
- ; Valid range 0 - 2147483647. Default = 4096.9 C) O- ?6 E( O" x8 ^/ H+ _4 c
- ;mssql.textlimit = 4096) I- V) U! p* p( d
+ O! I$ b' Q9 G5 F! t0 ]- ; Valid range 0 - 2147483647. Default = 4096.
* c7 a& C2 s' O# U - ;mssql.textsize = 4096
, Y4 N( |- ^/ t3 S2 F1 f9 {
- e/ b" u/ z6 n& e8 W- ; Limits the number of records in each batch. 0 = all records in one batch.$ G6 j5 t9 L& _" C }5 S
- ;mssql.batchsize = 06 O/ q C; _4 d3 j- l+ `% p
2 M/ C5 h1 ?. Z9 X+ {+ B4 H- ; Specify how datetime and datetim4 columns are returned
/ W: h" a$ W" P6 [7 H' ] - ; On => Returns data converted to SQL server settings" d! g* c; v% A! r k, C
- ; Off => Returns values as YYYY-MM-DD hh:mm:ss2 J$ Q& y8 |3 j
- ;mssql.datetimeconvert = On
! W5 N# X j. G' d' H
" E/ d& V7 T# {3 m; _6 c4 _+ p: ]- ; Use NT authentication when connecting to the server; ^) z! N+ x; D5 k) h0 M+ U2 y+ b! \
- mssql.secure_connection = Off9 F B# Q5 q! L
& k- Q5 L" U0 F' u: `3 E! O4 W- ; Specify max number of processes. -1 = library default
; o2 P7 _5 p/ Q1 I! N - ; msdlib defaults to 25+ f2 O4 h* R6 [$ }- {6 z/ T
- ; FreeTDS defaults to 4096
" ]# J$ ~5 b, t# O. I - ;mssql.max_procs = -1# v, c5 M( K1 F- c
4 N8 Z2 E% E$ `- ; Specify client character set.$ `* f# A) g x6 q- t9 H% X
- ; If empty or not set the client charset from freetds.conf is used8 R. D4 z' O+ H7 O; j+ l" H
- ; This is only used when compiled with FreeTDS
0 x, \5 i" A' ^( ^7 J; E( J5 v3 m2 W4 w - ;mssql.charset = "ISO-8859-1"" R7 V. W1 Q( i8 U. \' x" r& n
- 3 n# e# {' s9 G, ^8 S
- [Assertion]
' ^: P4 k) `; d* q - ; Assert(expr); active by default.
* d4 a$ X/ k8 f( v( c. Y4 o+ { - ; http://php.net/assert.active0 k0 x( n% @- W, \; V
- ;assert.active = On6 H/ r# S, b: [5 O
- 4 U0 e: U9 l4 b8 v) [. _5 e
- ; Issue a PHP warning for each failed assertion.
) {+ ~6 d/ ?0 \0 o- p& ]/ j - ; http://php.net/assert.warning
3 }3 O8 N3 V. G" I/ ? - ;assert.warning = On. {! @2 ?6 h" `7 Y: l
, D% U- h/ ~0 j: L( F: W- ; Don't bail out by default.
, { L+ l! A& T+ Z& S! k3 c$ w - ; http://php.net/assert.bail
9 I- [$ j; p& B" g; ~# b, A5 Z - ;assert.bail = Off
/ B; I8 T+ J8 X" f - 3 j4 S' \8 o& F U- g0 P V
- ; User-function to be called if an assertion fails.6 b E3 `2 o' Y
- ; http://php.net/assert.callback i# o: }9 x2 G+ A/ ^
- ;assert.callback = 0+ B' L$ w& a% B" T7 j8 H5 H
; ^) o% h5 ~' ~4 g- ; Eval the expression with current error_reporting(). Set to true if you want: w5 m( `, O& }( i/ Q
- ; error_reporting(0) around the eval().
2 v6 S+ G3 q) Z) w - ; http://php.net/assert.quiet-eval
2 {+ T/ B- O2 s, ?1 d - ;assert.quiet_eval = 0( H4 B: ]% u/ \: \ z! i- S+ `
- " ]$ e3 f: u# ~; U. d
- [COM]+ F, ~/ B9 r, `6 F8 s# |5 s* P5 G4 f
- ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs1 V; f5 `8 w) O. Z5 ` _# W
- ; http://php.net/com.typelib-file
; ]* a/ {( v7 q0 ~) I1 W - ;com.typelib_file =8 y3 h3 r1 k9 h5 \0 P7 M
- " g# X% C* r- y7 C3 X: n
- ; allow Distributed-COM calls
& k& [* E8 F1 u# {3 Y - ; http://php.net/com.allow-dcom6 X. h3 m) K+ V6 I4 F! E* Q7 X
- ;com.allow_dcom = true) f$ n, l8 k5 W& M! t. x# W
( \8 @$ P5 O, X5 `8 F" P5 p3 ^- ; autoregister constants of a components typlib on com_load()
5 }' }2 I2 ~' J( S' T - ; http://php.net/com.autoregister-typelib) p$ R& i a8 O
- ;com.autoregister_typelib = true- E" V1 r/ i8 ?& b% b
- 8 q M. w1 U3 k! T5 x
- ; register constants casesensitive& p j* F6 D! a+ d: O' G+ `
- ; http://php.net/com.autoregister-casesensitive
) n* M" k9 ? b' G( X* x* W. o6 b - ;com.autoregister_casesensitive = false' o0 A- J, \) \0 l; M F' i4 ?5 t
- 2 `$ a, e) `6 d
- ; show warnings on duplicate constant registrations. W. }& ], }' ~
- ; http://php.net/com.autoregister-verbose7 d f' o9 l' X! r, z" Y
- ;com.autoregister_verbose = true" V n8 J( t& b% D+ R. d6 K+ C
( o8 D0 T7 I4 q3 G4 m% @: X0 W- ; The default character set code-page to use when passing strings to and from COM objects.
9 @# W1 b& L" M9 _+ f4 E x - ; Default: system ANSI code page) t3 Q* R& h, j/ x6 J
- ;com.code_page=
, N# A2 h% }! i6 E- E
- R- O( {% j' r! ^# Q2 \- [mbstring]
. t4 e% y: e7 {6 D& Z E - ; language for internal character representation.
: L( B$ C7 I) B3 ^ - ; This affects mb_send_mail() and mbstrig.detect_order.) S2 z; S/ K7 I
- ; http://php.net/mbstring.language6 I5 R, P3 w- e
- ;mbstring.language = Japanese
1 M, q8 r( I* F1 U3 ^
9 x _ ?* S! f6 g+ M- Z1 }: N/ G- ; Use of this INI entry is deprecated, use global internal_encoding instead.
. p _2 |% U; ]! Q/ T - ; internal/script encoding.
6 T$ X4 h0 d9 N0 V& _& Q - ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
& S k1 A- J) L0 D: H& k! O' Z - ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
$ Z" G+ _1 U! d. e! Y. R7 A - ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
& N; l6 o4 e3 E2 ^9 a4 ~/ x - ;mbstring.internal_encoding =
* i8 y- k. J6 g8 ]5 h4 Q3 T
7 m6 J) c( `4 u- [# n- ; Use of this INI entry is deprecated, use global input_encoding instead.
; |+ S0 W, Q' } - ; http input encoding.
/ ?2 s) r" ~8 q8 c/ t5 n" k - ; mbstring.encoding_traslation = On is needed to use this setting.' y& ]8 g+ K! W4 m3 N$ Z/ @6 @" z
- ; If empty, default_charset or input_encoding or mbstring.input is used.% N9 M4 k+ J- @* X. P9 d" o! o
- ; The precedence is: default_charset < intput_encoding < mbsting.http_input: }- `" K8 K3 T4 y* i: u" }* x
- ; http://php.net/mbstring.http-input4 t" m! b0 g5 C+ ^, E, L, t8 y
- ;mbstring.http_input =
0 \8 @, ~8 x. z8 e; a
, f& c' l* Z5 }( l! ?4 j- ; Use of this INI entry is deprecated, use global output_encoding instead./ \9 V; ?4 U3 a1 c
- ; http output encoding.0 {$ f- x- S3 v, j" r
- ; mb_output_handler must be registered as output buffer to function.
& O" a6 W2 n0 j - ; If empty, default_charset or output_encoding or mbstring.http_output is used.1 W8 W6 |/ r" a- @* r8 Z5 `
- ; The precedence is: default_charset < output_encoding < mbstring.http_output, u, c$ H+ M1 F( I7 U: Y) ]- k; E
- ; To use an output encoding conversion, mbstring's output handler must be set* A6 P! ~- K* ~/ `8 }% R2 e
- ; otherwise output encoding conversion cannot be performed.2 P4 q- \1 T3 R+ Y* f' w
- ; http://php.net/mbstring.http-output
5 L% e. d* @0 b/ h) z! x7 l: o9 P - ;mbstring.http_output =
# J6 ^# q. Y: D. h
6 d: _) a9 r J( \1 h9 f% @- ; enable automatic encoding translation according to
& h1 \( l1 t3 _ - ; mbstring.internal_encoding setting. Input chars are D' I6 a: h% J8 w& |4 `1 ?# F4 T
- ; converted to internal encoding by setting this to On.
, B: f; H% T! ]# @! p; Y - ; Note: Do _not_ use automatic encoding translation for* S$ X$ `0 P0 r+ Y( j
- ; portable libs/applications.
# v$ k6 K, L- L) P/ C, W - ; http://php.net/mbstring.encoding-translation
$ }8 {! Y% J# M5 Y9 D; N! N - ;mbstring.encoding_translation = Off* T% G) h+ e3 ^7 C7 Y3 J4 |
- ' q; K c3 A. t6 h9 J3 q4 T
- ; automatic encoding detection order.4 _, c) c# l. y) m8 c: O3 Y
- ; "auto" detect order is changed according to mbstring.language! Y5 D( E9 n9 A4 N3 j& @
- ; http://php.net/mbstring.detect-order
N) }( S$ S c - ;mbstring.detect_order = auto3 R% `* q' [/ [9 j; L1 S
- 1 V w8 \! p g
- ; substitute_character used when character cannot be converted
) }) a! w6 ~ [ - ; one from another
8 O5 K+ p2 K2 R% M' Q* O! K - ; http://php.net/mbstring.substitute-character
4 R" S/ [/ C, p8 ~ - ;mbstring.substitute_character = none6 b y9 @, v+ b' d% N/ b) ~
- / `$ K2 S( g( k
- ; overload(replace) single byte functions by mbstring functions.
6 y! \, b, ^! ]8 F6 m - ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
" o7 A# `% \% M' L- \' B2 p - ; etc. Possible values are 0,1,2,4 or combination of them.: s) E" Y3 Q; b" F" G8 j7 r
- ; For example, 7 for overload everything." b' y3 s; ]$ @7 V7 k
- ; 0: No overload$ _3 l* |8 I. m1 w
- ; 1: Overload mail() function* ]/ S4 {1 l/ S, i5 C3 Y! c5 S
- ; 2: Overload str*() functions
& T# u1 ?6 b: J9 X& S' _ - ; 4: Overload ereg*() functions+ B) y0 C z5 Y+ z! ?; Z# b- `
- ; http://php.net/mbstring.func-overload
_! }; }9 @0 h5 A3 n' d - ;mbstring.func_overload = 0
9 z; @" E4 W3 ~: a2 j
0 O1 p, b2 r2 ?- i# v- ; enable strict encoding detection.
U. ?# h: Z& ? N1 @& N - ; Default: Off1 m w% B' B h5 _
- ;mbstring.strict_detection = On
; Z, t9 B8 s2 p& p
* x# R5 L1 l5 s6 d: {8 g! V- ; This directive specifies the regex pattern of content types for which mb_output_handler()& ]7 V" m9 F- p7 L) W
- ; is activated.
0 T: D0 q- [4 l$ Y - ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
. s, Q/ x& G* i3 A: `2 w9 A3 a - ;mbstring.http_output_conv_mimetype=
) g4 x6 I6 j |- }8 \, O' @1 Y
0 f5 K% P+ J) N+ j2 x Q+ R- [gd]
6 c) l! v8 M0 V) e& [ - ; Tell the jpeg decode to ignore warnings and try to create3 _* J- q1 f. J, w) j) M
- ; a gd image. The warning will then be displayed as notices
# C1 L2 A; S, ~ - ; disabled by default- |' J( g3 P+ k, N/ k
- ; http://php.net/gd.jpeg-ignore-warning% R/ I+ R" b* d- a
- ;gd.jpeg_ignore_warning = 0/ C3 q) d+ I# M& j) Y1 r
: U7 @$ m) Q _5 m% D( R- [exif]
; g" F* C# R; n U- a - ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
: q9 w2 N+ k/ X* }' J/ H" n5 ~ - ; With mbstring support this will automatically be converted into the encoding, r# z% O m& B2 y8 i) x$ f) i m# f
- ; given by corresponding encode setting. When empty mbstring.internal_encoding
/ i D1 Z( p: s( T/ o- J - ; is used. For the decode settings you can distinguish between motorola and
1 z5 N- x: A$ B, w3 Y - ; intel byte order. A decode setting cannot be empty.
+ j# D. @, X$ Y' }6 m7 c9 H - ; http://php.net/exif.encode-unicode
) M4 ]" G4 i% X& n/ c( W8 N - ;exif.encode_unicode = ISO-8859-15
8 z1 p* {6 m+ c4 ?( T1 T
' ?" ^6 c7 \- d0 L( k- ; http://php.net/exif.decode-unicode-motorola
- J+ V- C4 s& m' Y+ S) _5 N - ;exif.decode_unicode_motorola = UCS-2BE
- D6 W% f+ t) w) i1 H- ^6 ?4 M' P - : b( i; N9 U" m8 K
- ; http://php.net/exif.decode-unicode-intel
% e, ]) Q/ Z+ k, L! N& ^ - ;exif.decode_unicode_intel = UCS-2LE
% D( N" K) Q5 F2 _ - . x4 ^# i* I u4 D, U4 q
- ; http://php.net/exif.encode-jis
6 r- d# q8 D) D# E: j7 ~ - ;exif.encode_jis =% P- G D4 L9 c" U) ~ J) y# `0 m
, h* R6 V* v' r/ t/ M$ }- ; http://php.net/exif.decode-jis-motorola
2 y3 X/ `% Y, U9 R - ;exif.decode_jis_motorola = JIS
: a- f) ` y6 u- {9 }7 V# X! l. X - # k4 ~6 M# p4 h3 _) t3 N4 p
- ; http://php.net/exif.decode-jis-intel4 a" E) K& v$ M! A( E C9 @
- ;exif.decode_jis_intel = JIS
- @8 m) J& g. \% @
7 ?! b c( C; d& h2 b: e- [Tidy]
: y5 a9 T- }7 ^+ m- W - ; The path to a default tidy configuration file to use when using tidy
' w; e, h8 O0 q% D - ; http://php.net/tidy.default-config
G3 j; ?) v( e" \4 s! f9 C: T- \ - ;tidy.default_config = /usr/local/lib/php/default.tcfg
& n% k( j3 g# Q; K6 t6 e
5 M6 j" f9 T, M4 R8 K$ y s) @5 Q- ; Should tidy clean and repair output automatically?
4 V- d5 L) W2 n, `' Y+ @/ @ - ; WARNING: Do not use this option if you are generating non-html content
0 R' H" }5 ?0 \1 L1 E2 C - ; such as dynamic images0 S" ~5 n. `( l3 H
- ; http://php.net/tidy.clean-output
5 e+ x, r9 c2 P- z) F - tidy.clean_output = Off
! ?( }; `4 r1 q O
1 r8 m% T1 @! ]# `/ e- [soap]6 e3 E; b) c. u' D+ \) R" I" J. U) A
- ; Enables or disables WSDL caching feature.
$ C3 ^+ V [+ B1 L" E - ; http://php.net/soap.wsdl-cache-enabled
+ t7 a ~' [9 I8 ~1 C# h0 U; ^ - soap.wsdl_cache_enabled=1
a1 b8 s! M5 T! ]1 X9 c; N
. {. p: `6 c: j# ]) E! v- ; Sets the directory name where SOAP extension will put cache files., i; v$ n. J6 Z( D4 L) G
- ; http://php.net/soap.wsdl-cache-dir* I% V4 a' _- t2 F8 T8 \7 A$ J
- soap.wsdl_cache_dir="/tmp"7 {6 h& u# m$ `3 K
7 P5 s$ D& F% Q0 e; S! x# d- ; (time to live) Sets the number of second while cached file will be used
$ y/ @ B" u. s# k( I3 z - ; instead of original one.
$ W; k, q' C2 b - ; http://php.net/soap.wsdl-cache-ttl0 T7 k2 d2 r, ~3 w. r
- soap.wsdl_cache_ttl=86400, M* {1 O1 j: p2 n' N
- : O; X; x8 a {; y# x
- ; Sets the size of the cache limit. (Max. number of WSDL files to cache)
! m9 ?) U q; s# R' e) d# A$ u - soap.wsdl_cache_limit = 5
% F/ L2 a; ?$ a/ F! a( [
9 W6 j# @: e2 | G: `2 y3 T- [sysvshm]
* l- d% |, u' ~4 t4 L - ; A default size of the shared memory segment% V- G) \+ Q* X
- ;sysvshm.init_mem = 10000
3 X/ u f) k' D6 z! y ]. F
4 `3 C# e$ b& X- Q( M4 E& Y- [ldap]# o) h& a- m" W" E& k) G0 h
- ; Sets the maximum number of open links or -1 for unlimited.
0 h' S$ F9 Q& \# T - ldap.max_links = -1
z* F7 i9 w* m% l' d8 I- t% e
$ ?/ e. X) K. k+ @- [mcrypt]( }/ {$ z% s8 b# s) q8 ?
- ; For more information about mcrypt settings see http://php.net/mcrypt-module-open) \) E. G& J/ Q
" _0 `' b! @: S1 N+ l- ; Directory where to load mcrypt algorithms' ]/ J5 ^+ \* m; c4 d
- ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
: Z$ `: u( M% ?! `" m - ;mcrypt.algorithms_dir=
7 _! z- z0 g) t1 J5 n
: t( b; G4 M) u" Q* B* p* p6 B- ; Directory where to load mcrypt modes4 s2 l8 O, {$ }$ y2 O
- ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
! Q) y2 j' E7 V4 h) `+ U% x - ;mcrypt.modes_dir=5 T9 g* a& Q- V( _$ v& w# O
- 2 m- B5 @! k: x! a& F
- [dba]0 b) N. u$ y9 \
- ;dba.default_handler=
- V$ f2 G$ {* \/ b. n W& a+ r
. r* x x/ K9 B# T* J( h- [opcache]4 A- |3 F+ u; u6 X) |1 D! Y
- ; Determines if Zend OPCache is enabled7 R1 ~& N- F- Y, b$ m
- ;opcache.enable=0& e& W& w% K) ^8 ^0 O( N9 F( m' F" H) {
- / @6 \+ Y! g1 @; |$ |$ j) E
- ; Determines if Zend OPCache is enabled for the CLI version of PHP) S+ I, p& G% d, p+ V0 w( B9 Q, ]
- ;opcache.enable_cli=0( A5 Y- n2 h- {; Y/ {; o
, S4 f3 |9 Q8 z. x" u- ; The OPcache shared memory storage size.
5 ?; |3 b* ~4 F1 x3 T* {, M! d - ;opcache.memory_consumption=64
7 X! B: Y9 D" G5 S. R# a- s - 2 W) |2 i4 ^) D9 D. _# A
- ; The amount of memory for interned strings in Mbytes.
% q2 q; J9 S; j/ W# i - ;opcache.interned_strings_buffer=4
+ @& p- Y; O3 j- @ - ' k% S; `3 L& I" C7 p
- ; The maximum number of keys (scripts) in the OPcache hash table.
4 x: g+ e' d. O) ` - ; Only numbers between 200 and 100000 are allowed.. V) n5 I. ^/ e2 x7 T* ]* Y8 ]( x# Q
- ;opcache.max_accelerated_files=2000
' u# X! n" Q5 U Y b& Y - - E7 \! D" J* s
- ; The maximum percentage of "wasted" memory until a restart is scheduled.% `5 e8 x) P" ^ _9 t e
- ;opcache.max_wasted_percentage=5
& q l% i" Y2 n/ R! P$ n
5 B P3 `3 j; @9 _) v& G4 n- ; When this directive is enabled, the OPcache appends the current working, z0 ^: T8 `- I" B/ P
- ; directory to the script key, thus eliminating possible collisions between
( C8 ]" k$ b) Q8 d: i - ; files with the same name (basename). Disabling the directive improves9 Q4 s4 Z; p% _' a S
- ; performance, but may break existing applications." d; i; Z' j6 y
- ;opcache.use_cwd=1
$ Y2 e' `2 g% ~0 \3 K: V; W - 8 B" e8 t/ T* C' L& ]+ U+ a$ M* u; H
- ; When disabled, you must reset the OPcache manually or restart the
5 ~# f! f! i* ^7 ^ - ; webserver for changes to the filesystem to take effect.; V" L! \0 ~- J$ Y
- ;opcache.validate_timestamps=1
" a, s* X% r2 J8 u5 l! Q. D2 _
2 Y. ]5 ]. O) l9 Z" e# {4 p- ; How often (in seconds) to check file timestamps for changes to the shared: d8 |3 q7 U) k
- ; memory storage allocation. ("1" means validate once per second, but only$ p/ N8 L) x; |
- ; once per request. "0" means always validate); R. @7 [& P# v
- ;opcache.revalidate_freq=2
" W6 ^5 ? S# g+ |5 I2 ^
0 j5 Q- k" h/ P; U* i1 z4 t$ D- ; Enables or disables file search in include_path optimization
4 y. A: v( N2 i - ;opcache.revalidate_path=0
+ h* O/ z8 F' y8 Y
1 M8 @. t! E' T- ; If disabled, all PHPDoc comments are dropped from the code to reduce the F4 o$ v) b7 \% ]6 {
- ; size of the optimized code. g# R L9 x/ A7 C6 c% o, J/ W: }
- ;opcache.save_comments=1- r1 \/ [% {! L M( P; P
K& A7 \: S) y; k1 N- ; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments") V0 @6 P1 S) g/ e/ D
- ; may be always stored (save_comments=1), but not loaded by applications
) P9 l3 m2 c8 {1 G: R/ j- u. L - ; that don't need them anyway.( I# h( B) X5 Q. U7 U: @9 @
- ;opcache.load_comments=1
8 g! i: c L1 z& y7 ~
5 U" p! y) P* [, R7 Y- ; If enabled, a fast shutdown sequence is used for the accelerated code; Q: |' x1 l& i9 j" ^- L! Q8 s
- ;opcache.fast_shutdown=0
) B+ b1 ~' c, q
$ a: `+ [. n9 w3 y+ f. q" v; U- ; Allow file existence override (file_exists, etc.) performance feature. l6 H- Z5 A9 H w
- ;opcache.enable_file_override=0
% E4 O R5 r1 O( T. n
( X1 J2 v- p. k& v4 F* R- ; A bitmask, where each bit enables or disables the appropriate OPcache) i4 b& v5 u. n+ V: ^$ v* h: v
- ; passes
' f' B* r! w+ Y& }4 { - ;opcache.optimization_level=0xffffffff
9 ~! b2 V5 n( W* i/ m1 F
& \, P- Q$ Y0 p0 @4 w- ;opcache.inherited_hack=12 @$ G3 u7 c G- s6 P4 l; C0 S
- ;opcache.dups_fix=0
& {- W, G$ ], H& q - 5 r/ h& U- j5 A* V
- ; The location of the OPcache blacklist file (wildcards allowed).3 N6 q3 T3 u; @
- ; Each OPcache blacklist file is a text file that holds the names of files& X8 G9 ^# r [" d) w/ t" P. y. @, W( r
- ; that should not be accelerated. The file format is to add each filename
. m/ B) G5 b% k9 K& z* \ - ; to a new line. The filename may be a full path or just a file prefix
, Z' T+ W* S) F! _ - ; (i.e., /var/www/x blacklists all the files and directories in /var/www
, U8 j0 g; g$ a3 K6 B& Q - ; that start with 'x'). Line starting with a ; are ignored (comments).
6 A/ F% u9 m6 |4 \6 Y - ;opcache.blacklist_filename=2 D1 ]8 _7 I/ N) F) U1 ]$ C" Z
- z5 S8 }( h) ]
- ; Allows exclusion of large files from being cached. By default all files
7 U0 s: S F/ e: H! v& k - ; are cached.
% E& M/ l- ~ m8 X* K: } - ;opcache.max_file_size=0
. |* r8 i/ _: E( Y' W - 3 V) v p+ r) \$ ^7 P8 ]# F
- ; Check the cache checksum each N requests.
: K- L) h* D9 @/ B5 d1 N. Z* q9 I! h. w - ; The default value of "0" means that the checks are disabled.
/ t% j6 C( ^" W& d - ;opcache.consistency_checks=0
& u- I# }7 B( h$ y
4 v$ q3 `0 w. F# w# I+ l( |' @- ; How long to wait (in seconds) for a scheduled restart to begin if the cache
3 W$ y/ @8 X. a7 h - ; is not being accessed.+ e& D5 f- }3 z
- ;opcache.force_restart_timeout=1809 Y" B6 k; N! s- C, z' C6 \
- ! O+ X" I' N6 d3 k
- ; OPcache error_log file name. Empty string assumes "stderr".- e; G# R" w# a! D
- ;opcache.error_log=
$ C( `) t) U( Z# f
5 ^* x: e9 L! r( k# W& r, y* Z- ; All OPcache errors go to the Web server log.
# y9 I( N# d% P; z) | - ; By default, only fatal errors (level 0) or errors (level 1) are logged.9 O/ i* o9 X* K5 @ L# I. C" ?
- ; You can also enable warnings (level 2), info messages (level 3) or
) z9 \0 M; l( H: N/ k. r3 I* I - ; debug messages (level 4).& g( w+ g1 L4 s! r! x
- ;opcache.log_verbosity_level=13 B D! m0 `. T6 \$ r$ |: A
- 6 a/ Z) X- r6 Y2 |3 d
- ; Preferred Shared Memory back-end. Leave empty and let the system decide.
$ B7 H8 w9 A5 @6 K& Q8 P- s1 l1 g - ;opcache.preferred_memory_model=
+ j) P H4 O. }. ~0 K
9 V. D6 w! p4 _3 D9 e- ; Protect the shared memory from unexpected writing during script execution.
) Y; D7 f/ e) B* L4 H J. C3 @ - ; Useful for internal debugging only.
4 t& B2 b* m; c6 r - ;opcache.protect_memory=0, G! y! R9 M7 Q; O# D
- ( }, x/ D3 L' J" j
- ; Validate cached file permissions.
6 d. q% b% v c+ F, {8 A - ; opcache.validate_permission=0- J& H- b1 `6 h. a i8 y1 ^
- + G K& R8 R7 k/ D- }9 y L( N4 T
- ; Prevent name collisions in chroot'ed environment., g5 A; G$ ~$ B
- ; opcache.validate_root=0+ S4 V5 t/ E! r% ]5 u# z
- $ E" M5 T9 ]) P3 m- O
- [curl]; t+ ]! e( y& w$ i* w! w
- ; A default value for the CURLOPT_CAINFO option. This is required to be an- p! N2 Q2 A4 [. z/ ^" M
- ; absolute path.+ _& E( d [9 i: Y8 U
- curl.cainfo = /etc/pki/tls/certs/ca-bundle.crt
]( O. d% F4 G* S+ s. n1 n - 8 U# d* R# i7 L2 U8 ?$ a/ _7 ~
- [openssl]! d6 _3 r9 g, n0 M) f8 z
- ; The location of a Certificate Authority (CA) file on the local filesystem
+ A" f5 X! G5 L1 O - ; to use when verifying the identity of SSL/TLS peers. Most users should' E6 q b: [1 u0 N
- ; not specify a value for this directive as PHP will attempt to use the, `+ |& h+ u# Z- p9 b5 y* A3 }
- ; OS-managed cert stores in its absence. If specified, this value may still
: g- ^/ Q3 V) T6 M5 T- J- z - ; be overridden on a per-stream basis via the "cafile" SSL stream context t0 c8 B) ]- K; G& Q2 j
- ; option.7 W5 O# F6 f" {
- openssl.cafile=/etc/pki/tls/certs/ca-bundle.crt% j1 N' y/ h" Y/ Z1 u1 @; `5 o3 L
$ G6 T6 V; {, I8 T$ r( z- ; If openssl.cafile is not specified or if the CA file is not found, the
# o/ T& m/ O) _) ^" c$ y6 O5 K - ; directory pointed to by openssl.capath is searched for a suitable
9 i4 a$ h. ]5 Q& u: f6 N& w - ; certificate. This value must be a correctly hashed certificate directory.6 e& s f- l2 G: p: Z
- ; Most users should not specify a value for this directive as PHP will
1 P1 H4 V! o z. X+ t, C - ; attempt to use the OS-managed cert stores in its absence. If specified,1 L$ i2 |: f3 U$ s7 q- M9 H7 V
- ; this value may still be overridden on a per-stream basis via the "capath"
+ f% }/ U/ X- c7 f; b. E - ; SSL stream context option.5 b/ E8 j/ l0 s; q
- ;openssl.capath=
# n$ V& R: a' Z+ ]) ^! H
6 ^* m9 t* C; c6 Q- ; Local Variables:
& u% b. d5 n+ h, ]8 Z1 k% d2 [! l - ; tab-width: 4
" h1 E. F" x$ s - ; End:) l5 g2 X: L7 i* r$ G& b: Y6 a
2 T/ Y- j9 J3 ?- ;eaccelerator
6 f/ M( |6 C+ y/ u, \) e4 f1 ~
" i* p6 j) m4 G/ o" Y! J4 z9 B- ;ionCube* V9 g. ?# x7 d; q6 F x! S
- 3 g3 R, W, Y ?# I" A0 K/ V
- ;opcache1 |" D3 Y/ B& t7 z
- 0 I# Y. w! q1 |8 v, k
- [Zend ZendGuard Loader]
5 i# B5 ~$ D0 E0 O& [: o - zend_extension=/usr/local/zend/php56/ZendGuardLoader.so5 P. D& g3 z) M/ H/ b, h, U, c/ |3 w
- zend_loader.enable=1& o& h- H) ^$ Z
- zend_loader.disable_licensing=0$ t3 L* Y- z9 m' j- F; h
- zend_loader.obfuscation_level_support=3
. T$ E( i: w: l9 E - zend_loader.license_path=$ q, J1 J% z- V8 w$ k$ l7 u9 a5 i
- 5 {! L. Z1 P- j1 y2 v" P
- ;xcache2 n3 k0 U9 \) w, |7 L, {
+ ^/ z H- x. i. J/ a
复制代码 |