Re: [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n?

From: Date: Wed, 09 Sep 2009 07:43:27 +0000
Subject: Re: [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n?
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-45533@lists.php.net to get a copy of this message
On 09/09/2009 03:01 AM, Rasmus Lerdorf wrote:
This has been discussed before. See: http://news.php.net/php.internals/44476 http://news.php.net/php.internals/44480 http://news.php.net/php.internals/44484 http://news.php.net/php.internals/44485 Basically it comes down to figuring out whether to extend the existing FastCGI SAPI to support the process management in FPM, or add it as a separate SAPI.
As separate SAPI, wouldn't it duplicate a LOT of code, basically for nothing? I'd rather see the good parts of this merged into the one-and-only sapi/cgi/ code instead of creating yet another SAPI nobody maintains for real. --Jani
-Rasmus dreamcat four wrote:
Hi! We have today been asked by Debian and Ubuntu Maintainers to merge our code up to PHP repository. They have stated that they want to see the fpm sapi variant officially supported. It would be nice to hear what you guy's official decision would be about something like this. Here are some details about the FPM Project, and it's current status: Andrei has done very clean, pristine code since forking the fcgi-sapi and moving it forward in the 0.602. I have been involved recently in this simply as a packager for the new 0.6 line of FPM Project. We maintain ourselves as a seperate project on launchpad, and have not submitting any code to you guys (PHP). But since this request from debian/ubuntu, i guess we need for some type of upstream sync or import process. We are versioned in bzr and github. ## Autoconf This project relies upon its own versions of the autoconf toolset to generate its ./configure script. To use autoconf, then run ./build-autotools which will install it locally in the directory. If ./build-autotools fails we have more information in autoconf.markdown. ## Build process Compilation is pretty straightforward and hassle-free. The make process can be described as: 1) Compile the php sources into object files in the php build directory 2) Compile the fpm sources into object files in the fpm build directory 3) Link all the php object file with these fpm object file together 4) Output: Static php5 binary, which is php base and using the fpm's version of fcgi-SAPI as frontend Fpm is mixed into php at the link-level. This de-couples the fpm sources, making the process manager part somewhat less sensitive to changes in the php project. PHP-FPM is derived from the fcgi-sapi. We no longer patch directly onto php-maintained files. Instead there are 3 similar counterpart files from sapi/cgi and fpm's sapi are periodically synced to them. Libevent library is included for the process management. ## Licence Fpm has a very minimal licence. Fpm-sapi is a php license. The bundled Libevent library is OpenBSD. Please Contact Andrei Nigmatulin regarding any further licensing questions. You should otherwise credit Andrei Nigmatulin as the author of /fpm sources. ## Compatibility Fpm 0.6.3+ is coming soon for the following versions of php: php-5.2.10+ (ready) php-5.3.any (definitely coming this week) php-6.0 /trunk (may be this week also, if no hitch) The script in our src tree 'generate-fpm-patch' is a possible way to sync changes. Or perhaps there's a better way to get from bzr into a subtree as svn. The project's sub-tree is; config/ libevent/ man/ src/ src/fpm/ src/sapi/ Would we be required to change the layout of our project's subtree? And then which directory can it exist? a) ext/fpm/ b) fpm/ c) sapi/fpm/ ? Again, please any thoughts / discussion welcome. Best regards, dreamcat4 dreamcat4@gmail.com


« previous php.internals (#45533) next »