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