2010-10-05 53 views
1

我想设置lighttpd来运行二进制CGI应用程序(而不是PHP脚本或smth,但是一个二进制文件,从C++源编译)。其实,我在lighttpd上运行本机二进制CGI

server.modules = (
... 
"mod_cgi" 
... 
) 

取消注释,在htdocs/appmyApp.exe,也

cgi.assign = ("myApp.exe" => "myApp.exe") 

然后,通过访问,比方说,http://localhost:8080/app/myApp.exe?p=a&...使所有的东西的工作,我不得不把一个空myApp.exe中的lighttpd根文件夹(服务器的exe文件所在的位置)。这实际上很奇怪,很烂,也不是所有的CGI都可以这样工作。将这些动作应用到另一个CGI应用程序(完全适用于正确调整的Apache)并没有取得成功。

我在做什么错?

回答

0

文档:http://redmine.lighttpd.net/wiki/1/Docs:ModCGI
我做了一个测试用TCL脚本的CGI,这是我的工作配置:

cgi.assign = ("" => "/usr/bin/tclsh") 
index-file.names = ("lighttd_test.tcl") 

cgi.assign允许您指定的文件扩展名由特定的处理应用。这个例子意味着:任何文件类型将通过/usr/bin/tclsh打开。由于我的索引文件是一个tcl脚本,因此我得到了通过脚本的STDOUT输入的内容。
如果你想运行一个二进制可执行文件,这是指定它的地方。
也许这个链接为你提供了一些关于binary cgi的更多信息:http://redmine.lighttpd.net/issues/1256