PHP是当前使用最广泛的服务器端脚本语言之一,它能够处理HTML表单,进行文本处理,打开、读取和写入文件,在服务器上动态创建图像,和许多其他任务。CGI和FCGI是两种PHP执行方式,它们在如何处理请求和管理资源方面有一些不同。
CGI(通用网关接口)是处理Web服务器和应用程序之间通信的标准方式。在CGI模式下,PHP被当做一个可执行的二进制文件使用,它的每个请求都需要启动一个新的PHP进程,每次请求都会加载代码,并初始化数据。这种方式有一些缺点,首先是它在处理高并发和大量请求时不稳定,因为每个请求都需要启动一个新的PHP进程,这会导致系统资源使用过量。其次,这种方式需要在Web服务器和PHP之间进行大量的IO通信,并且每个请求都需要重新载入PHP代码。
#!/usr/bin/php-cgi Content-type: text/html
另一方面,FCGI(快速CGI)是解决CGI的瓶颈问题的一种方式。在FCGI模式下,PHP作为一个长期运行的进程运行,单个进程可以处理多个请求。与CGI不同,FCGI将请求发送到一个监听程序,该程序将请求转发给可用的PHP进程,并将响应发送回Web服务器。这种方式消除了启动新PHP进程的需要,减少了做出请求时的IO通信,并提高了处理高并发和大量请求时的性能。
#!/usr/bin/php-cgiContent-type: text/html"; echo "Hello World "; echo "Hello World