[packages/php/PHP_5_5] split fpm config to fpm.d fragments (cherry-pick 988ed57)

glen glen at pld-linux.org
Mon Dec 16 20:27:46 CET 2013


commit b604e307b885c606f6d0572e15fec5c4cc70d383
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Sun Dec 8 16:01:23 2013 +0200

    split fpm config to fpm.d fragments (cherry-pick 988ed57)

 fpm-conf-split.patch | 842 +++++++++++++++++++++++++++++++++++++++++++++++++++
 php.spec             |   6 +-
 2 files changed, 847 insertions(+), 1 deletion(-)
---
diff --git a/php.spec b/php.spec
index 30def91..cc7e3c3 100644
--- a/php.spec
+++ b/php.spec
@@ -219,6 +219,7 @@ Patch65:	system-libzip.patch
 Patch66:	php-db.patch
 Patch67:	mysql-lib-ver-mismatch.patch
 Patch68:	php-freetype.patch
+Patch69:	fpm-conf-split.patch
 URL:		http://www.php.net/
 %{?with_interbase:%{!?with_interbase_inst:BuildRequires:	Firebird-devel >= 1.0.2.908-2}}
 %{?with_pspell:BuildRequires:	aspell-devel >= 2:0.50.0}
@@ -1956,6 +1957,7 @@ cp -p php.ini-production php.ini
 %patch66 -p1
 %patch67 -p1
 %patch68 -p1
+%patch69 -p1
 
 sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4
 
@@ -2472,6 +2474,7 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir}/fpm.d,%{_sbindir}}
 libtool --mode=install install -p sapi/fpm/php-fpm $RPM_BUILD_ROOT%{_sbindir}/%{name}-fpm
 cp -p sapi/fpm/php-fpm.8 $RPM_BUILD_ROOT%{_mandir}/man8/%{name}-fpm.8
 cp -p sapi/fpm/php-fpm.conf $RPM_BUILD_ROOT%{_sysconfdir}
+cp -p sapi/fpm/php-fpm.conf-d $RPM_BUILD_ROOT%{_sysconfdir}/fpm.d/www.conf
 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-fpm
 install -d $RPM_BUILD_ROOT/etc/logrotate.d
@@ -2484,7 +2487,7 @@ cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
 	s#/usr/lib/php#%{php_extensiondir}#
 	s#/etc/php#%{_sysconfdir}#
 	s#@processname@#%{name}-fpm#g
-' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf}
+' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf,%{_sysconfdir}/fpm.d/www.conf}
 %endif
 
 # install Embedded API
@@ -2778,6 +2781,7 @@ fi
 %doc sapi/fpm/{CREDITS,LICENSE}
 %dir %{_sysconfdir}/fpm.d
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpm.d/www.conf
 %attr(755,root,root) %{_sbindir}/%{name}-fpm
 %{_mandir}/man8/%{name}-fpm.8*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-fpm
diff --git a/fpm-conf-split.patch b/fpm-conf-split.patch
new file mode 100644
index 0000000..2bce0f7
--- /dev/null
+++ b/fpm-conf-split.patch
@@ -0,0 +1,842 @@
+--- php-5.5.7/sapi/fpm/php-fpm.conf.in~	2013-12-16 17:57:03.000000000 +0200
++++ php-5.5.7/sapi/fpm/php-fpm.conf.in	2013-12-16 17:58:37.618025260 +0200
+@@ -6,14 +6,6 @@
+ ; prefix (@prefix@). This prefix can be dynamically changed by using the
+ ; '-p' argument from the command line.
+ 
+-; Include one or more files. If glob(3) exists, it is used to include a bunch of
+-; files from a glob(3) pattern. This directive can be used everywhere in the
+-; file.
+-; Relative path can also be used. They will be prefixed by:
+-;  - the global prefix if it's been set (-p argument)
+-;  - @prefix@ otherwise
+-;include=/etc/php/fpm.d/*.conf
+-
+ ;;;;;;;;;;;;;;;;;;
+ ; Global Options ;
+ ;;;;;;;;;;;;;;;;;;
+@@ -124,395 +116,10 @@
+ ; used in logs and stats. There is no limitation on the number of pools which
+ ; FPM can handle. Your system will tell you anyway :)
+ 
+-; Start a new pool named 'www'.
+-; the variable $pool can we used in any directive and will be replaced by the
+-; pool name ('www' here)
+-[www]
+-
+-; Per pool prefix
+-; It only applies on the following directives:
+-; - 'slowlog'
+-; - 'listen' (unixsocket)
+-; - 'chroot'
+-; - 'chdir'
+-; - 'php_values'
+-; - 'php_admin_values'
+-; When not set, the global prefix (or @php_fpm_prefix@) applies instead.
+-; Note: This directive can also be relative to the global prefix.
+-; Default Value: none
+-;prefix = /path/to/pools/$pool
+-
+-; Unix user/group of processes
+-; Note: The user is mandatory. If the group is not set, the default user's group
+-;       will be used.
+-user = @php_fpm_user@
+-group = @php_fpm_group@
+-
+-; The address on which to accept FastCGI requests.
+-; Valid syntaxes are:
+-;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
+-;                            a specific port;
+-;   'port'                 - to listen on a TCP socket to all addresses on a
+-;                            specific port;
+-;   '/path/to/unix/socket' - to listen on a unix socket.
+-; Note: This value is mandatory.
+-listen = /var/run/php/@processname at .sock
+-
+-; Set listen(2) backlog.
+-; Default Value: 65535 (-1 on FreeBSD and OpenBSD)
+-;listen.backlog = 65535
+-
+-; Set permissions for unix socket, if one is used. In Linux, read/write
+-; permissions must be set in order to allow connections from a web server. Many
+-; BSD-derived systems allow connections regardless of permissions. 
+-; Default Values: user and group are set as the running user
+-;                 mode is set to 0666
+-;listen.owner = @php_fpm_user@
+-;listen.group = @php_fpm_group@
+-;listen.mode = 0666
+- 
+-; List of ipv4 addresses of FastCGI clients which are allowed to connect.
+-; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
+-; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
+-; must be separated by a comma. If this value is left blank, connections will be
+-; accepted from any ip address.
+-; Default Value: any
+-listen.allowed_clients = 127.0.0.1
+-
+-; Specify the nice(2) priority to apply to the pool processes (only if set)
+-; The value can vary from -19 (highest priority) to 20 (lower priority)
+-; Note: - It will only work if the FPM master process is launched as root
+-;       - The pool processes will inherit the master process priority
+-;         unless it specified otherwise
+-; Default Value: no set
+-; priority = -19
+-
+-; Choose how the process manager will control the number of child processes.
+-; Possible Values:
+-;   static  - a fixed number (pm.max_children) of child processes;
+-;   dynamic - the number of child processes are set dynamically based on the
+-;             following directives. With this process management, there will be
+-;             always at least 1 children.
+-;             pm.max_children      - the maximum number of children that can
+-;                                    be alive at the same time.
+-;             pm.start_servers     - the number of children created on startup.
+-;             pm.min_spare_servers - the minimum number of children in 'idle'
+-;                                    state (waiting to process). If the number
+-;                                    of 'idle' processes is less than this
+-;                                    number then some children will be created.
+-;             pm.max_spare_servers - the maximum number of children in 'idle'
+-;                                    state (waiting to process). If the number
+-;                                    of 'idle' processes is greater than this
+-;                                    number then some children will be killed.
+-;  ondemand - no children are created at startup. Children will be forked when
+-;             new requests will connect. The following parameter are used:
+-;             pm.max_children           - the maximum number of children that
+-;                                         can be alive at the same time.
+-;             pm.process_idle_timeout   - The number of seconds after which
+-;                                         an idle process will be killed.
+-; Note: This value is mandatory.
+-pm = dynamic
+-
+-; The number of child processes to be created when pm is set to 'static' and the
+-; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
+-; This value sets the limit on the number of simultaneous requests that will be
+-; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
+-; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
+-; CGI. The below defaults are based on a server without much resources. Don't
+-; forget to tweak pm.* to fit your needs.
+-; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
+-; Note: This value is mandatory.
+-pm.max_children = 5
+-
+-; The number of child processes created on startup.
+-; Note: Used only when pm is set to 'dynamic'
+-; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+-pm.start_servers = 2
+-
+-; The desired minimum number of idle server processes.
+-; Note: Used only when pm is set to 'dynamic'
+-; Note: Mandatory when pm is set to 'dynamic'
+-pm.min_spare_servers = 1
+-
+-; The desired maximum number of idle server processes.
+-; Note: Used only when pm is set to 'dynamic'
+-; Note: Mandatory when pm is set to 'dynamic'
+-pm.max_spare_servers = 3
+-
+-; The number of seconds after which an idle process will be killed.
+-; Note: Used only when pm is set to 'ondemand'
+-; Default Value: 10s
+-;pm.process_idle_timeout = 10s;
+- 
+-; The number of requests each child process should execute before respawning.
+-; This can be useful to work around memory leaks in 3rd party libraries. For
+-; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+-; Default Value: 0
+-;pm.max_requests = 500
+-
+-; The URI to view the FPM status page. If this value is not set, no URI will be
+-; recognized as a status page. It shows the following informations:
+-;   pool                 - the name of the pool;
+-;   process manager      - static, dynamic or ondemand;
+-;   start time           - the date and time FPM has started;
+-;   start since          - number of seconds since FPM has started;
+-;   accepted conn        - the number of request accepted by the pool;
+-;   listen queue         - the number of request in the queue of pending
+-;                          connections (see backlog in listen(2));
+-;   max listen queue     - the maximum number of requests in the queue
+-;                          of pending connections since FPM has started;
+-;   listen queue len     - the size of the socket queue of pending connections;
+-;   idle processes       - the number of idle processes;
+-;   active processes     - the number of active processes;
+-;   total processes      - the number of idle + active processes;
+-;   max active processes - the maximum number of active processes since FPM
+-;                          has started;
+-;   max children reached - number of times, the process limit has been reached,
+-;                          when pm tries to start more children (works only for
+-;                          pm 'dynamic' and 'ondemand');
+-; Value are updated in real time.
+-; Example output:
+-;   pool:                 www
+-;   process manager:      static
+-;   start time:           01/Jul/2011:17:53:49 +0200
+-;   start since:          62636
+-;   accepted conn:        190460
+-;   listen queue:         0
+-;   max listen queue:     1
+-;   listen queue len:     42
+-;   idle processes:       4
+-;   active processes:     11
+-;   total processes:      15
+-;   max active processes: 12
+-;   max children reached: 0
+-;
+-; By default the status page output is formatted as text/plain. Passing either
+-; 'html', 'xml' or 'json' in the query string will return the corresponding
+-; output syntax. Example:
+-;   http://www.foo.bar/status
+-;   http://www.foo.bar/status?json
+-;   http://www.foo.bar/status?html
+-;   http://www.foo.bar/status?xml
+-;
+-; By default the status page only outputs short status. Passing 'full' in the
+-; query string will also return status for each pool process.
+-; Example: 
+-;   http://www.foo.bar/status?full
+-;   http://www.foo.bar/status?json&full
+-;   http://www.foo.bar/status?html&full
+-;   http://www.foo.bar/status?xml&full
+-; The Full status returns for each process:
+-;   pid                  - the PID of the process;
+-;   state                - the state of the process (Idle, Running, ...);
+-;   start time           - the date and time the process has started;
+-;   start since          - the number of seconds since the process has started;
+-;   requests             - the number of requests the process has served;
+-;   request duration     - the duration in µs of the requests;
+-;   request method       - the request method (GET, POST, ...);
+-;   request URI          - the request URI with the query string;
+-;   content length       - the content length of the request (only with POST);
+-;   user                 - the user (PHP_AUTH_USER) (or '-' if not set);
+-;   script               - the main script called (or '-' if not set);
+-;   last request cpu     - the %cpu the last request consumed
+-;                          it's always 0 if the process is not in Idle state
+-;                          because CPU calculation is done when the request
+-;                          processing has terminated;
+-;   last request memory  - the max amount of memory the last request consumed
+-;                          it's always 0 if the process is not in Idle state
+-;                          because memory calculation is done when the request
+-;                          processing has terminated;
+-; If the process is in Idle state, then informations are related to the
+-; last request the process has served. Otherwise informations are related to
+-; the current request being served.
+-; Example output:
+-;   ************************
+-;   pid:                  31330
+-;   state:                Running
+-;   start time:           01/Jul/2011:17:53:49 +0200
+-;   start since:          63087
+-;   requests:             12808
+-;   request duration:     1250261
+-;   request method:       GET
+-;   request URI:          /test_mem.php?N=10000
+-;   content length:       0
+-;   user:                 -
+-;   script:               /home/fat/web/docs/php/test_mem.php
+-;   last request cpu:     0.00
+-;   last request memory:  0
+-;
+-; Note: There is a real-time FPM status monitoring sample web page available
+-;       It's available in: @EXPANDED_DATADIR@/fpm/status.html
+-;
+-; Note: The value must start with a leading slash (/). The value can be
+-;       anything, but it may not be a good idea to use the .php extension or it
+-;       may conflict with a real PHP file.
+-; Default Value: not set 
+-;pm.status_path = /status
+- 
+-; The ping URI to call the monitoring page of FPM. If this value is not set, no
+-; URI will be recognized as a ping page. This could be used to test from outside
+-; that FPM is alive and responding, or to
+-; - create a graph of FPM availability (rrd or such);
+-; - remove a server from a group if it is not responding (load balancing);
+-; - trigger alerts for the operating team (24/7).
+-; Note: The value must start with a leading slash (/). The value can be
+-;       anything, but it may not be a good idea to use the .php extension or it
+-;       may conflict with a real PHP file.
+-; Default Value: not set
+-;ping.path = /ping
+-
+-; This directive may be used to customize the response of a ping request. The
+-; response is formatted as text/plain with a 200 response code.
+-; Default Value: pong
+-;ping.response = pong
+-
+-; The access log file
+-; Default: not set
+-;access.log = log/$pool.access.log
+-
+-; The access log format.
+-; The following syntax is allowed
+-;  %%: the '%' character
+-;  %C: %CPU used by the request
+-;      it can accept the following format:
+-;      - %{user}C for user CPU only
+-;      - %{system}C for system CPU only
+-;      - %{total}C  for user + system CPU (default)
+-;  %d: time taken to serve the request
+-;      it can accept the following format:
+-;      - %{seconds}d (default)
+-;      - %{miliseconds}d
+-;      - %{mili}d
+-;      - %{microseconds}d
+-;      - %{micro}d
+-;  %e: an environment variable (same as $_ENV or $_SERVER)
+-;      it must be associated with embraces to specify the name of the env
+-;      variable. Some exemples:
+-;      - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e
+-;      - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e
+-;  %f: script filename
+-;  %l: content-length of the request (for POST request only)
+-;  %m: request method
+-;  %M: peak of memory allocated by PHP
+-;      it can accept the following format:
+-;      - %{bytes}M (default)
+-;      - %{kilobytes}M
+-;      - %{kilo}M
+-;      - %{megabytes}M
+-;      - %{mega}M
+-;  %n: pool name
+-;  %o: output header
+-;      it must be associated with embraces to specify the name of the header:
+-;      - %{Content-Type}o
+-;      - %{X-Powered-By}o
+-;      - %{Transfert-Encoding}o
+-;      - ....
+-;  %p: PID of the child that serviced the request
+-;  %P: PID of the parent of the child that serviced the request
+-;  %q: the query string 
+-;  %Q: the '?' character if query string exists
+-;  %r: the request URI (without the query string, see %q and %Q)
+-;  %R: remote IP address
+-;  %s: status (response code)
+-;  %t: server time the request was received
+-;      it can accept a strftime(3) format:
+-;      %d/%b/%Y:%H:%M:%S %z (default)
+-;  %T: time the log has been written (the request has finished)
+-;      it can accept a strftime(3) format:
+-;      %d/%b/%Y:%H:%M:%S %z (default)
+-;  %u: remote user
+-;
+-; Default: "%R - %u %t \"%m %r\" %s"
+-;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
+- 
+-; The log file for slow requests
+-; Default Value: not set
+-; Note: slowlog is mandatory if request_slowlog_timeout is set
+-;slowlog = log/$pool.log.slow
+- 
+-; The timeout for serving a single request after which a PHP backtrace will be
+-; dumped to the 'slowlog' file. A value of '0s' means 'off'.
+-; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+-; Default Value: 0
+-;request_slowlog_timeout = 0
+- 
+-; The timeout for serving a single request after which the worker process will
+-; be killed. This option should be used when the 'max_execution_time' ini option
+-; does not stop script execution for some reason. A value of '0' means 'off'.
+-; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+-; Default Value: 0
+-;request_terminate_timeout = 0
+- 
+-; Set open file descriptor rlimit.
+-; Default Value: system defined value
+-;rlimit_files = 1024
+- 
+-; Set max core size rlimit.
+-; Possible Values: 'unlimited' or an integer greater or equal to 0
+-; Default Value: system defined value
+-;rlimit_core = 0
+- 
+-; Chroot to this directory at the start. This value must be defined as an
+-; absolute path. When this value is not set, chroot is not used.
+-; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
+-; of its subdirectories. If the pool prefix is not set, the global prefix
+-; will be used instead.
+-; Note: chrooting is a great security feature and should be used whenever 
+-;       possible. However, all PHP paths will be relative to the chroot
+-;       (error_log, sessions.save_path, ...).
+-; Default Value: not set
+-;chroot = 
+- 
+-; Chdir to this directory at the start.
+-; Note: relative path can be used.
+-; Default Value: current directory or / when chroot
+-;chdir = /var/www
+- 
+-; Redirect worker stdout and stderr into main error log. If not set, stdout and
+-; stderr will be redirected to /dev/null according to FastCGI specs.
+-; Note: on highloaded environement, this can cause some delay in the page
+-; process time (several ms).
+-; Default Value: no
+-;catch_workers_output = yes
+-
+-; Limits the extensions of the main script FPM will allow to parse. This can
+-; prevent configuration mistakes on the web server side. You should only limit
+-; FPM to .php extensions to prevent malicious users to use other extensions to
+-; exectute php code.
+-; Note: set an empty value to allow all extensions.
+-; Default Value: .php
+-;security.limit_extensions = .php .php3 .php4 .php5
+- 
+-; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
+-; the current environment.
+-; Default Value: clean env
+-;env[HOSTNAME] = $HOSTNAME
+-env[PATH] = $PATH
+-;env[TMP] = /tmp
+-;env[TMPDIR] = /tmp
+-;env[TEMP] = /tmp
+-
+-; Additional php.ini defines, specific to this pool of workers. These settings
+-; overwrite the values previously defined in the php.ini. The directives are the
+-; same as the PHP SAPI:
+-;   php_value/php_flag             - you can set classic ini defines which can
+-;                                    be overwritten from PHP call 'ini_set'. 
+-;   php_admin_value/php_admin_flag - these directives won't be overwritten by
+-;                                     PHP call 'ini_set'
+-; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
+-
+-; Defining 'extension' will load the corresponding shared extension from
+-; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
+-; overwrite previously defined php.ini values, but will append the new value
+-; instead.
+-
+-; Note: path INI options can be relative and will be expanded with the prefix
+-; (pool, global or @prefix@)
+-
+-; Default Value: nothing is defined by default except the values in php.ini and
+-;                specified at startup with the -d argument
+-;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www at 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
++; Include one or more files. If glob(3) exists, it is used to include a bunch of
++; files from a glob(3) pattern. This directive can be used everywhere in the
++; file.
++; Relative path can also be used. They will be prefixed by:
++;  - the global prefix if it's been set (-p argument)
++;  - @prefix@ otherwise
++include=/etc/php/fpm.d/*.conf
+--- /dev/null	2007-02-13 18:29:53.000000000 +0200
++++ php-5.5.7/sapi/fpm/php-fpm.conf-d.in	2013-12-16 17:58:04.073218925 +0200
+@@ -0,0 +1,395 @@
++; vim:ft=dosini
++;
++; Start a new pool named 'www'.
++; the variable $pool can we used in any directive and will be replaced by the
++; pool name ('www' here)
++[www]
++
++; Per pool prefix
++; It only applies on the following directives:
++; - 'slowlog'
++; - 'listen' (unixsocket)
++; - 'chroot'
++; - 'chdir'
++; - 'php_values'
++; - 'php_admin_values'
++; When not set, the global prefix (or @php_fpm_prefix@) applies instead.
++; Note: This directive can also be relative to the global prefix.
++; Default Value: none
++;prefix = /path/to/pools/$pool
++
++; Unix user/group of processes
++; Note: The user is mandatory. If the group is not set, the default user's group
++;       will be used.
++user = @php_fpm_user@
++group = @php_fpm_group@
++
++; The address on which to accept FastCGI requests.
++; Valid syntaxes are:
++;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
++;                            a specific port;
++;   'port'                 - to listen on a TCP socket to all addresses on a
++;                            specific port;
++;   '/path/to/unix/socket' - to listen on a unix socket.
++; Note: This value is mandatory.
++listen = /var/run/php/@processname at .sock
++
++; Set listen(2) backlog.
++; Default Value: 65535 (-1 on FreeBSD and OpenBSD)
++;listen.backlog = 65535
++
++; Set permissions for unix socket, if one is used. In Linux, read/write
++; permissions must be set in order to allow connections from a web server. Many
++; BSD-derived systems allow connections regardless of permissions. 
++; Default Values: user and group are set as the running user
++;                 mode is set to 0666
++;listen.owner = @php_fpm_user@
++;listen.group = @php_fpm_group@
++;listen.mode = 0666
++ 
++; List of ipv4 addresses of FastCGI clients which are allowed to connect.
++; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
++; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
++; must be separated by a comma. If this value is left blank, connections will be
++; accepted from any ip address.
++; Default Value: any
++listen.allowed_clients = 127.0.0.1
++
++; Specify the nice(2) priority to apply to the pool processes (only if set)
++; The value can vary from -19 (highest priority) to 20 (lower priority)
++; Note: - It will only work if the FPM master process is launched as root
++;       - The pool processes will inherit the master process priority
++;         unless it specified otherwise
++; Default Value: no set
++; priority = -19
++
++; Choose how the process manager will control the number of child processes.
++; Possible Values:
++;   static  - a fixed number (pm.max_children) of child processes;
++;   dynamic - the number of child processes are set dynamically based on the
++;             following directives. With this process management, there will be
++;             always at least 1 children.
++;             pm.max_children      - the maximum number of children that can
++;                                    be alive at the same time.
++;             pm.start_servers     - the number of children created on startup.
++;             pm.min_spare_servers - the minimum number of children in 'idle'
++;                                    state (waiting to process). If the number
++;                                    of 'idle' processes is less than this
++;                                    number then some children will be created.
++;             pm.max_spare_servers - the maximum number of children in 'idle'
++;                                    state (waiting to process). If the number
++;                                    of 'idle' processes is greater than this
++;                                    number then some children will be killed.
++;  ondemand - no children are created at startup. Children will be forked when
++;             new requests will connect. The following parameter are used:
++;             pm.max_children           - the maximum number of children that
++;                                         can be alive at the same time.
++;             pm.process_idle_timeout   - The number of seconds after which
++;                                         an idle process will be killed.
++; Note: This value is mandatory.
++pm = dynamic
++
++; The number of child processes to be created when pm is set to 'static' and the
++; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
++; This value sets the limit on the number of simultaneous requests that will be
++; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
++; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
++; CGI. The below defaults are based on a server without much resources. Don't
++; forget to tweak pm.* to fit your needs.
++; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
++; Note: This value is mandatory.
++pm.max_children = 5
++
++; The number of child processes created on startup.
++; Note: Used only when pm is set to 'dynamic'
++; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
++pm.start_servers = 2
++
++; The desired minimum number of idle server processes.
++; Note: Used only when pm is set to 'dynamic'
++; Note: Mandatory when pm is set to 'dynamic'
++pm.min_spare_servers = 1
++
++; The desired maximum number of idle server processes.
++; Note: Used only when pm is set to 'dynamic'
++; Note: Mandatory when pm is set to 'dynamic'
++pm.max_spare_servers = 3
++
++; The number of seconds after which an idle process will be killed.
++; Note: Used only when pm is set to 'ondemand'
++; Default Value: 10s
++;pm.process_idle_timeout = 10s;
++ 
++; The number of requests each child process should execute before respawning.
++; This can be useful to work around memory leaks in 3rd party libraries. For
++; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
++; Default Value: 0
++;pm.max_requests = 500
++
++; The URI to view the FPM status page. If this value is not set, no URI will be
++; recognized as a status page. It shows the following informations:
++;   pool                 - the name of the pool;
++;   process manager      - static, dynamic or ondemand;
++;   start time           - the date and time FPM has started;
++;   start since          - number of seconds since FPM has started;
++;   accepted conn        - the number of request accepted by the pool;
++;   listen queue         - the number of request in the queue of pending
++;                          connections (see backlog in listen(2));
++;   max listen queue     - the maximum number of requests in the queue
++;                          of pending connections since FPM has started;
++;   listen queue len     - the size of the socket queue of pending connections;
++;   idle processes       - the number of idle processes;
++;   active processes     - the number of active processes;
++;   total processes      - the number of idle + active processes;
++;   max active processes - the maximum number of active processes since FPM
++;                          has started;
++;   max children reached - number of times, the process limit has been reached,
++;                          when pm tries to start more children (works only for
++;                          pm 'dynamic' and 'ondemand');
++; Value are updated in real time.
++; Example output:
++;   pool:                 www
++;   process manager:      static
++;   start time:           01/Jul/2011:17:53:49 +0200
++;   start since:          62636
++;   accepted conn:        190460
++;   listen queue:         0
++;   max listen queue:     1
++;   listen queue len:     42
++;   idle processes:       4
++;   active processes:     11
++;   total processes:      15
++;   max active processes: 12
++;   max children reached: 0
++;
++; By default the status page output is formatted as text/plain. Passing either
++; 'html', 'xml' or 'json' in the query string will return the corresponding
++; output syntax. Example:
++;   http://www.foo.bar/status
++;   http://www.foo.bar/status?json
++;   http://www.foo.bar/status?html
++;   http://www.foo.bar/status?xml
++;
++; By default the status page only outputs short status. Passing 'full' in the
++; query string will also return status for each pool process.
++; Example: 
++;   http://www.foo.bar/status?full
++;   http://www.foo.bar/status?json&full
++;   http://www.foo.bar/status?html&full
++;   http://www.foo.bar/status?xml&full
++; The Full status returns for each process:
++;   pid                  - the PID of the process;
++;   state                - the state of the process (Idle, Running, ...);
++;   start time           - the date and time the process has started;
++;   start since          - the number of seconds since the process has started;
++;   requests             - the number of requests the process has served;
++;   request duration     - the duration in µs of the requests;
++;   request method       - the request method (GET, POST, ...);
++;   request URI          - the request URI with the query string;
++;   content length       - the content length of the request (only with POST);
++;   user                 - the user (PHP_AUTH_USER) (or '-' if not set);
++;   script               - the main script called (or '-' if not set);
++;   last request cpu     - the %cpu the last request consumed
++;                          it's always 0 if the process is not in Idle state
++;                          because CPU calculation is done when the request
++;                          processing has terminated;
++;   last request memory  - the max amount of memory the last request consumed
++;                          it's always 0 if the process is not in Idle state
++;                          because memory calculation is done when the request
++;                          processing has terminated;
++; If the process is in Idle state, then informations are related to the
++; last request the process has served. Otherwise informations are related to
++; the current request being served.
++; Example output:
++;   ************************
++;   pid:                  31330
++;   state:                Running
++;   start time:           01/Jul/2011:17:53:49 +0200
++;   start since:          63087
++;   requests:             12808
++;   request duration:     1250261
++;   request method:       GET
++;   request URI:          /test_mem.php?N=10000
++;   content length:       0
++;   user:                 -
++;   script:               /home/fat/web/docs/php/test_mem.php
++;   last request cpu:     0.00
++;   last request memory:  0
++;
++; Note: There is a real-time FPM status monitoring sample web page available
++;       It's available in: @EXPANDED_DATADIR@/fpm/status.html
++;
++; Note: The value must start with a leading slash (/). The value can be
++;       anything, but it may not be a good idea to use the .php extension or it
++;       may conflict with a real PHP file.
++; Default Value: not set 
++;pm.status_path = /status
++ 
++; The ping URI to call the monitoring page of FPM. If this value is not set, no
++; URI will be recognized as a ping page. This could be used to test from outside
++; that FPM is alive and responding, or to
++; - create a graph of FPM availability (rrd or such);
++; - remove a server from a group if it is not responding (load balancing);
++; - trigger alerts for the operating team (24/7).
++; Note: The value must start with a leading slash (/). The value can be
++;       anything, but it may not be a good idea to use the .php extension or it
++;       may conflict with a real PHP file.
++; Default Value: not set
++;ping.path = /ping
++
++; This directive may be used to customize the response of a ping request. The
++; response is formatted as text/plain with a 200 response code.
++; Default Value: pong
++;ping.response = pong
++
++; The access log file
++; Default: not set
++;access.log = log/$pool.access.log
++
++; The access log format.
++; The following syntax is allowed
++;  %%: the '%' character
++;  %C: %CPU used by the request
++;      it can accept the following format:
++;      - %{user}C for user CPU only
++;      - %{system}C for system CPU only
++;      - %{total}C  for user + system CPU (default)
++;  %d: time taken to serve the request
++;      it can accept the following format:
++;      - %{seconds}d (default)
++;      - %{miliseconds}d
++;      - %{mili}d
++;      - %{microseconds}d
++;      - %{micro}d
++;  %e: an environment variable (same as $_ENV or $_SERVER)
++;      it must be associated with embraces to specify the name of the env
++;      variable. Some exemples:
++;      - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e
++;      - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e
++;  %f: script filename
++;  %l: content-length of the request (for POST request only)
++;  %m: request method
++;  %M: peak of memory allocated by PHP
++;      it can accept the following format:
++;      - %{bytes}M (default)
++;      - %{kilobytes}M
++;      - %{kilo}M
++;      - %{megabytes}M
++;      - %{mega}M
++;  %n: pool name
++;  %o: output header
++;      it must be associated with embraces to specify the name of the header:
++;      - %{Content-Type}o
++;      - %{X-Powered-By}o
++;      - %{Transfert-Encoding}o
++;      - ....
++;  %p: PID of the child that serviced the request
++;  %P: PID of the parent of the child that serviced the request
++;  %q: the query string 
++;  %Q: the '?' character if query string exists
++;  %r: the request URI (without the query string, see %q and %Q)
++;  %R: remote IP address
++;  %s: status (response code)
++;  %t: server time the request was received
++;      it can accept a strftime(3) format:
++;      %d/%b/%Y:%H:%M:%S %z (default)
++;  %T: time the log has been written (the request has finished)
++;      it can accept a strftime(3) format:
++;      %d/%b/%Y:%H:%M:%S %z (default)
++;  %u: remote user
++;
++; Default: "%R - %u %t \"%m %r\" %s"
++;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
++ 
++; The log file for slow requests
++; Default Value: not set
++; Note: slowlog is mandatory if request_slowlog_timeout is set
++;slowlog = log/$pool.log.slow
++ 
++; The timeout for serving a single request after which a PHP backtrace will be
++; dumped to the 'slowlog' file. A value of '0s' means 'off'.
++; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
++; Default Value: 0
++;request_slowlog_timeout = 0
++ 
++; The timeout for serving a single request after which the worker process will
++; be killed. This option should be used when the 'max_execution_time' ini option
++; does not stop script execution for some reason. A value of '0' means 'off'.
++; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
++; Default Value: 0
++;request_terminate_timeout = 0
++ 
++; Set open file descriptor rlimit.
++; Default Value: system defined value
++;rlimit_files = 1024
++ 
++; Set max core size rlimit.
++; Possible Values: 'unlimited' or an integer greater or equal to 0
++; Default Value: system defined value
++;rlimit_core = 0
++ 
++; Chroot to this directory at the start. This value must be defined as an
++; absolute path. When this value is not set, chroot is not used.
++; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
++; of its subdirectories. If the pool prefix is not set, the global prefix
++; will be used instead.
++; Note: chrooting is a great security feature and should be used whenever 
++;       possible. However, all PHP paths will be relative to the chroot
++;       (error_log, sessions.save_path, ...).
++; Default Value: not set
++;chroot = 
++ 
++; Chdir to this directory at the start.
++; Note: relative path can be used.
++; Default Value: current directory or / when chroot
++;chdir = /var/www
++ 
++; Redirect worker stdout and stderr into main error log. If not set, stdout and
++; stderr will be redirected to /dev/null according to FastCGI specs.
++; Note: on highloaded environement, this can cause some delay in the page
++; process time (several ms).
++; Default Value: no
++;catch_workers_output = yes
++
++; Limits the extensions of the main script FPM will allow to parse. This can
++; prevent configuration mistakes on the web server side. You should only limit
++; FPM to .php extensions to prevent malicious users to use other extensions to
++; exectute php code.
++; Note: set an empty value to allow all extensions.
++; Default Value: .php
++;security.limit_extensions = .php .php3 .php4 .php5
++ 
++; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
++; the current environment.
++; Default Value: clean env
++;env[HOSTNAME] = $HOSTNAME
++env[PATH] = $PATH
++;env[TMP] = /tmp
++;env[TMPDIR] = /tmp
++;env[TEMP] = /tmp
++
++; Additional php.ini defines, specific to this pool of workers. These settings
++; overwrite the values previously defined in the php.ini. The directives are the
++; same as the PHP SAPI:
++;   php_value/php_flag             - you can set classic ini defines which can
++;                                    be overwritten from PHP call 'ini_set'. 
++;   php_admin_value/php_admin_flag - these directives won't be overwritten by
++;                                     PHP call 'ini_set'
++; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
++
++; Defining 'extension' will load the corresponding shared extension from
++; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
++; overwrite previously defined php.ini values, but will append the new value
++; instead.
++
++; Note: path INI options can be relative and will be expanded with the prefix
++; (pool, global or @prefix@)
++
++; Default Value: nothing is defined by default except the values in php.ini and
++;                specified at startup with the -d argument
++;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www at 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
++
+--- php-5.5.7/sapi/fpm/config.m4~	2013-12-16 17:57:03.000000000 +0200
++++ php-5.5.7/sapi/fpm/config.m4	2013-12-16 18:00:34.936527309 +0200
+@@ -609,7 +609,7 @@
+ 
+   PHP_ADD_BUILD_DIR(sapi/fpm/fpm)
+   PHP_ADD_BUILD_DIR(sapi/fpm/fpm/events)
+-  PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html)
++  PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/php-fpm.conf-d sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html)
+   PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/sapi/fpm/Makefile.frag])
+ 
+   SAPI_FPM_PATH=sapi/fpm/php-fpm
+--- php-5.5.7/sapi/fpm/Makefile.frag~	2013-12-16 17:57:03.000000000 +0200
++++ php-5.5.7/sapi/fpm/Makefile.frag	2013-12-16 18:01:19.511829907 +0200
+@@ -11,8 +11,9 @@
+ 	@$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
+ 
+ 	@echo "Installing PHP FPM config:        $(INSTALL_ROOT)$(sysconfdir)/" && \
+-	$(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir) || :
++	$(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/fpm.d || :
+ 	@$(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf || :
++	@$(INSTALL_DATA) sapi/fpm/php-fpm.conf-d $(INSTALL_ROOT)$(sysconfdir)/fpm.d/www.conf || :
+ 
+ 	@echo "Installing PHP FPM man page:      $(INSTALL_ROOT)$(mandir)/man8/"
+ 	@$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/php.git/commitdiff/b604e307b885c606f6d0572e15fec5c4cc70d383




More information about the pld-cvs-commit mailing list