-
Notifications
You must be signed in to change notification settings - Fork 56
/
configuration.xml
1026 lines (1019 loc) · 35.9 KB
/
configuration.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 615dc682cf741edd7fbb40bd7b20c43f1e6c3940 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<sect1 xml:id="install.fpm.configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>設定</title>
<para>
FPM では、&php.ini; 形式の構文の設定ファイル <filename>php-fpm.conf</filename> と、プール設定ファイルを使います。
</para>
<sect2>
<title><filename>php-fpm.conf</filename> のグローバル設定項目</title>
<variablelist>
<varlistentry xml:id="pid">
<term>
<parameter>pid</parameter>
<type>string</type>
</term>
<listitem>
<para>
PID ファイルへのパス。デフォルト値: なし
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
エラーログファイルへのパス。デフォルト値:
<literal>#INSTALL_PREFIX#/log/php-fpm.log</literal>
"syslog" と設定すると、ログをローカルファイルに書き出すのではなく、syslogd に送信します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-level">
<term>
<parameter>log_level</parameter>
<type>string</type>
</term>
<listitem>
<para>
エラーログのレベル。使用可能な値: alert, error, warning, notice,
debug、デフォルト値: notice
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-limit">
<term>
<parameter>log_limit</parameter>
<type>int</type>
</term>
<listitem>
<para>
1024文字以上のログメッセージを、
改行せずにロギングできる文字数の上限。
デフォルト値: 1024
PHP 7.3.0 以降で利用可能
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-buffering">
<term>
<parameter>log_buffering</parameter>
<type>bool</type>
</term>
<listitem>
<para>
追加のバッファリングを行わずに実験的なロギングを行う
デフォルト値: yes
PHP 7.3.0 以降で利用可能
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="syslog-facility">
<term>
<parameter>syslog.facility</parameter>
<type>string</type>
</term>
<listitem>
<para>
メッセージを記録するプログラムの種別。
デフォルト値: daemon
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="syslog-ident">
<term>
<parameter>syslog.ident</parameter>
<type>string</type>
</term>
<listitem>
<para>
すべてのメッセージの先頭に付加する内容。
複数の FPM インスタンスを同一サーバー上で実行する場合には、
デフォルト値を変更すれば区別できるようになります。
デフォルト値: php-fpm
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="emergency-restart-threshold">
<term>
<parameter>emergency_restart_threshold</parameter>
<type>int</type>
</term>
<listitem>
<para>
<literal>emergency_restart_interval</literal> で設定された間隔で
この数以上の子プロセスが SIGSEGV あるいは SIGBUS で終了した場合に
FPM は再起動します。0 は 'オフ' を意味します。デフォルト値: 0 (オフ)
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="emergency-restart-interval">
<term>
<parameter>emergency_restart_interval</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
emergency_restart_interval が緩やかな再起動をいつ実行するかを決めるときに使う間隔。
これは、アクセラレータの共有メモリが壊れてしまったときの回避策として有用です。
使用可能な単位: s(秒), m(分), h(時間) あるいは d(日)、
デフォルトの単位: 秒、デフォルト値: 0 (オフ)
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-control-timeout">
<term>
<parameter>process_control_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
子プロセスが、マスタからのシグナルの反応を待つ最大時間。
使用可能な単位: s(秒), m(分), h(時間) あるいは d(日)、
デフォルトの単位: 秒、デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-max">
<term>
<parameter>process.max</parameter>
<type>int</type>
</term>
<listitem>
<para>
FPM がフォークするプロセスの最大数。
多数のプール内で動的な PM を使う場合に、全体のプロセス数を制御するために用意されたものです。
気をつけて使うようにしましょう。
デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-priority">
<term>
<parameter>process.priority</parameter>
<type>int</type>
</term>
<listitem>
<para>
マスタープロセスに適用する nice(2) 値。
-19 (優先度最高) から 20 (優先度最低) までの値を指定します。
デフォルト値: 未設定
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="daemonize">
<term>
<parameter>daemonize</parameter>
<type>bool</type>
</term>
<listitem>
<para>
FPM をバックグラウンドに送る。'no' にすると
デバッグ用に FPM をフォアグラウンドに置き続けます。
デフォルト値: yes
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-files-master">
<term>
<parameter>rlimit_files</parameter>
<type>int</type>
</term>
<listitem>
<para>
マスタープロセス用の、オープン時のファイル記述子の rlimit。
デフォルト値: システムで定義されている値
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-core-master">
<term>
<parameter>rlimit_core</parameter>
<type>int</type>
</term>
<listitem>
<para>
マスタープロセス用の、最大コアサイズの rlimit。
デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="events-mechanism">
<term>
<parameter>events.mechanism</parameter>
<type>string</type>
</term>
<listitem>
<para>
FPM が利用するイベントメカニズム。
select、pool、epoll、kqueue (*BSD)、port (Solaris) が利用可能。
デフォルト値: 未設定 (自動検出)
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="systemd-interval">
<term>
<parameter>systemd_interval</parameter>
<type>int</type>
</term>
<listitem>
<para>
FPM を systemd 統合込みでビルドした場合に、
ヘルスチェックのレポートを systemd に送る間隔 (秒単位)。
0 にすると、無効化されます。
デフォルト値: 10
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>プール一覧の項目</title>
<para>
FPM を使うと、複数のプロセスプールをそれぞれ別の設定で実行することができます。
プール単位での設定を行う項目を以下に示します。
</para>
<variablelist>
<varlistentry xml:id="listen">
<term>
<parameter>listen</parameter>
<type>string</type>
</term>
<listitem>
<para>
FastCGI リクエストを受け入れるアドレス。
'ip.add.re.ss:port', 'port', '/path/to/unix/socket' 形式の構文が使えます。
このオプションは、各プール単位で必須となります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-backlog">
<term>
<parameter>listen.backlog</parameter>
<type>int</type>
</term>
<listitem>
<para>
listen(2) のバックログを設定します。
<literal>-1</literal> はBSD 系のシステムでは最大値を意味します。
デフォルト値: <literal>-1</literal> (FreeBSD や OpenBSD)
または <literal>511</literal> (Linux やその他のプラットフォーム)
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-allowed-clients">
<term>
<parameter>listen.allowed_clients</parameter>
<type>string</type>
</term>
<listitem>
<para>
接続を許可されている FastCGI クライアントの IPv4 または IPv6 アドレス一覧。オリジナル版 PHP FastCGI (5.2.2+)
における環境変数 FCGI_WEB_SERVER_ADDRS と同じです。
tcp でリスンするソケットに対してのみ意味をなします。
書くアドレスはカンマ区切りで指定します。この値を空にしておくと、任意の ip アドレスからの接続を許可します。
デフォルト値: 任意の ip アドレスを許可。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-owner">
<term>
<parameter>listen.owner</parameter>
<type>string</type>
</term>
<listitem>
<para>
unix ソケットを使う場合に、そのパーミッションを設定します。Linux では、
読み書きアクセス権限を設定しないとウェブサーバーからの接続を受け付けることができません。
多くの BSD 由来のシステムでは、パーミッションにかかわらず接続を受け付けることができます。
デフォルト値: ユーザーとグループは実行しているユーザーと同じ、モードは 0660
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-group">
<term>
<parameter>listen.group</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>listen.owner</literal> を参照ください。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-mode">
<term>
<parameter>listen.mode</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>listen.owner</literal> を参照ください。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-acl-users">
<term>
<parameter>listen.acl_users</parameter>
<type>string</type>
</term>
<listitem>
<para>
POSIX の Access Control List をサポートしている場合は、このオプションでそれを指定できます。
これを設定した場合は、<literal>listen.owner</literal> および <literal>listen.group</literal> は無視されます。
値には、ユーザー名をカンマ区切りのリスト形式で指定します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-acl-groups">
<term>
<parameter>listen.acl_groups</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>listen.acl_users</literal> を参照。
グループ名を、カンマ区切りのリスト形式で指定します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="user">
<term>
<parameter>user</parameter>
<type>string</type>
</term>
<listitem>
<para>
FPM プロセスの unix ユーザー。このオプションは必須です。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="group">
<term>
<parameter>group</parameter>
<type>string</type>
</term>
<listitem>
<para>
FPM プロセスの unix グループ。未設定の場合は、デフォルトのユーザーのグループを使います。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm">
<term>
<parameter>pm</parameter>
<type>string</type>
</term>
<listitem>
<para>
プロセスマネージャが子プロセスの数を制御する方法を選択します。
使用可能な値: <literal>static</literal>, <literal>ondemand</literal>, <literal>dynamic</literal>
このオプションは必須です。
</para>
<para>
<literal>static</literal> - 子プロセスの数は固定 (<literal>pm.max_children</literal>) です。
</para>
<para>
<literal>ondemand</literal> - プロセスを必要に応じて立ち上げます。
dynamic とは対照的に、リクエストされると
<literal>pm.start_servers</literal> で指定しただけサービスを開始します。
</para>
<para>
<literal>dynamic</literal> - 子プロセスの数は、
<literal>pm.max_children</literal>、<literal>pm.start_servers</literal>、
<literal>pm.min_spare_servers</literal>、<literal>pm.max_spare_servers</literal>
の内容に基づいて動的に設定されます。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-children">
<term>
<parameter>pm.max_children</parameter>
<type>int</type>
</term>
<listitem>
<para>
<literal>pm</literal> が <literal>static</literal> の場合は作成される子プロセスの数、
<literal>pm</literal> が <literal>dynamic</literal> の場合は作成される子プロセスの最大数。
このオプションは必須です。
</para>
<para>
このオプションは、同時に処理できるリクエストの最大数を設定します。
mpm_prefork での ApacheMaxClients ディレクティブや、
オリジナル版の PHP FastCGI における環境変数 <varname>PHP_FCGI_CHILDREN</varname>
と同じです。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.start-servers">
<term>
<parameter>pm.start_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
起動時に作成される子プロセスの数。<literal>pm</literal> が <literal>dynamic</literal>
の場合にのみ使います。デフォルト値: min_spare_servers + (max_spare_servers -
min_spare_servers) / 2
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.min-spare-servers">
<term>
<parameter>pm.min_spare_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
アイドル状態のサーバープロセス数の最小値。
<literal>pm</literal> が <literal>dynamic</literal> の場合にのみ使います。
また、この場合には必須となります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-spare-servers">
<term>
<parameter>pm.max_spare_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
アイドル状態のサーバープロセス数の最大値。
<literal>pm</literal> が <literal>dynamic</literal> の場合にのみ使います。
また、この場合には必須となります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-spawn-rate">
<term>
<parameter>pm.max_spawn_rate</parameter>
<type>int</type>
</term>
<listitem>
<para>
一度に子プロセスを生成する数。
<literal>pm</literal> の値が
<literal>dynamic</literal> である場合にのみ使えます。
デフォルト値: 32
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.process-idle-timeout">
<term>
<parameter>pm.process_idle_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
アイドルなプロセスがkillされた後の秒数。
<literal>pm</literal> の値が
使用可能な単位: s(秒)(デフォルト)、m(分)、h(時間)、または d(日)。
デフォルト値: 10 秒
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-requests">
<term>
<parameter>pm.max_requests</parameter>
<type>int</type>
</term>
<listitem>
<para>
各子プロセスが、再起動するまでに実行するリクエスト数。
サードパーティのライブラリにおけるメモリリークの回避策として便利です。
再起動せずにずっとリクエストを処理させる場合は '0' を指定します。
<varname>PHP_FCGI_MAX_REQUESTS</varname> と同じです。デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.status-listen">
<term>
<parameter>pm.status_listen</parameter>
<type>string</type>
</term>
<listitem>
<para>
FastCGI の statusリクエスト を受け付けるアドレス。
これを設定すると、独自にリクエストを処理する新しい、
外からは見えないプールが作られます。
これは、長時間実行されるリクエストによって
メインプールがビジーである場合に役立ちます。
なぜなら、そうした処理に長時間かかるリクエストが終わる前であっても、
<link linkend="fpm.status">FPM の情報ページ</link>
を見ることが出来るからです。
<link linkend="listen">listen</link>
ディレクティブと設定できる内容は同じです。
デフォルト値: 未設定。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.status-path">
<term>
<parameter>pm.status_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
<link linkend="fpm.status">FPM の情報ページ</link>
を見るための URI。この値は、スラッシュ (/) で始めなければいけません。
この値を省略した場合は、どの URI も情報ページとは見なされません。
デフォルト値: なし
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ping.path">
<term>
<parameter>ping.path</parameter>
<type>string</type>
</term>
<listitem>
<para>
FPM のモニタリングページをコールするための ping URI。この値を省略した場合は、どの URI
も ping ページとは見なされません。これを使うと、
FPM が生きていて応答するかどうかを外部から確かめることができます。
この値の最初はスラッシュ (/) で始めなければならないことに注意しましょう。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ping.response">
<term>
<parameter>ping.response</parameter>
<type>string</type>
</term>
<listitem>
<para>
このディレクティブを使うと、ping リクエストに対するレスポンスをカスタマイズすることができます。
このレスポンスは text/plain 形式となり、レスポンスコード 200 で返されます。
デフォルト値: pong
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="worker-process-priority">
<term>
<parameter>process.priority</parameter>
<type>int</type>
</term>
<listitem>
<para>
ワーカープロセスに適用される、
nice(2) の値の優先度を指定します。
(指定された場合のみ有効)
この値は、-19(優先度最高) から、20(優先度最低) まで変わります。
デフォルト値: 未設定
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-dumpable">
<term>
<parameter>process.dumpable</parameter>
<type>bool</type>
</term>
<listitem>
<para>
プロセスのユーザーやグループが、
masterプロセスのユーザーと異なっていた場合でも、
プロセスのダンプ可能フラグ(PR_SET_DUMPABLE prctl)を設定します。
これにより、プロセスのコアダンプを生成できるようになり、
pool のユーザーがプロセスを ptrace 出来るようになります。
デフォルト値: no
PHP 7.0.29, 7.1.17 および 7.2.5 から利用可能
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="prefix">
<term>
<parameter>prefix</parameter>
<type>string</type>
</term>
<listitem>
<para>
path を評価する際に、
path の前につける prefix を指定します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-terminate-timeout">
<term>
<parameter>request_terminate_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
単一のリクエストを処理する際のタイムアウト。この時間を過ぎるとワーカープロセスが kill されます。
このオプションは、'max_execution_time' ini オプションが何らかの理由でスクリプトの実行を止められなかった場合に使われます。
値 '0' は 'Off' を意味します。
使用可能な単位: s(秒)(デフォルト), m(分), h(時間) あるいは d(日)、
デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-terminate-timeout-track-finished">
<term>
<parameter>request_terminate_timeout_track_finished</parameter>
<type>bool</type>
</term>
<listitem>
<para>
<link linkend="function.fastcgi-finish-request">fastcgi_finish_request</link> がコールされた後や、
アプリケーションが終了し、
内部的なシャットダウン関数がコールされているときには適用されない
<link linkend="request-terminate-timeout">request_terminate_timeout</link> を有効にするかどうか。
このディレクティブを有効にすると、
そのような適用されないケースでもタイムアウトを無条件に有効にします。
デフォルト値: no。PHP 7.3.0 以降で利用可能。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-slowlog-timeout">
<term>
<parameter>request_slowlog_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
単一のリクエストを処理する際のタイムアウト。この時間を過ぎると
PHP のバックトレースが 'slowlog' ファイルに出力されます。
値 '0' は 'Off' を意味します。
使用可能な単位: s(秒)(デフォルト), m(分), h(時間) あるいは d(日)、
デフォルト値: 0
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-slowlog-trace-depth">
<term>
<parameter>request_slowlog_trace_depth</parameter>
<type>int</type>
</term>
<listitem>
<para>
slowlog に吐き出されるログのスタックトレースの深さ。
デフォルト値: 20。PHP 7.2.0 以降で利用可能。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="slowlog">
<term>
<parameter>slowlog</parameter>
<type>string</type>
</term>
<listitem>
<para>
遅いリクエストを記録するログファイル。デフォルト値:
<literal>#INSTALL_PREFIX#/log/php-fpm.log.slow</literal>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-files">
<term>
<parameter>rlimit_files</parameter>
<type>int</type>
</term>
<listitem>
<para>
このプール内の子プロセス用の、オープン時のファイル記述子の rlimit。デフォルト値: システムで定義されている値
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-core">
<term>
<parameter>rlimit_core</parameter>
<type>int</type>
</term>
<listitem>
<para>
このプール内の子プロセス用の、最大コアサイズの rlimit。
使用可能な値: 'unlimited' あるいは 0 以上の整数値、
デフォルト値: システムで定義されている値
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="chroot">
<term>
<parameter>chroot</parameter>
<type>string</type>
</term>
<listitem>
<para>
このディレクトリに chroot して開始位置とします。この値は絶対パスで指定しなければなりません。
この値を省略した場合は、chroot を使いません。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="chdir">
<term>
<parameter>chdir</parameter>
<type>string</type>
</term>
<listitem>
<para>
このディレクトリに chdir して開始位置とします。この値は絶対パスで指定しなければなりません。
デフォルト値: カレントディレクトリ、あるいは chroot した場合は /
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="catch-workers-output">
<term>
<parameter>catch_workers_output</parameter>
<type>bool</type>
</term>
<listitem>
<para>
ワーカーの標準出力および標準エラー出力を本体のエラーログにリダイレクトします。
省略した場合は、FastCGI の仕様にしたがって標準出力および標準エラー出力を
/dev/null にリダイレクトします。
デフォルト値: no
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="decorate-workers-output">
<term>
<parameter>decorate_workers_output</parameter>
<type>bool</type>
</term>
<listitem>
<para>
<link
linkend="catch-workers-output">catch_workers_output</link>
が有効になった場合に、
ワーカーの出力のデコレートを有効にします。
デフォルト値: yes
PHP 7.3.0 以降で利用可能。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="clear-env">
<term>
<parameter>clear_env</parameter>
<type>bool</type>
</term>
<listitem>
<para>
FPM ワーカー内の環境をクリアする。
任意の環境変数が FPM ワーカープロセスに到達してしまうことを防ぐために、
ワーカー内の環境をいったんクリアしてから、このプールの設定で指定された環境変数を追加します。
デフォルト値: Yes
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="security-limit-extensions">
<term>
<parameter>security.limit_extensions</parameter>
<type>string</type>
</term>
<listitem>
<para>
FPM がパース可能なメインスクリプトを拡張子で制限する。
サーバー側の設定ミスによる被害を抑えることができます。
FPM には拡張子 .php だけをパースさせるようにしておけば、
悪意のあるユーザーがその他の拡張子で php のコードを実行させようとする試みを防ぐことができます。
デフォルト値: .php .phar
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="apparmor-hat">
<term>
<parameter>apparmor_hat</parameter>
<type>string</type>
</term>
<listitem>
<para>
AppArmor が有効になっている場合に、
ハット変更を許可します。
デフォルト値: 未設定。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="access-log">
<term>
<parameter>access.log</parameter>
<type>string</type>
</term>
<listitem>
<para>
アクセス・ログ・ファイル。
デフォルト値: 未設定
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="access-format">
<term>
<parameter>access.format</parameter>
<type>string</type>
</term>
<listitem>
<para>
アクセス・ログ形式。
デフォルト値: <literal>"%R - %u %t \"%m %r\" %s"</literal>:
<table xml:id="fpm.configuration.access.format">
<title>有効なオプション</title>
<tgroup cols="2">
<thead>
<row>
<entry>プレースホルダ</entry>
<entry>説明</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<constant>%C</constant>
</entry>
<entry>%CPU</entry>
</row>
<row>
<entry>
<constant>%d</constant>
</entry>
<entry>duration µs</entry>
</row>
<row>
<entry>
<constant>%e</constant>
</entry>
<entry>fastcgi env</entry>
</row>
<row>
<entry>
<constant>%f</constant>
</entry>
<entry>script</entry>
</row>
<row>
<entry>
<constant>%l</constant>
</entry>
<entry>content length</entry>
</row>
<row>
<entry>
<constant>%m</constant>
</entry>
<entry>method</entry>
</row>
<row>
<entry>
<constant>%M</constant>
</entry>
<entry>memory</entry>
</row>
<row>
<entry>
<constant>%n</constant>
</entry>
<entry>pool name</entry>
</row>
<row>
<entry>
<constant>%o</constant>
</entry>
<entry>header output</entry>
</row>
<row>
<entry>
<constant>%p</constant>
</entry>
<entry>PID</entry>
</row>
<row>
<entry>
<constant>%q</constant>
</entry>
<entry>query string</entry>
</row>
<row>
<entry>
<constant>%Q</constant>
</entry>
<entry>the glue between %q and %r</entry>
</row>
<row>
<entry>
<constant>%r</constant>
</entry>
<entry>request URI</entry>
</row>
<row>
<entry>
<constant>%R</constant>
</entry>
<entry>remote IP address</entry>
</row>
<row>
<entry>
<constant>%s</constant>
</entry>
<entry>status</entry>
</row>
<row>
<entry>
<constant>%T</constant>
</entry>
<entry>time</entry>
</row>
<row>
<entry>
<constant>%t</constant>
</entry>
<entry>time</entry>
</row>
<row>
<entry>
<constant>%u</constant>
</entry>
<entry>remote user</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
追加の環境変数を渡して、特定のプールだけで PHP の設定を更新することができます。
そのためには、次のオプションをプール設定ファイルに追加しなければなりません。
<example>
<title>環境変数や PHP の設定をプールに渡す</title>
<programlisting role="ini">
<![CDATA[
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
]]>
</programlisting>
</example>
<literal>php_value</literal> や
<literal>php_flag</literal> で渡した PHP の設定は、その前に設定されていた内容を上書きします。
ただし
<link linkend="ini.disable-functions">disable_functions</link> や
<link linkend="ini.disable-classes">disable_classes</link> は別で、
<filename>php.ini</filename> で定義された値を上書きするのではなく、
新たに指定した値を追記することになります。
</para>
<para>
<literal>php_admin_value</literal> や <literal>php_admin_flag</literal>
で設定した値を <function>ini_set</function> で上書きすることはできません。
</para>
<para>
PHP の設定は、ウェブサーバーでも設定できます。
<example>
<title>PHP の設定を nginx.conf で行う例</title>
<programlisting role="ini">
<![CDATA[
set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param PHP_VALUE $php_value;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
]]>
</programlisting>
</example>
<caution>
<para>
これらの設定は fastcgi ヘッダーとして php-fpm に渡されるので、
一般公開されているアドレスに php-fpm をバインドしてはいけません。
そんなことをすると、誰でもそのサーバーの PHP の設定を変更できることになります。
<link linkend="listen-allowed-clients">listen.allowed_clients</link> も参照ください。
</para>
</caution>
<note>
<simpara>
プールはセキュリティを考慮した仕組みではありません。
なぜなら、完全な分離を提供しないからです。
たとえば、FPM のプールは、単一の OPcache のインスタンスを使います。
</simpara>