【问题标题】:How to begin writing an Application Server over Apache?如何开始在 Apache 上编写应用程序服务器?
【发布时间】:2010-01-15 19:22:47
【问题描述】:

对于我的大学项目,我想用 C 语言创建一个在 Apache 上运行的简单应用程序服务器。像 .php、.asp、.jsp 一样,我的文件扩展名为 .sas。

我已经编写了一个解析器,它可以读取 .sas 文件并生成输出。例如,考虑具有以下代码的文件 index.sas:

<%   
echo "Hello";  
%>  

现在,如果我执行:

sas 索引.sas

结果是:

你好

现在我想将此程序用作 Apache 上的应用程序服务器就像 PHP、Tomcat 等在 Apache 上工作。我 听说过 cgi-bin 但我认为 PHP 使用不同的方法。我想要 了解 PHP 使用的方法。

请指教。

【问题讨论】:

  • 何不去把源代码下载到PHP中看看。您的问题归结为“我如何编写脚本语言”,这对于 SO 来说有点宽泛。
  • 没有。我已经编写了语言和解析器。我只想知道如何在 Apache 上使用它。

标签: apache cgi application-server


【解决方案1】:

小修正:Apache HTTP Server 不需要能够将 Apache Tomcat 作为网络服务器运行。 Apache Tomcat 本身已经是一个成熟的网络服务器。您的困惑可能是由 Tomcat Connector 引起的,它可用于将 Apache HTTP Server 和 Apache Tomcat 连接在一起,以便能够在同一个 HTTP 端口后面提供 PHP/JSP。

至于您的实际问题,PHP 可以安装为 CGI 模块或 ASAPI (Apache Server API) 模块。如果您想为 Apache HTTP Server 编写 CGI 模块,那么您可能会发现 this document 很有用。如果你想写一个 ASAPI 模块,那么你可能会发现those documentations 很有用。

【讨论】:

  • 嗯...第一段听起来很有趣,我不知道!但是为什么他们已经有了 HTTP 服务器,还要为 Tomcat 创建一个新的 Web 服务器呢?
  • 既然已经有这么多的脚本语言,为什么还要创建新的脚本语言? ;-) 除了幽默,如果我没记错的话,最初的 Tomcat 来自 Sun,并被 Apache Foundation 接管。不是叫 JServer 之类的吗……我可能弄错了,已经有一段时间了。
  • @Cracker:因为它有一个完全不同的目的:100% 纯 Java webserver/servletcontainer,因此它可以在任何地方运行,而无需创建/分发/下载单独的平台特定(windows、linux 、unix、solaris 等)软件。 Java 是独立于平台的。
  • @cjstehno:哦..好的..我现在明白你的幽默了! :D
【解决方案2】:

您需要使用 Apache API 编写一个模块。

可以在此处找到一些带有示例的基本文档。

http://www.auburn.edu/docs/apache/mod/mod_example.html

【讨论】:

    【解决方案3】:

    不,不,不!我说“不”够吗? :)

    您无需创建新模块或查看 PHP 源代码。谈论使用方形巨石重新发明轮子。

    最简单的方法是使用 mod_cgi。也就是说,您使用 CGI 让 Apache 将请求转发给您的 SAS 解释器。

    [Apache 1.3x] - http://httpd.apache.org/docs/1.3/mod/mod_cgi.html

    [Apache 2.0x] - http://httpd.apache.org/docs/2.0/mod/mod_cgi.html

    [CGI] - http://en.wikipedia.org/wiki/Common_Gateway_Interface

    现在,如果你不想使用 CGI(不知道为什么,除非你的作业说明明确禁止它),那么是的,你将不得不创建一个模块。为此,请将此作为起点(由 google 提供):

    http://threebit.net/tutorials/apache2_modules/tut1/tutorial1.html

    不过,祝你好运。它可能会变得劳动密集型。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多