Wishlist
From PHP-FPM
If you wish to add something to the list, try to place it in order of priority, and include your wiki name in front of it.
Note: this is being updated to align with the FPM SAPI in PHP Core (as of 5.3.3+)
Contents |
Alignment with core
-
(mike) mainline PHP inclusion
Process modeling
-
(mike) adaptive process spawning (largest missing piece right now) - possibly look at a suEXEC type approach to things (this requires much discussion)
- one idea, but on hindsight is very sloppy: (martin) multi-user pools, one single pool can impersonate different users based on the path of the php script to execute for each request, the username will be identified by a regexp like /home/user1/public_html/page.php -> /home/(\w+)/.* -> user1
-
(dian) adaptive processes quit (to consume less memory)
Configuration file related
-
(mike) change config file syntax-
Ideally would be driven from php.ini for a single configuration file -
Andrei had suggested adopting nginx's - this probably won't help anymore, it's just yet another format
-
-
(mike) add ability for include files (should be easier depending on the config syntax)-
would require include functionality for php.ini, which has been suggested to PHP internals -
if config file does not change, it still would need support from the XML-based php-fpm.conf
-
- (Jason Giedymin) Change all internal defaults to reflect those set in the default XML config file. Defaults should always have margin of safety for production use. Internals values such as the timeout defaulting to 0 could be considered too wild. This change would both satisfy consistent documentation as well as enhanced security. Additional config file profiles could also be supplied to enhance _correct_ usage:
- Php-fpm.debug.conf
- Php-fpm.production.conf
- Php-fpm.default.conf
- Php-fpm.conf (is a copy of default.conf)
-
(ihar) add an ability to setup defaults for pools, so that each similar pool could contain only unique parameters.
Internals
-
(mike) remove as many external dependencies as possible-
PHP's FastCGI SAPI -
patched libevent (in the new PHP-FPM)
-
- (mike) CPU affinity/load balancing (otherwise PHP engines will sit on whatever CPU they were assigned, perhaps ensuring they get balanced around would help on a multi-core machine)
Per-pool abilities
- (mike) SIMPLE: Ability to point to a different php.ini file per pool (just php-cgi -c) - may not be needed
- (mike) ability to enable modules on a per-pool basis (essentially extension=foo.so)
- (xaxo) a way to restart single pools
Informational
- (mike) logging to syslog - in progress!
-
(mike) statistics/metrics/reporting- (mike) perhaps a PHP function or a socket to show the engine name, how many active processes, etc.
Probably not going to be implemented
- (martin) htscanner mode, to handle php.ini config in .htaccess files like the pecl/htscanner module does
- (mike) htscanner already does this. Don't see the need to bloat PHP-FPM with it. Also I believe PHP 5.3.x's supports this out of the box now, see: http://us3.php.net/manual/en/migration53.ini.php
Willing to Contribute?
Please add your name or company and any notes about your contributions.
- Mike - I'm willing to contribute a few hundred dollars USD towards some of these if needed.
- If you use PHP-FPM please consider donating. I will personally track the money and use it towards specific features or in general. Thank you. Contact mike503 AT gmail.com if you want to contribute.
