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