【问题标题】:Setting up a Server-side interpreter设置服务器端解释器
【发布时间】:2012-04-09 16:57:36
【问题描述】:

好的。那么,我们以 PHP 为例。

  • 我在浏览器中输入一个 URL,请求一个 php 脚本。 (例如http://www.somedomain.com/index.php
  • 浏览器将该请求发送到相应的服务器。
  • 服务器识别 - 通过它的扩展名 (.php) - 那就是它是一个 PHP 文件。
  • PHP 解释器处理文件并输出结果。
  • 服务器发回输出

现在,假设我们正在处理一个......自制解释器 XYZ(及其二进制文件等),处理例如.xyz 文件。

我应该怎么做,所以以上所有内容都对我的 XYZ 解释器有效?

我应该如何设置这一切,以使其正常工作?


提示:我不是在寻求关于如何编写解释器的帮助,而是关于如何使其以上述方式运行的帮助......

【问题讨论】:

  • 首先阅读您的网络服务器文档,了解如何为您想要的任何文件类型添加新的“处理程序”。除此之外,您的问题无法回答。浏览器与此无关,因为您处理的是纯粹的服务器端代码。
  • 您需要配置 Apache 或任何网络服务器来告诉他们“嘿,这是一种新语言,XYZ,这是您如何解释它,并使用 XYZ 与以 .xyz 结尾的文件”。这不是一件容易的事。
  • 您的问题似乎不太清楚。解释器是否与 PHP 兼容、网络服务器软件或某些 Apache/其他插件?我猜它会像 PHP 一样输出 HTML?
  • 上述前两个 cmets 的组合(“...无法回答”部分除外)将是一个很好的答案。如果假设 Apache 是您的 HTTP 服务器,那么您将在 .htaccess 文件中放置一个 AddHander 行。我进行了搜索以查看您如何将输出返回到 apache 并找到了这个线程:stackoverflow.com/questions/2772400/… 这不仅有助于将输出返回到 apache,而且有助于将所有标头等输入解析器。
  • 您几乎可以使用任何脚本解释器。在最简单的情况下,只需将其用作CGI 解释器,方法是使脚本可执行并为其提供标准的.cgi 扩展名。使用#!/usr/bin/awk 的shebang,您可以使用它。 (配置特定的扩展以实现这种行为是第 2 步,最简单的是使用 RewriteRule。)

标签: php interpreter server-side


【解决方案1】:

您的选择是使用现有的标准接口并编写您的软件以符合它,或者为服务器编写一个新模块。

对于前者,CGI 简单但效率低,而FastCGI 更现代但相对复杂。

如果您想编写一个新模块,那么具体情况将取决于您正在处理的服务器。

【讨论】:

    【解决方案2】:

    这完全取决于您使用的网络服务器。但是,如果那是 Apache,您应该查看 apxs 以构建和安装您自己的 apache 模块。 Google 将帮助您在 apxs 上查找在线教程。

    要为特定文件结尾添加处理程序,您应该在 apache 配置中执行以下操作(在构建 iterpreter/apache 模块之后):

    AddHandler my_handler .end
    

    【讨论】:

    • 我只想添加一件事...您也可以使用 CGI 或 FastCGI 方式,但是:如果您想要街头信誉/极客信誉,使用 apxs 构建自己的模块是最棒的! !.!!:!.!:!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多