PHP和Apache是如何通信的?Apache默认的mod_php模式运行

看了Nginx和PHP的通信方式,就特别想了解下,Apache和PHP的通信方式。真的是,只有了解他们的底层运行方式,才更能看出来,Nginx和Apache的区别。


PHP作为Apache的一个模块集成到Apache进程(httpd)运行,这种mod_php的运行模式是最常用的,这时PHP的运行跟php-cgi没有任何关系.

mod_php 通过嵌入 PHP 解释器到 Apache 进程中,mod_php 这种嵌入的方式最大的弊端就是内存占用大,不论是否用到 PHP 解释器都会将其加载到内存中,典型的就是处理CSS、JS之类的静态文件是完全没有必要加载解释器。

CGI是比较原始的方式,Apache默认是以第二种方式运行PHP的,而配置FastCGI模式需要下载安装相关的包。

性能上,CGI模式每一次接到请求会调用php.exe,解析php.ini,加载DLL等,速度自然慢。

其中FastCGI下,实现了类似连接池的技术特性,保持了对后台的连接,请求到来即可使用,结束即断开准备与下一个请求连接。

Nginx默认不支持CGI模式,它是以FastCGI方式运行的。所以使用Nginx+PHP就是直接配置为FastCGI模式。

另外一篇文章:Nginx跟PHP实现通信原理图,fastcgi接口监听IP地址和端口号 php-fpm管理fastcgi子进程

后续,还会更新。让PHP和Apache之间的通信,更完整。

你可能感兴趣的:(PHP,PHP底层知识)