Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45523 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 78538 invoked from network); 8 Sep 2009 23:52:44 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 8 Sep 2009 23:52:44 -0000 Authentication-Results: pb1.pair.com header.from=dreamcat4@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=dreamcat4@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.226 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: dreamcat4@gmail.com X-Host-Fingerprint: 209.85.218.226 mail-bw0-f226.google.com Received: from [209.85.218.226] ([209.85.218.226:36243] helo=mail-bw0-f226.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 35/78-26597-B4EE6AA4 for ; Tue, 08 Sep 2009 19:52:44 -0400 Received: by bwz26 with SMTP id 26so2956744bwz.23 for ; Tue, 08 Sep 2009 16:52:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:from:date:message-id :subject:to:cc:content-type; bh=bDQ+CQK2/DIRhCVK2pymOcHwkFe7E4OsEkVRRY5gYLw=; b=eE6+0jHIA/1x0pvOUximTKoKJIfEyaK31kNvZ5aa9uzuxRVgMEUT1FdQfezJDLj1OB MZA7uyJsOG7Y8Imio8lZvRcG/J9zN0SjeW5lfDqiMDRZw2U2wXC15MHutIJZlIocv4Hv 8s6WaTpD1KUrmKeLxnh57soU8jWGngRQaKKbg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:cc:content-type; b=UHLvAsCZM4JFKWm/RHImT9ViNHJL1MlDDzSn0rq+gL2wVF3aX9MorH5Xaw7ziJo/85 4n7+sV6t0OzJcQdfB6OqFBXCsNgd72Z7DUXJiH/gXDmgaa4MOBSNe5M4A2P33sL9seLC N2NzFpmixSha67pPQhAu3rtQ7YVD0zwtD08UQ= MIME-Version: 1.0 Received: by 10.223.4.208 with SMTP id 16mr6157710fas.69.1252453960100; Tue, 08 Sep 2009 16:52:40 -0700 (PDT) Date: Wed, 9 Sep 2009 00:52:20 +0100 Message-ID: <99cf22520909081652v29a9ea56q33882849cce3081e@mail.gmail.com> To: internals@lists.php.net Cc: jvlad , Dmitri Dmitrienko Content-Type: text/plain; charset=UTF-8 Subject: [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n? From: dreamcat4@gmail.com (dreamcat four) 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