问题
Does anyone know how to configure lighttpd to handle plain CGI executables, in this case written in C? I have compiled a test program (test.cgi) and put it in $HOME/public_html/cgi-bin. I have also enabled the CGI module with lighty-enable-mod cgi
and restarted the web server. Still, when requesting http://localhost/~august/cgi-bin/test.cgi the program is not run but is instead treated as a static file. Here is my test program by the way:
#include <stdio.h>
int main(void)
{
printf("Content-type: text/plain\n\n");
puts("test...");
return 0;
}
回答1:
The default CGI configuration looks like this:
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( "" => "" )
}
i.e. only binaries in the cgi-bin directory under the document root will be executed. To enable per-user cgi directories, add
$HTTP["url"] =~ "^(/~[^/]+)?/cgi-bin/" {
cgi.assign = ("" => "")
}
to the lighttpd configuration file.
来源:https://stackoverflow.com/questions/6267084/configuring-lighttpd-to-handle-cgi-c-executables