镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

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

Merged
dunglas merged 1 commit into
mainfrom
fix/missing-script-404
Nov 1, 2026
Merged

dunglas merged 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.
@dunglas
dunglas merged commit 6aa9548 into main Nov 1, 2026
45 checks passed
@dunglas
dunglas deleted the fix/missing-script-404 branch November 1, 2026 11:25
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