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