It works well for me, and maybe useful for you.
Expect your advice and bug-reports

Thanks.
Code: Select all
# git clone git://github.com/KDr2/sb-fastcgi.git
Code: Select all
TEST> (sb-fastcgi:load-libfcgi "/usr/lib/libfcgi.so.0")
T
TEST> (defun simple-app (req)
(let ((c (format nil "Content-Type: text/plain
Hello, I am a fcgi-program using Common-Lisp")))
(sb-fastcgi:fcgx-puts req c)))
; compiling (SB-FASTCGI:SIMPLE-SERVER (FUNCTION SIMPLE-APP))SIMPLE-APP
TEST> (defun run-app-0 ()
(sb-fastcgi:simple-server #'simple-app))
RUN-APP-0
TEST> (run-app-0)
"ACCEPT ERROR"
Yes, it's more portable to other web servers, it can run on apache/nginx/lighttpd and all other web-servers support fastcgi,Warren Wilkinson wrote: I'm guessing more portable to other web servers
You can refer to http://fastcgi.com, but I think, is it faster depends on you app-implementation, and to the same app runsWarren Wilkinson wrote: would it be faster?
It's simpler, I provider WSGI-LIKE API in it, which is easy to use.Warren Wilkinson wrote: mod-lisp has really easy communication -- is this harder or simpler?
The simple-server use the file-descriptor *stdin* as a server-socket(a listening socket),vanekl wrote:Code: Select all
TEST> (defun run-app-0 () (sb-fastcgi:simple-server #'simple-app)) RUN-APP-0 TEST> (run-app-0) "ACCEPT ERROR"
Code: Select all
(sb-fastcgi:socket-server #'simple-app
:inet-addr "0.0.0.0"
:port 9000)
Code: Select all
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}