在 PHP 官方文档中有一句话:“可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作”,对 PHP 的最基本功能(作为服务器脚本)做了定义。常用的 PHP 的场景也是作为服务器端的脚本。
一、简单的理解为什么需要 PHP ,而不是 WebServer 直接处理动态脚本
规定:WebServer 是用于处理客户端请求的静态资源的一种程序,如 HTML、CSS、纯文本、JavaScript、图片......其他的任何形式的文件它都无法处理,如 PHP 脚本。
所以,要处理那些 WebServer 无法处理的请求,就需要其他的程序。
再有,可能会考虑为什么不直接使用其他程序来处理各种包括静态和动态的请求,原则上说这样的考虑我觉得是正常的,但是可能会涉及更多的性能等考虑,而 WebServer 在处理请求的方向上有独天得厚的优势,同时在于其他程序的交互上也比较方便,大概因此并没有开发一种被广泛应用的结合了处理各种请求的程序吧。
二、WebServer 与 应用程序的交互方式
既然 WebServer 处理不了动态请求,需要将其交给其他程序来处理,则他们之间肯定有一定的关联,有一定的条件进行连接。
常见的 PHP 与 WebServer 交互的方式:
①:以模块的方式作为 WebServer(常见的如 Apache,IIS 等)的子模块。即此时 PHP 相当于这些服务器的一个模块,和 WebServer 集成在了一起,PHP 的调用是通过 WebServer 的进程实现的。
比如:为了到达河对面,在没有其他工具的情况下,给人类安装了一双翅膀