Problem
#50 targets CGI/1.1 stdin/stdout. Production stacks use FastCGI (multiplexed, SCRIPT_FILENAME, REQUEST_URI params). bin/serve.php is TCP-only dev server.
Goal
bin/fcgi.php or bin/phpc fcgi that speaks FastCGI RECORD protocol, spawns compiled/VM script per request, populates superglobals via #49.
Implementation plan
- Parse FastCGI params →
putenv + Superglobals::populateFromEnvironment.
- STDOUT/STDERR streams for response; support
Status: header.
- Integration test: spawn with
cgi-fcgi or minimal mock client.
- Document nginx
fastcgi_pass snippet in examples.
Acceptance criteria
Links
Problem
#50 targets CGI/1.1 stdin/stdout. Production stacks use FastCGI (multiplexed,
SCRIPT_FILENAME,REQUEST_URIparams).bin/serve.phpis TCP-only dev server.Goal
bin/fcgi.phporbin/phpc fcgithat speaks FastCGI RECORD protocol, spawns compiled/VM script per request, populates superglobals via #49.Implementation plan
putenv+Superglobals::populateFromEnvironment.Status:header.cgi-fcgior minimal mock client.fastcgi_passsnippet in examples.Acceptance criteria
examples/001-SimpleWeb/example.phpfastcgi-scriptwhen Web: Runtime-populated superglobals for JIT and AOT (per-request $_GET/$_POST) #49 doneLinks