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