Fix Start All on fresh install: php-fpm dependency mismatch
Highlights
Fresh-install reliability fix: clicking Start All on a clean PC no longer fails with dep php-fpm:8.4.20: exec: no command. The PHP-FPM service registry, per-project version overrides, and nginx dependency wiring are now consistent across the major.minor folder layout (\php\8.4\).
What's fixed
Start All on a freshly bootstrapped machine
- PHP auto-activates immediately after install —
afterPhpInstallednow derives the on-disk folder name fromSource.InstallToinstead of trusting the catalog's full patch version ("8.4.20"). PreviouslySetActive("8.4.20")failed silently because the folder is\php\8.4\, leaving nocurrentsymlink and no PHP backend until the user restarted the app. currentsymlink is created in the same session — the post-install routine now refreshes the FPM registry a second time after activation, so nginx's Deps pick up the just-installed PHP without needing an app restart.- Per-project PHP overrides self-heal — a stale
Projects.PhpVersions[name] = "8.4.20"from an older release (when the catalog used patch-numbered folders) is now rewritten on first resolve to the matching installed major.minor ("8.4"). One-shot migration: the bad value disappears fromconfig.jsonautomatically. - nginx Deps filter unregistered FPMs — even if a phantom version slips through,
refreshPhpFpmServicesnow drops or remaps it before callingSetDeps, so nginx never tries to start a dependency that has no registered binary. - Loud error for unregistered services —
services.Manager.startOnenow returnsservice not registered: <name>instead of lettingexec.Command("", ...)produce the crypticexec: no command. Any future regression is immediately diagnosable.
Install
- Download
LaraEnv-0.4.4.msiand double-click. - SHA-256 in
LaraEnv-0.4.4.msi.sha256. - Auto-update from prior versions picks this up automatically.
Compatibility
- Windows 10+ (x64).
- No config or data migrations required. Stale
"8.4.20"-style overrides in existingconfig.jsonfiles are rewritten on the next project resolve — no manual edit needed. - Drop-in replacement for 0.4.3.