我几乎已经完成了在Java下编写HTTP/1.0兼容的web服务器(没有商业用途,这只是为了好玩),基本上我想包括PHP支持。我知道这不是一件容易的事,但我认为这将是一个很好的成就。
所以我想知道PHP到底是如何与Apache web服务器(或者任何其他web服务器)交互的,这样我就可以从中学习并编写我自己的PHP包装器。它不一定非得是mod_php,我并不介意写一个FastCGI包装器--据我所知,它也能够运行PHP。
我认为PHP所需要的只是发送到客户端的输出(这样它就可以解释PHP部分)、来自客户端的完整HTTP请求(这样它就可以提取POST变量等等)和客户端的主机名。然后,您只需将解析后的PHP代码写入输出流。可能会有更多的东西,但本质上这是我认为它是如何工作的。
据我目前所知,apache2handler提供了一个应用程序接口,用来“连接”到Apache。我想看看apache2handler和php5apache2.dll的源代码是个好主意,但在此之前,我想我应该先问一下。
如果谁有更多的信息,经验,或某种规格,这是相关的,然后请让我知道。
提前感谢!
发布于 2010-05-05 19:58:06
有3种方法可以从Apache调用PHP:
1)作为一个模块??这涉及到将php解释器链接到由the服务器发布的钩子库。
2) CGI - sent服务器为每个请求启动一个解释器实例,并通过标准输入、命令行和环境变量将参数传递给解释器,将标准输出发送到客户端,并将标准错误写入error_log
3) fastCGI -这消除了为每个请求启动新进程的开销-解释器作为守护进程运行
CGI是最简单的实现,但不能很好地扩展/执行,该模块将是目前为止最难的。FastCGI几乎和模块方法一样快。CGI和fastCGI是开放的、文档齐全的API。
还有其他方法可以实现您的目标-例如Quercus
结果表明,C.
发布于 2010-05-05 18:42:45
除了php文件、HTTP请求和客户机主机名之外,还有一些其他信息项通常会传递给PHP以设置$_SERVER
超级全局的某些其他元素。链接的文档页面包含通常设置的内容的列表。
发布于 2010-05-05 19:12:46
关键词是CGI
。
这是一个极其简单的协议,为web服务器服务了很长时间。
这不是PHP与web服务器交互的唯一方式,但它是最常见和最容易实现的方式。
简而言之,您的服务器必须设置一些环境变量,然后调用cgi脚本,而cgi脚本本身就是一个php脚本。
https://stackoverflow.com/questions/2772400
复制相似问题