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