PHP如何与HTTP服务器交互?(比如lighttpd)

tol*_*lga 6 php lighttpd

可能重复:
我从未真正理解:什么是CGI?

在lighttpd配置中,我们定义了两个路径(如下所示),其中一个是PHP的二进制文件,另一个是套接字路径.我的问题是,lighttpd在哪一点上获取PHP创建的最终HTML输出?二进制文件是否将输出作为响应提供给lighttpd?或者它是否在另一个地方创建临时文件并且服务器获取它?

fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/tmp/php.socket"
                 )))
Run Code Online (Sandbox Code Playgroud)

Jor*_*ack 1

PHP 可以作为 CGI 二进制文件运行,也可以作为 Apache 模块运行。当用作 CGI 二进制文件时,HTTP 服务器将通过管道命名管道与 PHP 进行通信。这些可以利用stdout,这是一种不需要任何磁盘访问的进程间通信形式。如果作为 Apache 模块运行,PHP 实际上是 Apache 服务器的一部分。这比作为 CGI 执行要快得多,但有一些安全限制。