rfc:fpm:ini_syntax
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:fpm:ini_syntax [2010/03/30 13:56] – fat | rfc:fpm:ini_syntax [2011/04/06 10:59] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Request for Comments: FPM SAPI inclusion | + | ====== Request for Comments: FPM INI Syntax |
- | * Version: 1.0 | + | * Version: 1.2 |
- | * Date: 2010-03-30 | + | * Date: 2010-04-21 |
* Author: Jérôme Loyet < | * Author: Jérôme Loyet < | ||
* Status: Under Discussion | * Status: Under Discussion | ||
Line 7: | Line 7: | ||
This RFC discusses the FPM configuration file syntax and it's replacement from XML to INI. | This RFC discusses the FPM configuration file syntax and it's replacement from XML to INI. | ||
+ | |||
+ | **WE ARE NOT TALKING HERE ABOUT CHANGING SOMETHING INTO main/* or Zend/*. | ||
+ | This dicussion is about sapi/fpm ONLY** | ||
===== Introduction ===== | ===== Introduction ===== | ||
Line 23: | Line 26: | ||
* At least one **worker** section wich includes: | * At least one **worker** section wich includes: | ||
* specific simple directives (user=, group=, status=, ...) | * specific simple directives (user=, group=, status=, ...) | ||
- | * specific array directives (env[PATH]=, | + | * specific array directives (environment[PATH]=, |
- | * a reference system. A worker can be set as a reference and it'll never be instantiated. Classic workers can use it to defined default values. For exemple, timeout directive are set once in a reference worker and normal workers will use this worker as a reference. | + | |
===== Implementation ===== | ===== Implementation ===== | ||
I propose to implement the previous requirements this way: | I propose to implement the previous requirements this way: | ||
- | * The include directive is a simple key/value. The key is called | + | * The include directive is a simple key/value. The key is named **include**. The value is a pattern recognized by [[http:// |
- | * The global section can start with an INI section | + | include=/ |
- | * Workers start with a INI section. The value of the section is called with the name of the worker. < | + | * The global section can start with an INI section |
- | * a directive to set the worker as a reference. It's called **is_a_reference** and can be set to yes or no. < | + | * Simple directive values are simple key/value pairs.< |
- | * a directive to set the reference to use. It's called **reference** and can be set to any worker set as a reference by **is_a_reference**. < | + | * Array directive values are arrays of key/value pairs.< |
- | \\ | + | php_define[sendmail_path] = / |
- | \\ | + | * Workers starts with a INI section. The value of the section is named with the worker' |
- | __**The RFC is not yet finished.**__ | + | |
+ | ===== Yet known directives ===== | ||
+ | ==== Global directives ==== | ||
+ | * **daemonize**. Set to yes/no. Default to yes. Does FPM run as a standalone daemon or stays in foreground (debugging purpose). | ||
+ | * **pid**. Set to PID file location. | ||
+ | * **error_log**. Set to error file location. | ||
+ | * **log_level**. Set the log_level: notice, warn, error or alert. | ||
+ | * **process_control_timeout**. Set a time value. | ||
+ | * **emergency_restart_interval**. Set a time value. | ||
+ | * **emergency_restart_threshold**. Set a time value. | ||
+ | |||
+ | ==== Worker directives ==== | ||
+ | * **user**. | ||
+ | * **group**. | ||
+ | * **pm**. | ||
+ | * **pm.start_servers**. | ||
+ | * **pm.min_spare_servers**. | ||
+ | * **pm.max_spare_servers**. | ||
+ | * **pm.max_children**. | ||
+ | * **pm.max_requests**. | ||
+ | * **pm.status_path**. | ||
+ | * **pm.max_requests**. | ||
+ | * **listen.address**. | ||
+ | * **listen.backlog**. | ||
+ | * **listen.owner**. | ||
+ | * **listen.group**. | ||
+ | * **listen.mode**. | ||
+ | * **listen.allowed_client**. | ||
+ | * **ping.path**. | ||
+ | * **ping.response**. | ||
+ | * **chroot**. | ||
+ | * **chdir**. | ||
+ | * **request_terminate_timeout**. | ||
+ | * **request_slowlog_timeout**. | ||
+ | * **slowlog**. | ||
+ | * **rlimit_core**. | ||
+ | * **rlimit_files**. | ||
+ | * **catch_worker_output**. | ||
+ | * **php_value[]**. | ||
+ | * **php_admin_value[]**. | ||
+ | * **php_flag[]**. | ||
+ | * **php_admin_flag[]**. | ||
+ | * **env[]**. | ||
+ | * **include**. | ||
+ | ===== Rename directive proposal ===== | ||
+ | In this section, I want to propose to rename some of the yet know directives. | ||
+ | * **pm.style** to **pm**. Remove **style** and keep only **pm**. It's enough and clearer. It's the main option for the pm subsection. | ||
+ | * **pm.dynamic.start_servers** to **pm.start_servers**. As start_servers is only used with dynamic mode, it's not necessary to precise it's dynamic. | ||
+ | * **pm.dynamic.min_spare_servers** to **pm.min_spare_servers**. Same as start_servers. | ||
+ | * **pm.dynamic.max_spare_servers** to **pm.max_spare_servers**. Same as start_servers. | ||
+ | * **status** to **pm.status_path**. The status directive is directly related to PM as it's its status page. | ||
+ | * **listen_address** to **listen.address** | ||
+ | * **allowed_clients** to **listen.allowed_clients** | ||
+ | * **ping** and **pong** to a subsection: | ||
+ | * **ping.path** to set the ping path request (/ping) | ||
+ | * **ping.response** to set the response from the previous request | ||
+ | * **max_requests** to **pm.max_requests.**. Move this directive to the PM array as it's directly related to PM. | ||
+ | * **environment[]** to **env[]**. The short word env is enough to understand and closer to reality (env shell command). | ||
+ | * **php_define[]** to **php_flag[]**, | ||
+ | |||
+ | ===== Examples ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
===== Proposal and Patch ===== | ===== Proposal and Patch ===== | ||
- | I've started writting | + | * The first version of the patch is available at http://www.fatbsd.com/ |
===== Changelog ===== | ===== Changelog ===== | ||
- | fat - 2010-03-30 - initial RFC version. | + | * fat - 2010-03-30 - initial RFC version. |
+ | * fat - 2010-04-13 - remove unnecessary use of arrays (for pm, ping and listen) + add examples | ||
+ | * fat - 2010-04-15 - first revision of the patch has been added | ||
+ | * fat - 2010-04-15 - add warning header to explain this RFC is only about sapi/ | ||
+ | * fat - 2010-04-21 - commit the patch (revision 298281) |
rfc/fpm/ini_syntax.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1