Table of Contents

Request for Comments: FPM SAPI inclusion

This RFC discusses FPM SAPI and its inclusion to the core PHP distribution.

Introduction

FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features (mostly) useful for heavy-loaded sites.

These features include:

continuing to do something time-consuming (video converting, stats processing etc.);

FPM uses BSD-licensed libevent (this is the only external requirement) to handle connections and manage its children.

Why do we need FPM?

FastCGI becomes more and more popular these days as people tend to realize that 'light' HTTP servers (lighttpd, nginx and the like) are much more efficient on heavy-loaded frontends than traditional Apache.

The FastCGI implementation in sapi/cgi requires third-party applications like spawn-fcgi or mod_fcgi to manage its processes and is a 'core' implementation of FastCGI protocol lacking a lot of features that are crucial for many complex real-life applications.

Proposal and Patch

FPM is ready to be merged from PHP_5_3_FPM branch in the official PHP SVN. All the FPM code is concentrated in sapi/fpm and no additional patches are required.

http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3_FPM/sapi/fpm/

Changelog

tony - 2010-03-22 - initial RFC version.