You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
posix-kernel: serve mounted docroot via host path on Windows
An earlier iteration created an NTFS junction at <kernel-tempdir>/
wordpress so nginx + php-fpm could reach the user-supplied --mount
via a /dev/shm/.../wordpress POSIX path. The junction is created
without error on Windows Server 2025 / Node 24, but fs.statSync
traversal through it inside the kernel returns ENOENT — PHP's
is_dir / is_file / include all fail, display_errors=off silences
them, the request comes back 200 with empty body.
nginx's POSIX argv parser is the only thing that actually requires
the kernel-shaped path. Once nginx is started, every request goes
through fastcgi_pass, so nginx's `root` directive is only used to
populate $document_root — which we override anyway via a hardcoded
fastcgi_param DOCUMENT_ROOT. Stop relying on the junction: keep
`root` kernel-shaped to satisfy nginx, and hand PHP-FPM the real
host filesystem path through DOCUMENT_ROOT + SCRIPT_FILENAME. The
kernel passes anything outside /dev/shm/ straight to Node fs.*,
which handles Windows-native paths natively.
Also unifies KernelLimitedPHPApi: documentRoot / cwd /
translateVfsPathsInCode all use the host path now; the kernelRoot
field and toKernel helper (introduced for macOS back-translation)
are gone.
Bundles a second Windows-CI fix that accumulated alongside: allocate
a per-boot host port for php-fpm so fileParallelism doesn't
EADDRINUSE on the hard-coded 9000.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments