Note: if you want to use either mod_fastcgi or mod_fcgid, be aware of that each process has its own APC opcode cache, which in turn wastes memory resource, unless you use PHP-FPM to share APC cache between processes.

[] PHP-FPM not only supports TCP/IP connections (ex: 127.0.0.1:9000) but also the socket based connections (ex: /tmp/php-fpm.sock).

The advantage of running PHP-FPM on socket connections instead of TCP/IP is that the socket connections are much more faster than TCP/IP connections (around 10-15%) because it saves the passing the data over the different layers of TCP/IP stack.
Therefore, it is recommended to run the PHP-FPM on socket connections over TCP/IP when you are using the same server for Apache and PHP-FPM. If you are using the different servers for Apache and PHP-FPM then the socket connections for PHP-FPM will not work.

[] Use mod_fastcgi's FastCgiExternalServer to point to PHP-FPM, no more wrapper script please!!

[] Most of apache config examples are outdated or wrong, or copy from other wrong articles.

[] PHP-FPM is a daemon and mod_fcgid's official site (http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html) is not talking about PHP-FPM, it is talking about php patched with fastcgi library http://www.fastcgi.com/drupal/node/5?q=node/10.

[] PHP-FPM is native in PHP since 5.3.3, so the mod_fcgid is not the choice for PHP user at the mean time, unless it provide Directive similiar to mod_fastcgi's FastCgiExternalServer.

[] Why shouldn't I use Apache2 with a threaded MPM in a production environment?
PHP is glue. It is the glue used to build cool web applications by sticking dozens of 3rd-party libraries together and making it all appear as one coherent entity through an intuitive and easy to learn language interface. The flexibility and power of PHP relies on the stability and robustness of the underlying platform. It needs a working OS, a working web server and working 3rd-party libraries to glue together. When any of these stop working PHP needs ways to identify the problems and fix them quickly. When you make the underlying framework more complex by not having completely separate execution threads, completely separate memory segments and a strong sandbox for each request to play in, further weaknesses are introduced into PHP's system.

If you want to use a threaded MPM, look at a FastCGI configuration where PHP is running in its own memory space.

Edit no-accf.conf
# vim /usr/local/etc/apache22/Includes/no-accf.conf
<IfDefine NOHTTPACCEPT>
### make sure you do comment out following two lines
### in order to make accf_http module (the 'httpready' Accept Filter) to work.
#AcceptFilter http none
#AcceptFilter https none
</IfDefine>