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