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