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