我可以以某种方式在Apache中设置脚本解释器,而不是文件的开头吗?

时间:2016-02-10 12:50:59

标签: apache lua cgi

我遇到以下问题: 当我想在Apache中运行未编译的Lua脚本时,我只需在文件的开头添加#!/usr/share/lua,到目前为止一切正常。

但是如果我想用luac编译它以使它运行得更快我就不能在文件中添加任何文本,因为它是编译后的二进制数据(仍然需要由Lua解释器解释,并且不能单独执行。

有没有办法告诉Apache始终/usr/share/lua解释文件.lua(或.luac将其标记为已编译)?

1 个答案:

答案 0 :(得分:1)

我不知道有一种方法可以像CGI脚本那样做,因为CGI规范基本上要求shell可以根据开头的hashbang找出如何运行文件。

但是,您可以在Lua中编写一个简单的CGI处理程序,在"$(printf "\t")"文件上执行loadfile()然后执行它。您可以使用.luac.luac文件中的以下指令设置此脚本要处理的.htaccess个文件:

httpd.conf

在此示例from the docs中,# Files of a particular file extension AddHandler my-file-type .xyz Action my-file-type /cgi-bin/program.cgi 将传递URL请求的文件名,以便您可以解析它并运行该文件。