rfc:fpm:ini_syntax

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rfc:fpm:ini_syntax [2010/03/30 17:15]
fat
rfc:fpm:ini_syntax [2017/09/22 13:28] (current)
Line 1: Line 1:
 ====== Request for Comments: FPM INI Syntax ====== ====== 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 <​jerome.at.loyet.dot.net>​   * Author: Jérôme Loyet <​jerome.at.loyet.dot.net>​
-  * Status: ​Under Discussion+  * Status: ​Implemented in PHP 5.3
   * First Published at: http://​wiki.php.net/​rfc/​fpm/​ini_syntax   * First Published at: http://​wiki.php.net/​rfc/​fpm/​ini_syntax
  
 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 24: Line 27:
     * specific simple directives (user=, group=, status=, ...)     * specific simple directives (user=, group=, status=, ...)
     * specific array directives (environment[PATH]=,​ php_define[sendmail_path]=,​ ...)     * specific array directives (environment[PATH]=,​ php_define[sendmail_path]=,​ ...)
-  * A reference system. A worker can be set as a reference and it'll never be instantiated. Classic workers can use it to define default values. For exemple, timeout directives are set once in a reference worker and normal workers will use this worker as a reference. 
  
 ===== Implementation ===== ===== Implementation =====
Line 35: Line 37:
 php_define[sendmail_path] = /​bin/​mini_sendmail -t -i -fwww@my.site.com</​code>​ php_define[sendmail_path] = /​bin/​mini_sendmail -t -i -fwww@my.site.com</​code>​
   * Workers starts with a INI section. The value of the section is named with the worker'​s name. All the following directives are related to this worker until another INI section starts a new worker.<​code>​[www.my.site.com]</​code>​   * Workers starts with a INI section. The value of the section is named with the worker'​s name. All the following directives are related to this worker until another INI section starts a new worker.<​code>​[www.my.site.com]</​code>​
-    * The directive **is_a_reference** set the current worker as a reference. It can be set to yes or no. <​code>​is_a_reference=yes ​  ; incompatible with reference</​code>​ 
-    * The directive **reference** set the worker to use as a reference. It's named **reference** and can be set to any worker set as a reference by **is_a_reference**. <​code>​reference=default ​  ; incompatible with is_a_reference</​code>​ 
  
 ===== Yet known directives ===== ===== Yet known directives =====
 ==== Global directives ==== ==== Global directives ====
   * **daemonize**. Set to yes/no. Default to yes. Does FPM run as a standalone daemon or stays in foreground (debugging purpose).   * **daemonize**. Set to yes/no. Default to yes. Does FPM run as a standalone daemon or stays in foreground (debugging purpose).
-  * **pid_file**. Set to PID file location.+  * **pid**. Set to PID file location.
   * **error_log**. Set to error file location.   * **error_log**. Set to error file location.
   * **log_level**. Set the log_level: notice, warn, error or alert.   * **log_level**. Set the log_level: notice, warn, error or alert.
Line 51: Line 51:
   * **user**.   * **user**.
   * **group**.   * **group**.
-  * **pm.style**. +  * **pm**. 
-  * **pm.dynamic.start_servers**. +  * **pm.start_servers**. 
-  * **pm.dynamic.min_spare_servers**. +  * **pm.min_spare_servers**. 
-  * **pm.dynamic.max_spare_servers**.+  * **pm.max_spare_servers**.
   * **pm.max_children**.   * **pm.max_children**.
-  * **listen_address**.+  * **pm.max_requests**. 
 +  * **pm.status_path**. 
 +  * **pm.max_requests**. 
 +  * **listen.address**.
   * **listen.backlog**.   * **listen.backlog**.
   * **listen.owner**.   * **listen.owner**.
   * **listen.group**.   * **listen.group**.
   * **listen.mode**.   * **listen.mode**.
-  * **status**. +  * **listen.allowed_client**. 
-  * **ping**. +  * **ping.path**. 
-  * **pong**. +  * **ping.response**.
-  * **php_define[]**.+
   * **chroot**.   * **chroot**.
   * **chdir**.   * **chdir**.
-  * **allowed_clients**. 
-  * **environment[]**. 
   * **request_terminate_timeout**.   * **request_terminate_timeout**.
   * **request_slowlog_timeout**.   * **request_slowlog_timeout**.
Line 74: Line 74:
   * **rlimit_core**.   * **rlimit_core**.
   * **rlimit_files**.   * **rlimit_files**.
-  * **max_requests**. 
   * **catch_worker_output**.   * **catch_worker_output**.
-===== Not yet known directives =====+  * **php_value[]**. 
 +  * **php_admin_value[]**. 
 +  * **php_flag[]**. 
 +  * **php_admin_flag[]**. 
 +  * **env[]**.
   * **include**.   * **include**.
-  * **reference**. 
-  * **is_a_reference**. 
 ===== Rename directive proposal ===== ===== Rename directive proposal =====
 In this section, I want to propose to rename some of the yet know directives. In this section, I want to propose to rename some of the yet know directives.
-  * **pm.style** to **pm[mode]**. Set process manager directives into an array. Rename also style in mode which is more understandable,​ I think+  * **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.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.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. +  * **pm.dynamic.max_spare_servers** to **pm.max_spare_servers**. Same as start_servers. 
-  * **pm.max_children** to **pm[max_children]**. +  * **status** to **pm.status_path**. The status directive is directly related to PM as it's its status page. 
-  * **status** to **pm[status]**. The status directive is directly related to PM as it's its status page. +  * **listen_address** to **listen.address** 
-  * Set listen directives as an array, like PM: +  * **allowed_clients** to **listen.allowed_clients** 
-    ​* **listen[address]** +  * **ping** and **pong** to a subsection
-    ​* **listen[backlog]** +    * **ping.path** to set the ping path request (/ping) 
-    * **listen[user]** +    * **ping.response** to set the response from the previous request 
-    * **listen[group]** +  * **max_requests** to **pm.max_requests.**. Move this directive to the PM array as it's directly related to PM.
-    * **listen[mode]** +
-  * **ping** and **pong** to a ping array+
-    * **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).   * **environment[]** to **env[]**. The short word env is enough to understand and closer to reality (env shell command).
   * **php_define[]** to **php_flag[]**,​ **php_value[]**,​ **php_admin_flag[]**,​ **php_admin_value[]**. This is the same syntax as the apache sapi.   * **php_define[]** to **php_flag[]**,​ **php_value[]**,​ **php_admin_flag[]**,​ **php_admin_value[]**. This is the same syntax as the apache sapi.
-  * **allowed_clients** to **allowed_client[]** as there could be more than one allowed client. 
  
 +===== Examples =====
 +  * [[http://​www.fatbsd.com/​fpm/​xml.html|The previous XML syntax]]
 +  * [[http://​www.fatbsd.com/​fpm/​fpm_ini.html|The new INI syntax]]
 ===== Proposal and Patch ===== ===== Proposal and Patch =====
  
-I've started writting ​the patch. ​Work In progress.+  * The first version of the patch is available at http://www.fatbsd.com/​fpm/​fpm-ini-v1.patch. The include function is not YET implemented,​ so as the reference system which is maybe too complicated.
  
 ===== 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/​fpm/​* 
 +  * fat - 2010-04-21 - commit the patch (revision 298281)
rfc/fpm/ini_syntax.1269969347.txt.gz · Last modified: 2017/09/22 13:28 (external edit)