Skip to content

fix: return 404 when the script can't be opened - #2791

Open
dunglas wants to merge 1 commit into
mainfrom
fix/missing-script-404
Open

dunglas wants to merge 1 commit into
mainfrom
fix/missing-script-404

Conversation

@dunglas

@dunglas dunglas commented Oct 30, 2026

Copy link
Copy Markdown
Member

Like php-fpm and php-cgi, FrankenPHP now opens the primary script before running it. When that fails, it answers 404 No input file specified. (403 Access denied. when the file isn't readable) instead of compiling a missing file, which answered 200 with a "Failed opening required" fatal error.

This is needed for the next Caddy release: Caddy fixed first_exist_fallback (caddyserver/caddy@4ec5a5c), which now really falls back to a missing index.php. Without this change, php_server sites without an index.php would answer unknown paths with a 200 instead of a 404.

A worker whose script disappears still exits with status 255, so it keeps counting as a failure.

Like php-fpm and php-cgi, FrankenPHP now opens the primary script before
running it and answers 404 "No input file specified." (403 "Access
denied." when it isn't readable) instead of compiling a missing file,
which answered 200 with a PHP error.

php_server relied on Caddy's first_exist_fallback never falling back to
a missing index.php. Caddy fixed that policy in caddyserver/caddy@4ec5a5c,
so without this change, php_server sites without an index.php answer
unknown paths with a 200.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant