在我看来,将我的网站的单独function保存在单独的FCGI二进制文件中将更加可维护。 我想要的是这样的请求:
http://mysite.com/funcA.fcgi http://mysite.com/funcB.fcgi?action=go
要被redirect到适当的文件:
/var/fcgi/funcA.fcgi /var/fcgi/funcB.fcgi
所以,在我的lighttpd.conf文件中,我需要这样的东西:
fastcgi.server = ( ".fcgi" => (( "bin-path" => "/var/fcgi", "socket" => "tmp/fcgi.sock", "check-local" => "disable" )) )
或者,也许它会更像这样:
fastcgi.server = ( "funcA.fcgi" => (( "bin-path" => "/var/fcgi/funcA.fcgi", "socket" => "tmp/fcgi.sock", "check-local" => "disable" )) ), ( "funcB.fcgi" => (( "bin-path" => "/var/fcgi/funcB.fcgi", "socket" => "tmp/fcgi.sock", "check-local" => "disable" )) )
或者我可能完全错过了其他的东西? 当指向单个二进制文件时,我只能得到lighttpd才能启动。
编辑:为了确保我清楚:我需要的是像mysite.com/x.fcgi这样的请求来调用/var/fcgi/x.fcgi ,并同样请求mysite.com/y.fcgi调用/var/fcgi/y.fcgi 。 这似乎是这样应该是非常简单的,但我不能得到一个lighttpdconfiguration,使这种情况发生。
另外,我没有使用任何解释。 这些是使用fcgi_stdio.h头文件编译的C ++二进制文件。
我可能需要使用mod_rewrite?
所以在我看来,我想要做的事情是不可能的,或者至less不是在FCGI下提供的。 当你调用www.mydomain.com/thing1.fcgi ,你不是从 thing1.fcgi 开始的 ; 已经完成了。 你正在做的是向你写的无限运行的FCGIstream程发送一个请求,这个stream程几乎肯定有一个无限循环,等待请求。 这只是FCGI的性质,与早期的CGI有很大的区别。
一旦你了解FCGI的工作原理,不是一个难以回答的问题。 我想我只是在想。