mod_php和cgi php脚本有什么区别?
我的意思是,为什么使用mod_php而不是简单的php脚本,将它们作为CGI运行会更好(是吗?)?
谢谢
mod_php和cgi php脚本有什么区别?
我的意思是,为什么使用mod_php而不是简单的php脚本,将它们作为CGI运行会更好(是吗?)?
谢谢
使用CGI时:Apache启动了一个PHP进程,PHP进程解释PHP代码 - 而不是Apache 本身。
理论上,必须为每个请求创建一个独特的PHP进程 - 这会使事情变得更慢:Apache有更多的工作要做以回答请求。
(好吧,正如@ AlReece45在评论中指出的那样,使用FastCGI可以做得更好)
使用PHP作为Apache模块时 (mod_php
, 要么 mod_php5
),PHP解释器有点“嵌入式“在Apache进程内部:没有外部PHP进程。
意思是 :
一般来说,我会说 mod_php
是最常用的解决方案。
普通CGI要求在请求时为每个请求生成进程。
mod_php要求你使用膨胀的apache而不是光滑的nginx或lighttpd。此外,Pascal提到的“Apache和PHP之间更好的通信”可能会损害apache(它会危害任何在php中开发的人!;-))。
FastCGI允许您将PHP与Web服务器分开(可能在不同的主机上运行它)。
此外,php.net刚刚发布了一个漏洞,如果您正在使用,可能会泄露源代码 mod_cgi
运行PHP,你的PHP版本比 PHP 5.3.12 要么 PHP 5.4.2。
http://www.php.net/archive/2012.php#id2012-05-03-1
通过升级或应用修补程序 mod_rewrite
规则。