Ukratko

XL podržava FastCGI 1.0 specifikaciju. Podržan je multipleks više zahtjeva preko jedne konekcije istovremeno. Podržan je Responder mod, nisu podržani (ali su u planu) Authorizer i Filter.

lighttpd configuration

Prvo, moramo dodati index.xhtml u važeće index file names, u lighttpd.conf:

index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm", "index.xhtml" )

I exclusion za static fajlove...

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".xl", ".xhtml" )

Zatim u fastcgi.servers config sekciju:

fastcgi.server = (
  ".xhtml" => (
    "localhost" => (
      "socket" => "/tmp/xli-fastcgi.socket",
      "bin-path" => "/usr/bin/xli-fcgi",
      "max-procs" => 1,
      "check-local" => "disable"
    )
  )
)

Sad je potrebno restartovati lighttpd.

Konfiguracija xli-fcgi baziranog hostovanog sajta

U trenutku kad se u okviru neke prezentacije prvi put zatraži neki .xhtml URL, odnosno prefix koji je navede u fastcgi-server sekciji, xli-fcgi će da učita /index.xl iz DOCUMENT_ROOT prezentacije i izvršiće index.Main proceduru, sa argumentom HTTP_HOST i logWr. Ova procedura će da inicijalizira "web server" i page handlere. WebServer.m3 će znati da je u pitanju FastCGI mod i neće slušati HTTP na TCP socketu, niti će prihvatiti konfiguraciju file handlera - samo čiste page handlere.

FastCGI.ServeRequest će stripovati .xhtml ekstenziju (i tačku - ukupno 6 karaktera) i nastaviće normalno servisiranje zahtjeva. "Kao da se ništa nije desilo". XL kod neće primijetiti razliku dok eventualno ne pogleda u FastCGI.ServeRequest.params (koji ćemo proslijediti dok se još ispegla i usaglasi sa "TCP" granom WebServer.m3.

FastCGI.ServeRequest poziva WebServer.ServeRequest koji dalje poziva konfigurisane page handlere. Page handleri direktno pišu u FastCGIWr.T koji najkraćim putem šalje rezultat izvršavanja serveru.

TODO: logWr (FCGI_STDERR) će kasnije biti povezan da služi kao standardni izlaz za vrijeme servisiranja XL zahtjeva i to će omoguciti uvid u izlaz iz skriptova osim rezultata.

Nijedan .xhtml fajl ne mora fizički da postoji (niti će direktno biti iskorišten i ako postoji osim ako to ne uradi XL kod s namjerom ) osim index.xhtml nulte veličine koji služi samo zato da ga lighttpd "nađe" i prepusti nadležnost nad URL koji završava sa / našem FastCGI skriptu.