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