Re: [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n?
| From: | Rasmus Lerdorf | Date: | Wed, 09 Sep 2009 00:01:48 +0000 |
| Subject: | Re: [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-45524@lists.php.net to get a copy of this message | ||
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.
-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
>