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