install/fpm/configuration.xml
b01a6761f8e5a1dc58ec92b4bba9b7b5878047fe
b01a6761f8e5a1dc58ec92b4bba9b7b5878047fe
...
...
@@ -45,6 +45,33 @@
45
45
</para>
46
46
</listitem>
47
47
</varlistentry>
48
+
<varlistentry xml:id="log-limit">
49
+
<term>
50
+
<parameter>log_limit</parameter>
51
+
<type>int</type>
52
+
</term>
53
+
<listitem>
54
+
<para>
55
+
Log limit for the logged lines which allows to log messages longer than
56
+
1024 characters without wrapping.
57
+
Default value: 1024.
58
+
Available as of PHP 7.3.0.
59
+
</para>
60
+
</listitem>
61
+
</varlistentry>
62
+
<varlistentry xml:id="log-buffering">
63
+
<term>
64
+
<parameter>log_buffering</parameter>
65
+
<type>bool</type>
66
+
</term>
67
+
<listitem>
68
+
<para>
69
+
Experimental logging without extra buffering.
70
+
Default value: yes.
71
+
Available as of PHP 7.3.0.
72
+
</para>
73
+
</listitem>
74
+
</varlistentry>
48
75
<varlistentry xml:id="syslog-facility">
49
76
<term>
50
77
<parameter>syslog.facility</parameter>
...
...
@@ -142,7 +169,7 @@
142
169
<varlistentry xml:id="daemonize">
143
170
<term>
144
171
<parameter>daemonize</parameter>
145
-
<type>boolean</type>
172
+
<type>bool</type>
146
173
</term>
147
174
<listitem>
148
175
<para>
...
...
@@ -159,7 +186,7 @@
159
186
<listitem>
160
187
<para>
161
188
Set open file descriptor rlimit for the master process.
162
-
Default value: Set open file descriptor rlimit for the master process.
189
+
Default value: system defined value.
163
190
</para>
164
191
</listitem>
165
192
</varlistentry>
...
...
@@ -183,8 +210,8 @@
183
210
<listitem>
184
211
<para>
185
212
Specify the event mechanism FPM will use.
186
-
The following is available: select, pool, epoll, kqueue (*BSD), port (Solaris).
187
-
Default value: not set (auto detection).
213
+
The following is available: epoll, kqueue (*BSD), port (Solaris), poll, select.
214
+
Default value: not set (auto detection preferring epoll and kqueue).
188
215
</para>
189
216
</listitem>
190
217
</varlistentry>
...
...
@@ -233,8 +260,9 @@
233
260
</term>
234
261
<listitem>
235
262
<para>
236
-
Set listen(2) backlog. A value of '-1' means unlimited. Default value:
237
-
-1.
263
+
Set listen(2) backlog. A value of <literal>-1</literal> means maximum on BSD systems.
264
+
Default value: <literal>-1</literal> (FreeBSD or OpenBSD) or <literal>511</literal>
265
+
(Linux and other platforms).
238
266
</para>
239
267
</listitem>
240
268
</varlistentry>
...
...
@@ -245,12 +273,11 @@
245
273
</term>
246
274
<listitem>
247
275
<para>
248
-
List of IPv4 addresses of FastCGI clients which are allowed to
249
-
connect. Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the
250
-
original PHP FastCGI (5.2.2+). Makes sense only with a tcp listening socket.
251
-
Each address must be separated by a comma. If this value is left blank,
252
-
connections will be accepted from any ip address. Default value: any.
253
-
IPv6 addresses are allowed since PHP 5.5.20 and 5.6.4.
276
+
List of IPv4 or IPv6 addresses of FastCGI clients which are allowed to connect. Equivalent
277
+
to the FCGI_WEB_SERVER_ADDRS environment variable in the original PHP FastCGI (5.2.2+).
278
+
Makes sense only with a tcp listening socket. Each address must be separated by a comma.
279
+
If this value is left blank, connections will be accepted from any ip address.
280
+
Default value: not set (any ip address accepted).
254
281
</para>
255
282
</listitem>
256
283
</varlistentry>
...
...
@@ -299,7 +326,7 @@
299
326
<para>
300
327
When POSIX Access Control Lists are supported you can set them using this option.
301
328
When set, <literal>listen.owner</literal> and <literal>listen.group</literal>
302
-
are ignored. Value is a comma separated list of user names. Since PHP 5.6.5.
329
+
are ignored. Value is a comma separated list of user names.
303
330
</para>
304
331
</listitem>
305
332
</varlistentry>
...
...
@@ -311,7 +338,7 @@
311
338
<listitem>
312
339
<para>
313
340
See <literal>listen.acl_users</literal>.
314
-
Value is a comma separated list of group names. Since PHP 5.6.5.
341
+
Value is a comma separated list of group names.
315
342
</para>
316
343
</listitem>
317
344
</varlistentry>
...
...
@@ -365,7 +392,7 @@
365
392
</para>
366
393
</listitem>
367
394
</varlistentry>
368
-
<varlistentry xml:id="pm.max-chidlren">
395
+
<varlistentry xml:id="pm.max-children">
369
396
<term>
370
397
<parameter>pm.max_children</parameter>
371
398
<type>int</type>
...
...
@@ -394,8 +421,7 @@
394
421
<para>
395
422
The number of child processes created on startup.
396
423
Used only when <literal>pm</literal> is set to <literal>dynamic</literal>.
397
-
Default Value: min_spare_servers + (max_spare_servers -
398
-
min_spare_servers) / 2.
424
+
Default Value: (min_spare_servers + max_spare_servers) / 2.
399
425
</para>
400
426
</listitem>
401
427
</varlistentry>
...
...
@@ -425,6 +451,33 @@
425
451
</para>
426
452
</listitem>
427
453
</varlistentry>
454
+
<varlistentry xml:id="pm.max-spawn-rate">
455
+
<term>
456
+
<parameter>pm.max_spawn_rate</parameter>
457
+
<type>int</type>
458
+
</term>
459
+
<listitem>
460
+
<para>
461
+
The number of rate to spawn child processes at once. Used only when
462
+
<literal>pm</literal> is set to <literal>dynamic</literal>.
463
+
Default value: 32
464
+
</para>
465
+
</listitem>
466
+
</varlistentry>
467
+
<varlistentry xml:id="pm.process-idle-timeout">
468
+
<term>
469
+
<parameter>pm.process_idle_timeout</parameter>
470
+
<type>mixed</type>
471
+
</term>
472
+
<listitem>
473
+
<para>
474
+
The number of seconds after which an idle process will be killed.
475
+
Used only when <literal>pm</literal> is set to <literal>ondemand</literal>.
476
+
Available units: s(econds)(default), m(inutes), h(ours), or d(ays).
477
+
Default value: 10s.
478
+
</para>
479
+
</listitem>
480
+
</varlistentry>
428
481
<varlistentry xml:id="pm.max-requests">
429
482
<term>
430
483
<parameter>pm.max_requests</parameter>
...
...
@@ -439,6 +492,22 @@
439
492
</para>
440
493
</listitem>
441
494
</varlistentry>
495
+
<varlistentry xml:id="pm.status-listen">
496
+
<term>
497
+
<parameter>pm.status_listen</parameter>
498
+
<type>string</type>
499
+
</term>
500
+
<listitem>
501
+
<para>
502
+
The address on which to accept FastCGI status request. This creates a new invisible pool
503
+
that can handle requests independently. This is useful if the main pool is busy with long
504
+
running requests because it is still possible to get the
505
+
<link linkend="fpm.status">FPM status page</link> before finishing the long running
506
+
requests. The syntax is the same as for <link linkend="listen">listen</link> directive.
507
+
Default value: none.
508
+
</para>
509
+
</listitem>
510
+
</varlistentry>
442
511
<varlistentry xml:id="pm.status-path">
443
512
<term>
444
513
<parameter>pm.status_path</parameter>
...
...
@@ -446,8 +515,9 @@
446
515
</term>
447
516
<listitem>
448
517
<para>
449
-
The URI to view the FPM status page. If this value is not set, no URI
450
-
will be recognized as a status page. Default value: none.
518
+
The URI to view the <link linkend="fpm.status">FPM status page</link>. This value must
519
+
start with a leading slash (/). If this value is not set, no URI will be recognized as
520
+
a status page. Default value: none.
451
521
</para>
452
522
</listitem>
453
523
</varlistentry>
...
...
@@ -478,6 +548,44 @@
478
548
</para>
479
549
</listitem>
480
550
</varlistentry>
551
+
<varlistentry xml:id="worker-process-priority">
552
+
<term>
553
+
<parameter>process.priority</parameter>
554
+
<type>int</type>
555
+
</term>
556
+
<listitem>
557
+
<para>
558
+
Specify the nice(2) priority to apply to the worker process (only if set).
559
+
The value can vary from -19 (highest priority) to 20 (lower priority).
560
+
Default value: not set.
561
+
</para>
562
+
</listitem>
563
+
</varlistentry>
564
+
<varlistentry xml:id="process-dumpable">
565
+
<term>
566
+
<parameter>process.dumpable</parameter>
567
+
<type>bool</type>
568
+
</term>
569
+
<listitem>
570
+
<para>
571
+
Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user
572
+
or group is different than the master process user. It allows to create process
573
+
core dump and ptrace the process for the pool user.
574
+
Default Value: no. Since PHP 7.0.29, 7.1.17 and 7.2.5.
575
+
</para>
576
+
</listitem>
577
+
</varlistentry>
578
+
<varlistentry xml:id="prefix">
579
+
<term>
580
+
<parameter>prefix</parameter>
581
+
<type>string</type>
582
+
</term>
583
+
<listitem>
584
+
<para>
585
+
Specify prefix for path evaluation
586
+
</para>
587
+
</listitem>
588
+
</varlistentry>
481
589
<varlistentry xml:id="request-terminate-timeout">
482
590
<term>
483
591
<parameter>request_terminate_timeout</parameter>
...
...
@@ -493,6 +601,22 @@
493
601
</para>
494
602
</listitem>
495
603
</varlistentry>
604
+
<varlistentry xml:id="request-terminate-timeout-track-finished">
605
+
<term>
606
+
<parameter>request_terminate_timeout_track_finished</parameter>
607
+
<type>bool</type>
608
+
</term>
609
+
<listitem>
610
+
<para>
611
+
The timeout set by
612
+
<link linkend="request-terminate-timeout">request_terminate_timeout</link> is not engaged
613
+
after a <link linkend="function.fastcgi-finish-request">fastcgi_finish_request</link> or
614
+
when application has finished and internal shutdown functions are being called. This
615
+
directive will enable timeout limit to be applied unconditionally even in such cases.
616
+
Default value: no. Since PHP 7.3.0.
617
+
</para>
618
+
</listitem>
619
+
</varlistentry>
496
620
<varlistentry xml:id="request-slowlog-timeout">
497
621
<term>
498
622
<parameter>request_slowlog_timeout</parameter>
...
...
@@ -507,6 +631,18 @@
507
631
</para>
508
632
</listitem>
509
633
</varlistentry>
634
+
<varlistentry xml:id="request-slowlog-trace-depth">
635
+
<term>
636
+
<parameter>request_slowlog_trace_depth</parameter>
637
+
<type>int</type>
638
+
</term>
639
+
<listitem>
640
+
<para>
641
+
The depth of slowlog log stack trace.
642
+
Default value: 20. Since PHP 7.2.0.
643
+
</para>
644
+
</listitem>
645
+
</varlistentry>
510
646
<varlistentry xml:id="slowlog">
511
647
<term>
512
648
<parameter>slowlog</parameter>
...
...
@@ -569,7 +705,7 @@
569
705
<varlistentry xml:id="catch-workers-output">
570
706
<term>
571
707
<parameter>catch_workers_output</parameter>
572
-
<type>boolean</type>
708
+
<type>bool</type>
573
709
</term>
574
710
<listitem>
575
711
<para>
...
...
@@ -579,17 +715,31 @@
579
715
</para>
580
716
</listitem>
581
717
</varlistentry>
718
+
<varlistentry xml:id="decorate-workers-output">
719
+
<term>
720
+
<parameter>decorate_workers_output</parameter>
721
+
<type>bool</type>
722
+
</term>
723
+
<listitem>
724
+
<para>
725
+
Enable the output decoration for workers output when <link
726
+
linkend="catch-workers-output">catch_workers_output</link> is enabled.
727
+
Default value: yes.
728
+
Available as of PHP 7.3.0.
729
+
</para>
730
+
</listitem>
731
+
</varlistentry>
582
732
<varlistentry xml:id="clear-env">
583
733
<term>
584
734
<parameter>clear_env</parameter>
585
-
<type>boolean</type>
735
+
<type>bool</type>
586
736
</term>
587
737
<listitem>
588
738
<para>
589
739
Clear environment in FPM workers.
590
740
Prevents arbitrary environment variables from reaching FPM worker processes
591
741
by clearing the environment in workers before env vars specified in this
592
-
pool configuration are added. Since PHP 5.4.27, 5.5.11, and 5.6.0.
742
+
pool configuration are added.
593
743
Default value: Yes.
594
744
</para>
595
745
</listitem>
...
...
@@ -605,7 +755,226 @@
605
755
This can prevent configuration mistakes on the web server side.
606
756
You should only limit FPM to .php extensions to prevent malicious
607
757
users to use other extensions to execute php code.
608
-
Default value: .php.
758
+
Default value: .php .phar
759
+
</para>
760
+
</listitem>
761
+
</varlistentry>
762
+
<varlistentry xml:id="apparmor-hat">
763
+
<term>
764
+
<parameter>apparmor_hat</parameter>
765
+
<type>string</type>
766
+
</term>
767
+
<listitem>
768
+
<para>
769
+
If AppArmor is enabled, it allows to change a hat.
770
+
Default value: not set
771
+
</para>
772
+
</listitem>
773
+
</varlistentry>
774
+
<varlistentry xml:id="access-log">
775
+
<term>
776
+
<parameter>access.log</parameter>
777
+
<type>string</type>
778
+
</term>
779
+
<listitem>
780
+
<para>
781
+
The access log file.
782
+
Default value: not set
783
+
</para>
784
+
</listitem>
785
+
</varlistentry>
786
+
<varlistentry xml:id="access-format">
787
+
<term>
788
+
<parameter>access.format</parameter>
789
+
<type>string</type>
790
+
</term>
791
+
<listitem>
792
+
<para>
793
+
The access log format.
794
+
Default value: <literal>"%R - %u %t \"%m %r\" %s"</literal>:
795
+
<table xml:id="fpm.configuration.access.format">
796
+
<title>Valid options</title>
797
+
<tgroup cols="2">
798
+
<thead>
799
+
<row>
800
+
<entry>Placeholder</entry>
801
+
<entry>Description</entry>
802
+
</row>
803
+
</thead>
804
+
<tbody>
805
+
<row>
806
+
<entry>
807
+
<literal>%%</literal>
808
+
</entry>
809
+
<entry>The <literal>%</literal> character</entry>
810
+
</row>
811
+
<row>
812
+
<entry>
813
+
<literal>%C</literal>
814
+
</entry>
815
+
<entry>
816
+
%CPU used by the request. It can accept the following format:
817
+
<literal>%{user}C</literal> for user CPU only,
818
+
<literal>%{system}C</literal> for system CPU only,
819
+
<literal>%{total}C</literal> for user + system CPU (default)
820
+
</entry>
821
+
</row>
822
+
<row>
823
+
<entry>
824
+
<literal>%d</literal>
825
+
</entry>
826
+
<entry>
827
+
Time taken to serve the request.
828
+
It can accept the following formats for precision:
829
+
<literal>%{seconds}d</literal> (default), <literal>%{milliseconds}d</literal>,
830
+
<literal>%{microseconds}d</literal>
831
+
</entry>
832
+
</row>
833
+
<row>
834
+
<entry>
835
+
<literal>%{<replaceable>name</replaceable>}e</literal>
836
+
</entry>
837
+
<entry>
838
+
An environment variable (same as <varname>$_ENV</varname> or <varname>$_SERVER</varname>).
839
+
A variable name must be specified within curly brackets to specify the name of the env variable.
840
+
For example, server specifics like <literal>%{REQUEST_METHOD}e</literal> or
841
+
<literal>%{SERVER_PROTOCOL}e</literal>, HTTP headers like
842
+
<literal>%{HTTP_HOST}e</literal> or <literal>%{HTTP_USER_AGENT}e</literal>
843
+
</entry>
844
+
</row>
845
+
<row>
846
+
<entry>
847
+
<literal>%f</literal>
848
+
</entry>
849
+
<entry>Script filename</entry>
850
+
</row>
851
+
<row>
852
+
<entry>
853
+
<literal>%l</literal>
854
+
</entry>
855
+
<entry>
856
+
<literal>Content-Length</literal> of the request (for HTTP POST request only)
857
+
</entry>
858
+
</row>
859
+
<row>
860
+
<entry>
861
+
<literal>%m</literal>
862
+
</entry>
863
+
<entry>Request HTTP method</entry>
864
+
</row>
865
+
<row>
866
+
<entry>
867
+
<literal>%M</literal>
868
+
</entry>
869
+
<entry>
870
+
Peak of memory allocated by PHP.
871
+
It can accept the following format:
872
+
<literal>%{bytes}M</literal> (default), <literal>%{kilobytes}M</literal>
873
+
<literal>%{kilo}M</literal>, <literal>%{megabytes}M</literal>,
874
+
<literal>%{mega}M</literal>
875
+
</entry>
876
+
</row>
877
+
<row>
878
+
<entry>
879
+
<literal>%n</literal>
880
+
</entry>
881
+
<entry>Pool name</entry>
882
+
</row>
883
+
<row>
884
+
<entry>
885
+
<literal>%{<replaceable>name</replaceable>}o</literal>
886
+
</entry>
887
+
<entry>
888
+
Output header. The header name must be specified within curly brackets.
889
+
For example: <literal>%{Content-Type}o</literal>,
890
+
<literal>%{X-Powered-By}o</literal>, <literal>%{Transfer-Encoding}o</literal>
891
+
</entry>
892
+
</row>
893
+
<row>
894
+
<entry>
895
+
<literal>%p</literal>
896
+
</entry>
897
+
<entry>PID of the child that serviced the request</entry>
898
+
</row>
899
+
<row>
900
+
<entry>
901
+
<literal>%P</literal>
902
+
</entry>
903
+
<entry>PID of the parent of the child that serviced the request</entry>
904
+
</row>
905
+
<row>
906
+
<entry>
907
+
<literal>%q</literal>
908
+
</entry>
909
+
<entry>Query string</entry>
910
+
</row>
911
+
<row>
912
+
<entry>
913
+
<literal>%Q</literal>
914
+
</entry>
915
+
<entry>
916
+
The <literal>'?'</literal> character, or glue between <literal>%q</literal> and <literal>%r</literal>,
917
+
if query string exists
918
+
</entry>
919
+
</row>
920
+
<row>
921
+
<entry>
922
+
<literal>%r</literal>
923
+
</entry>
924
+
<entry>
925
+
Request URI without the query string,
926
+
see <literal>%q</literal> and <literal>%Q</literal>
927
+
</entry>
928
+
</row>
929
+
<row>
930
+
<entry>
931
+
<literal>%R</literal>
932
+
</entry>
933
+
<entry>Remote IP address</entry>
934
+
</row>
935
+
<row>
936
+
<entry>
937
+
<literal>%s</literal>
938
+
</entry>
939
+
<entry>Status (response code)</entry>
940
+
</row>
941
+
<row>
942
+
<entry>
943
+
<literal>%t</literal>
944
+
</entry>
945
+
<entry>
946
+
Server time the request was received. It can
947
+
accept a <literal>strftime(3)</literal> format:
948
+
<literal>%d/%b/%Y:%H:%M:%S %z</literal> (default)
949
+
The <literal>strftime(3)</literal> format must be encapsulated in
950
+
a <literal>%{<strftime_format>}t</literal> tag, e.g. for a ISO8601
951
+
formatted timestring, use:
952
+
<literal>%{%Y-%m-%dT%H:%M:%S%z}t</literal>
953
+
</entry>
954
+
</row>
955
+
<row>
956
+
<entry>
957
+
<literal>%T</literal>
958
+
</entry>
959
+
<entry>
960
+
Time the log was written (when the request finished). It can accept a
961
+
<literal>strftime(3)</literal> format:
962
+
<literal>%d/%b/%Y:%H:%M:%S %z</literal> (default).
963
+
The <literal>strftime(3)</literal> format must be encapsulated in a
964
+
<literal>%{<strftime_format>}T</literal> tag, e.g. for a ISO8601
965
+
formatted timestring, use:
966
+
<literal>%{%Y-%m-%dT%H:%M:%S%z}T</literal>
967
+
</entry>
968
+
</row>
969
+
<row>
970
+
<entry>
971
+
<literal>%u</literal>
972
+
</entry>
973
+
<entry>Basic access authentication user, if specified in <literal>Authorization</literal> header</entry>
974
+
</row>
975
+
</tbody>
976
+
</tgroup>
977
+
</table>
609
978
</para>
610
979
</listitem>
611
980
</varlistentry>
...
...
@@ -641,10 +1010,10 @@ php_admin_value[memory_limit] = 32M
641
1010
</para>
642
1011
<para>
643
1012
Settings defined with <literal>php_admin_value</literal> and <literal>php_admin_flag</literal>
644
-
cannot be overriden with <function>ini_set</function>.
1013
+
cannot be overridden with <function>ini_set</function>.
645
1014
</para>
646
1015
<para>
647
-
As of 5.3.3, PHP settings are also possible to be set in webserver.
1016
+
PHP settings can be set in the webserver configuration.
648
1017
<example>
649
1018
<title>set PHP settings in nginx.conf</title>
650
1019
<programlisting role="ini">
...
...
@@ -666,6 +1035,12 @@ fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
666
1035
<link linkend="listen-allowed-clients">listen.allowed_clients</link>.
667
1036
</para>
668
1037
</caution>
1038
+
<note>
1039
+
<simpara>
1040
+
Pools are not a security mechanism, because they do not provide full
1041
+
separation; e.g. all pools would use a single OPcache instance.
1042
+
</simpara>
1043
+
</note>
669
1044
</para>
670
1045
</sect2>
671
1046
672
1047