我如何与我的 Web 服务器中的 PHP 或其他脚本语言进行交互?
How can I interact with PHP or the other scripting language in my Web server?
我用 C 编写了一个 Web 服务器,我想向服务器添加一些脚本语言支持,例如 (PHP,...)。
如何与 PHP 和其他脚本语言交互?
如何向他们发送请求并获得响应?
是否有关于网络服务器开发或网络服务器架构的文档或指南?
首先想到的是使用CGI或FastCGI(见http://en.wikipedia.org/wiki/FastCGI)。例如,这就是 nginx(也是用 C 语言编写的流行 Web 服务器)支持 PHP 的方式。
添加对 FastCGI 的支持然后依赖 PHP-FPM(PHP FastCGI 实现)之类的软件比编写自己的 PHP 模块要快得多。但是,您将不得不 运行 一个额外的后台进程,侦听它自己的 UNIX 套接字或 TCP 端口。
另一种可能是根据 HTTP 请求执行相应语言的 CLI 处理程序(例如 CLI PHP),但我怀疑性能会低得多。
例如,用户从您的 Web 服务器请求 /something.php?query=parameter。您的 Web 服务器在指定文件夹(您的 Web 服务器配置文件)中查找 something.php 文件,然后使用 PHP CLI 执行(解释)它,等待响应并将该响应传回给 Web 用户。
我用 C 编写了一个 Web 服务器,我想向服务器添加一些脚本语言支持,例如 (PHP,...)。
如何与 PHP 和其他脚本语言交互?
如何向他们发送请求并获得响应?
是否有关于网络服务器开发或网络服务器架构的文档或指南?
首先想到的是使用CGI或FastCGI(见http://en.wikipedia.org/wiki/FastCGI)。例如,这就是 nginx(也是用 C 语言编写的流行 Web 服务器)支持 PHP 的方式。
添加对 FastCGI 的支持然后依赖 PHP-FPM(PHP FastCGI 实现)之类的软件比编写自己的 PHP 模块要快得多。但是,您将不得不 运行 一个额外的后台进程,侦听它自己的 UNIX 套接字或 TCP 端口。
另一种可能是根据 HTTP 请求执行相应语言的 CLI 处理程序(例如 CLI PHP),但我怀疑性能会低得多。
例如,用户从您的 Web 服务器请求 /something.php?query=parameter。您的 Web 服务器在指定文件夹(您的 Web 服务器配置文件)中查找 something.php 文件,然后使用 PHP CLI 执行(解释)它,等待响应并将该响应传回给 Web 用户。