我遇到以下问题:
当我想在Apache中运行未编译的Lua脚本时,我只需在文件的开头添加#!/usr/share/lua
,到目前为止一切正常。
但是如果我想用luac
编译它以使它运行得更快我就不能在文件中添加任何文本,因为它是编译后的二进制数据(仍然需要由Lua解释器解释,并且不能单独执行。
有没有办法告诉Apache始终/usr/share/lua
解释文件.lua
(或.luac
将其标记为已编译)?
答案 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请求的文件名,以便您可以解析它并运行该文件。