2011-02-03 100 views
0

我想为我的特殊协议创建一个apache扩展,它将监听与apache相同的端口,但在特定目录或文件(如php)上侦听。我需要这个用自定义服务器为我的游戏提供动力,但不能用php。我不能听不同的端口或不同的服务器。 apache httpd扩展帮助

我不想创建一个php文件或类似的东西。我需要一个完整的可执行程序,我可以动态地分配内存等等。程序完全在apache服务器之外,但是apache'传递'这个程序的特殊请求(例如.foo文件或/ foo /目录。

我需要一个教程或帮助生成Apache的自定义扩展

更新:

我想创建在我的服务器的后台运行的守护进程,然后当Apache发送一个请求,它将它转发给我的守护进程,然后守护进程生成请求,然后发送一个答案。这很重要,不像php脚本文件或perl,因为这不会执行一次,程序正在运行,并等待Apache发送一些东西。我不知道如何与Apache沟通。但我认为这不是一个CGI,因为如果我读得很好,CGI的运行就像:apache获取请求,然后为我的php或perl文件启动一个新进程,通过参数和stdIN发送数据,然后当该过程结束,从stdOut中读取答案并将其发回,过程结束。

但我的prgram仍在运行。我需要在后台运行我的程序,因为我需要将数据存储在启动时加载的内存中。

这样.: http://i53.tinypic.com/v45jzo.jpg

回答

2

你不需要特殊的延伸,只是register a CGI handler调用你的处理代码。

编辑 你可以配置Apache来proxy请求您的守护进程。

您将需要返回格式正确的HTTP响应,否则它将无法正常工作。您应该仔细阅读Apache和基于Web的通信,以更好地了解守护进程中需要的内容。

ProxyRequests Off 

<Proxy *> 
Order deny,allow 
Allow from all 
</Proxy> 

ProxyPass /foo http://foo.example.com/bar 
ProxyPassReverse /foo http://foo.example.com/bar 

P.S.写一个Apache的扩展是太多更难一个不便携。

+0

我真的不明白什么是CGI。这在一个API的东西?我想创建一个可执行程序,而不是一个PHP文件。 – 2011-02-03 23:58:19

0

要回答你什么CGI是

CGI代表通用网关接口的第二个问题。

当你注册一个处理程序时,拜伦指出你告诉apache将“请求”提供给你的应用程序。 Apache会监听应用程序的输出stdout并将结果返回给用户。

应用程序的参数都是通过您可以从应用程序访问的环境提供的。

但是,如果你不明白这个东西,你将遇到问题。比如你必须设置某些标题。

DC