mod_php vs cgi vs fast-cgi

我一直在试图了解加载PHP作为一个Apache模块与其余的确切意义/目的。

当php作为apache模块安装时,到底发生了什么? 例如,读取php-ini文件是否每次发出php请求或者单独加载php模块?

PHP模块在mod_php,FastCGI和FPM中都被加载时读取php.ini。 在常规的CGI模式下,configuration文件必须在运行时读取,因为没有任何预先制作的进程。

我认为将PHP作为Web服务器内部模块运行的唯一真正的优点是configuration可能更容易。 在FastCGI或FPM模式下运行时,性能会得到很大的提高,并且可以使用线程化的或者分发的Apache(而不是分叉的),或者当您完全抛弃Apache。

此链接可能有所帮助: http : //2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

结论

如果纯粹的速度是你以后,那么留在mod_php。

但是,为了更好地利用资源和提高效率,请考虑转移到fcgid。

当Apache模块加载模块时,读取php.ini。 PHP的CGI使用PHP解释器的可执行文件,就像任何其他的shell脚本一样。 由于每次调用都没有涉及到状态,所以在CGI的情况下,configuration文件必须每次读取。