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
dreamc...@gmail.com





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to