[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