Wishlist

From PHP-FPM

Revision as of 21:06, 19 July 2010 by Ihar (Talk | contribs)
Jump to: navigation, search

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.

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

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
  • (mike) statistics/metrics/reporting
    • (mike) perhaps a PHP function or a socket to show the engine name, how many active processes, etc.
  • (PR) Correct handling of SIGTERM and SIGQUIT, and handle SIGHUP in the same way as SIGUSR2. Detailed information available at my subpage for Proper Signal Handling here.

Probably not going to be implemented

  • (martin) htscanner mode, to handle php.ini config in .htaccess files like the pecl/htscanner module does

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.