这篇关于Nginx wiki的文章似乎表明,Apache将所有请求发送到PHP进行处理。
[指nginxconfiguration]在这个例子中,你将所有东西传递给PHP。 为什么? Apache可能会这样做,你不需要。
我已经阅读了其他文章指出这一点,我敢肯定它可以改变configuration,但是例如Apache运行mod-PHP,Apache只是发送所有文件,即CSS,JavaScript,图像文件等到PHP解释器处理?
这不是真的。 你select哪个文件将传递给PHP解释器。 无论您使用的是何种方式,无论是mod_php还是fastcgi,情况都是如此。
Check here for example: http://php.net/manual/en/install.unix.apache2.php <FilesMatch "\.ph(p[2-6]?|tml)$"> SetHandler application/x-httpd-php </FilesMatch>
这意味着只有匹配该正则expression式的文件(使用php / phpN / phtml扩展名)将被传递给phpparsing器。
默认情况下,Apache不会将所有文件作为PHP脚本处理,所以即使PNG或CSS或其他任何非PHP文件都具有<?phpstring,也不会被解释。 这可以改变。
但是当httpd产生一个处理请求的进程时, mod_phpX被加载到内存中,并且每个请求消耗大量的CPU周期和兆字节的RAM – 无论请求的文件是否是PHP脚本,1字节或100兆字节大。
由于PHP及其模块中仍然存在非线程安全(NTS)代码,因此在使用模块时,Web服务器需要使用经典的基于stream程的prefork MPM。 这是最慢和最消耗内存的MPM。
以上所有内容清楚地说明了为什么FastCGI SAPI可以在繁忙的基于PHP的站点上提供更高的性能。