Antony - thank you so much! This is quite a surprise though, I didn't know there were plans for this... I was talking to gwynne on IRC about the best way to get this going.
I suppose it being a separate SAPI works, but I had also thought: "What if it was just a modification to the FCGI SAPI, and the FPM management features, config file parsing, all that were in a standalone daemon. That allows for a lot of changes and such to be done in the daemon portion without having to align it with PHP releases" I don't think a lot has to be done really to the internals once the portions you've listed before were adopted. Only a few IPC, socket or command line options to start/stop from an external daemon would need to be involved, and communication to allow for adaptive process spawning... We've been wanting to change the configuration file syntax already and the majority of "wishlist" items we've wanted to add mainly fall under the manager daemon... I am just scared that it may take a while for those to be released if it has to fall under PHP's release cycle (not to mention do other SAPIs have their own configuration files and such? Seems like an awful lot of 'special needs' is now bundled in to a SAPI inside of PHP core) Either way though - this is a win. I was unaware this was even happening. We've been having discussions on the php-fpm mailing list about this and a little bit of internal battling on it too (mainly 100% php core vs. only the portions needed in php core, etc.) This is awesome though. Hopefully we can get things moving faster. If anyone is interested in the ideas we have to make things easier to use and enhance some functionality *please* don't hesitate to email me off list. I have a feeling the majority of items aren't actually that difficult. On Fri, Dec 4, 2009 at 4:53 AM, Antony Dovgal <[email protected]> wrote: > Hello all. > > I'm glad to announce that we now have FPM SAPI available for testing in a > separate SVN branch. > > You can check out its sources using the following command: > svn co http://svn.php.net/repository/php/php-src/branches/PHP_5_3_FPM > php_5_3_fpm > > Building FPM is as easy as `./configure --enable-fpm && make install`. > After that you need to adjust the default config file (installed into > $prefix/etc) > and run `php-fpm`. > > > For those who don't know what FPM is: FPM (FastCGI Process Manager) is an > alternative > PHP FastCGI implementation with some additional features useful for > heavy-loaded sites. > These features include: > - advanced process management with graceful stop/start; > - ability to start workers with different uid/gid/chroot/environment and > different php.ini (replaces safe_mode); > - stdout & stderr logging; > - emergency restart in case of accidental opcode cache destruction; > - accelerated upload support; > - "slowlog"; > - fastcgi_finish_request() - special function to finish request & flush all > data while > continuing to do something time-consuming (video converting, stats processing > etc.); > and some more. > > You are welcome to test the code and report any issues to me (since it's not > fully official, > we don't have a category @ bugs.php.net yet). > > -- > Wbr, > Antony Dovgal > --- > http://pinba.org - realtime statistics for PHP > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
