[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"problem-detail-error-php-frontend-build-calls-composer-from-a-node":3},{"stack":4,"error":5,"seoName":6,"seoStack":7,"seo":8,"breadcrumb":10,"titlePrefix":17,"titleAccent":6,"lead":18,"facts":21,"why":36,"log":41,"fix":82,"engine":91,"related":95,"pitch":98},"php","php-frontend-build-calls-composer-from-a-node","PHP frontend build calls Composer from a Node-only build container","Php",{"description":9},"Learn what causes PHP frontend build calls Composer from a Node-only build container, how PanelAlpha Engine responds to it during deployment.",[11,14,16],{"label":12,"href":13},"App Installations","\u002Fapps",{"label":7,"href":15},"\u002Fapps\u002Fstacks\u002Fphp",{"label":6},"",[19],{"text":20},"Error recorded 3 times in PanelAlpha Engine deploys on Php. The deploy log below is the recorded failure output.",[22,27,30,32],{"label":23,"value":24,"tone":25,"tooltip":26},"Type","Error","err","An error that occurred in the deployed application. It is not necessarily a PanelAlpha Engine error, but we keep working on improvements so you run into fewer of them.",{"label":28,"value":29},"Seen","3 times · 2 variants",{"label":31,"value":7},"Where",{"label":33,"value":34,"tooltip":35},"Status","Resolve Ready (2.1.1)","Our team will look into this soon, verify the cause and try to fix it in an upcoming release.",{"heading":37,"body":38},"Why it happens",[39],{"text":40},"The project's npm scripts (or gulp tasks) run composer, but the engine runs the frontend build in a Node image that has no Composer.",{"heading":42,"block":43},"What the log looks like",{"header":44,"lines":45},"Deploy log",[46,50,54,58,62,66,70,74,78],{"segments":47},[48],{"text":49},"[18:59:09] 'update-licenses' errored after 24 ms",{"segments":51},[52],{"text":53},"[18:59:09] Error: Command `composer licenses --format=json --no-dev > public\u002Flicense\u002Fcomposer.LICENSES` exited with code 127",{"segments":55},[56],{"text":57},"at ChildProcess.handleSubShellExit (\u002Fapp\u002Fnode_modules\u002Fgulp-run\u002Fcommand.js:166:13)",{"segments":59},[60],{"text":61},"at Object.onceWrapper (node:events:634:26)",{"segments":63},[64],{"text":65},"at ChildProcess.emit (node:events:519:28)",{"segments":67},[68],{"text":69},"at ChildProcess.emit (node:domain:552:15)",{"segments":71},[72],{"text":73},"at ChildProcess._handle.onexit (node:internal\u002Fchild_process:293:12)",{"segments":75},[76],{"text":77},"at Process.callbackTrampoline (node:internal\u002Fasync_hooks:130:17)",{"segments":79},[80],{"text":81},"[18:59:09] 'default' errored after 37 ms",{"heading":83,"steps":84,"block":88},"How to fix it",[85],[86],{"text":87},"Fixed in engine 2.1.1: a frontend build whose npm scripts call composer or php runs in the PHP image with Node added. On 2.1.0, move the composer step out of the npm script (the engine already runs composer install) and redeploy.",{"header":89,"lines":90},"Fix by hand",[],{"heading":17,"body":92,"block":93},[],{"header":17,"lines":94},[],{"heading":96,"items":97},"Apps affected",[],{"heading":99,"body":100,"footNote":101,"docsLabel":102,"docsHref":103},"Try PanelAlpha Engine yourself.","The easiest way to turn your server into a safe, controlled environment for your AI agent. Deploy, manage and maintain any project from Claude Code, Cursor, Codex or any other MCP client. Open source under Apache 2.0, free to run.","Requires Ubuntu 24.04 or 26.04 · 2 GB RAM · 1 CPU","Read the documentation","https:\u002F\u002Fpanelalpha.com\u002Fdocs"]