PHP作为Apache的一个module(libphp5.so)集成到Apache进程(httpd)运行,这种mod_php的运行模式是最常用的,这时PHP的运行跟php-cgi没有任何关系.mod_php的配置是这样:
LoadModule php5_module modules/libphp5.so
AddHandler application/x-httpd-php .php
可以配置extra/httpd-mpm.conf来控制Apache的进程数量.
如果你在Apache里用mod_fcgid方式来运行PHP,则需要使用php-cgi,这时Apache作为有一个FastCGI进程管理器来管理php-cgi,在httpd.conf配置:
#载入mod_fcgid模块(不能和php5_module同时使用)
LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .php
#php-cgi的进程数量
FcgidMaxProcesses 5
#指定php-cgi来处理php请求
FcgidWrapper /png/php/5.4.39NTS/bin/php-cgi .php
#在需要使用php-cgi来执行PHP的Directory加上Options +ExecCGI,比如:
Options +ExecCGI
另外在Linux上还有一种非常常用的组合,就是Nginx搭配php-fpm使用,其中php-fpm跟php-cgi没有任何关系,php-fpm自身就集成了PHP解释器,php-fpm有自己的进程管理器,只处理Nginx转发过来的PHP请求并返回,跟Nginx是松耦合的.