2026-07-16 06:25:16 +00:00
import { G as e , K as t , at as n , j as r } from "./chunks/framework.DrNIf5Lg.js" ; var i = JSON . parse ( ` {"title":"Your First Build","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/first-build.md","filePath":"en/guide/first-build.md"} ` ) , a = { name : ` en/guide/first-build.md ` } ; function o ( r , i , a , o , s , c ) { return n ( ) , e ( ` div ` , null , [ ... i [ 0 ] || = [ t ( ` <h1 id="your-first-build" tabindex="-1">Your First Build <a class="header-anchor" href="#your-first-build" aria-label="Permalink to “Your First Build”"> </a></h1><p>This page walks you through building a static PHP binary from scratch, end to end.</p><div class="tip custom-block"><p class="custom-block-title custom-block-title-default">TIP</p><p>If you installed spc as a pre-built binary, replace every <code>spc</code> in this page with <code>./spc</code> (or <code>. \\ spc.exe</code> on Windows).</p><p>If you installed from source, use <code>bin/spc</code> instead.</p></div><h2 id="two-approaches" tabindex="-1">Two Approaches <a class="header-anchor" href="#two-approaches" aria-label="Permalink to “Two Approaches”"> </a></h2><p>StaticPHP supports two build workflows — pick the one that fits your situation:</p><table tabindex="0"><thead><tr><th>Approach</th><th>When to use</th></tr></thead><tbody><tr><td><code>craft</code> (one-shot)</td><td>Everyday use, getting started quickly</td></tr><tr><td>Step-by-step</td><td>Fine-grained control over the build pipeline</td></tr></tbody></table><h2 id="option-1-one-shot-build-with-craft-recommended" tabindex="-1">Option 1: One-Shot Build with <code>craft</code> (Recommended) <a class="header-anchor" href="#option-1-one-shot-build-with-craft-recommended" aria-label="Permalink to “Option 1: One-Shot Build with craft (Recommended)”"> </a></h2><p>The <code>craft</code> command reads a <code>craft.yml</code> file and handles everything automatically — downloading dependencies, compiling libraries, and building PHP — in a single run.</p><h3 id="write-craft-yml" tabindex="-1">Write craft.yml <a class="header-anchor" href="#write-craft-yml" aria-label="Permalink to “Write craft.yml”"> </a></h3><p>Create a <code>craft.yml</code> in your working directory and declare the PHP version, extensions, and target SAPIs:</p><div class="language-yaml"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#11782a;--shiki-dark:#85E89D;">php-version</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">8.5</span></span>
< span class = "line" > < span style = "--shiki-light:#11782a;--shiki-dark:#85E89D;" > extensions < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > : < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b c m a t h , p o s i x , p h a r , z l i b , o p e n s s l , c u r l , f i l e i n f o , t o k e n i z e r < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#11782a;--shiki-dark:#85E89D;" > sapi < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > : < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > - < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > c l i < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > - < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m i c r o < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > N o t s u r e w h i c h e x t e n s i o n s y o u n e e d ? U s e t h e < a h r e f = " . / c l i - g e n e r a t o r . h t m l " > c o m m a n d g e n e r a t o r < / a > t o p r o d u c e a < c o d e > c r a f t . y m l < / c o d e > a u t o m a t i c a l l y . < / p > < h 3 i d = " r u n - t h e - b u i l d " t a b i n d e x = " - 1 " > R u n t h e B u i l d < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # r u n - t h e - b u i l d " a r i a - l a b e l = " P e r m a l i n k t o “ R u n t h e B u i l d ” " > < / a > < / h 3 > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > c r a f t < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > T h e b u i l d p i p e l i n e r u n s i n o r d e r : d o w n l o a d d e p e n d e n c i e s → c o m p i l e l i b r a r i e s → c o m p i l e P H P . N o i n t e r a c t i o n r e q u i r e d . < / p > < p > T o s e e m o r e d e t a i l , p a s s < c o d e > - v < / c o d e > , < c o d e > - v v < / c o d e > , o r < c o d e > - v v v < / c o d e > : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > c r a f t < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - v < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 3 i d = " i n s p e c t - t h e - o u t p u t " t a b i n d e x = " - 1 " > I n s p e c t t h e O u t p u t < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # i n s p e c t - t h e - o u t p u t " a r i a - l a b e l = " P e r m a l i n k t o “ I n s p e c t t h e O u t p u t ” " > < / a > < / h 3 > < p > O n s u c c e s s , b i n a r i e s l a n d i n < c o d e > b u i l d r o o t / b i n / < / c o d e > : < / p > < t a b l e t a b i n d e x = " 0 " > < t h e a d > < t r > < t h > S A P I < / t h > < t h > O u t p u t p a t h < / t h > < / t r > < / t h e a d > < t b o d y > < t r > < t d > c l i < / t d > < t d > < c o d e > b u i l d r o o t / b i n / p h p < / c o d e > ( W i n d o w s : < c o d e > b u i l d r o o t / b i n / p h p . e x e < / c o d e > ) < / t d > < / t r > < t r > < t d > f p m < / t d > < t d > < c o d e > b u i l d r o o t / b i n / p h p - f p m < / c o d e > < / t d > < / t r > < t r > < t d > m i c r o < / t d > < t d > < c o d e > b u i l d r o o t / b i n / m i c r o . s f x < / c o d e > < / t d > < / t r > < t r > < t d > e m b e d < / t d > < t d > < c o d e > b u i l d r o o t / l i b / l i b p h p . a < / c o d e > < / t d > < / t r > < t r > < t d > f r a n k e n p h p < / t d > < t d > < c o d e > b u i l d r o o t / b i n / f r a n k e n p h p < / c o d e > < / t d > < / t r > < / t b o d y > < / t a b l e > < p > G i v e t h e C L I b i n a r y a q u i c k s m o k e - t e s t : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > . / b u i l d r o o t / b i n / p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - v < / s p a n > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > . / buildroot / bin / php < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - m < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 2 i d = " o p t i o n - 2 - s t e p - b y - s t e p - b u i l d " t a b i n d e x = " - 1 " > O p t i o n 2 : S t e p - b y - S t e p B u i l d < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # o p t i o n - 2 - s t e p - b y - s t e p - b u i l d " a r i a - l a b e l = " P e r m a l i n k t o “ O p t i o n 2 : S t e p - b y - S t e p B u i l d ” " > < / a > < / h 2 > < p > T h i s a p p r o a c h l e t s y o u r u n d o w n l o a d a n d c o m p i l e a s s e p a r a t e s t e p s — u s e f u l w h e n y o u w a n t t o c a c h e d o w n l o a d s i n C I a n d r e u s e t h e m a c r o s s b u i l d s . < / p > < h 3 i d = " s t e p - 1 - d o w n l o a d - d e p e n d e n c i e s " t a b i n d e x = " - 1 " > S t e p 1 : D o w n l o a d D e p e n d e n c i e s < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # s t e p - 1 - d o w n l o a d - d e p e n d e n c i e s " a r i a - l a b e l = " P e r m a l i n k t o “ S t e p 1 : D o w n l o a d D e p e n d e n c i e s ” " > < / a > < / h 3 > < p > I n v 3 , y o u c a n s k i p t h i s s t e p e n t i r e l y — r u n n i n g < c o d e > b u i l d : p h p < / c o d e > d i r e c t l y w i l l a u t o m a t i c a l l y d o w n l o a d a n y m i s s i n g a r t i f a c t s . < / p > < p > I f y o u w a n t t o p r e - d o w n l o a d a h e a d o f t i m e , o r i f y o u & # 3 9 ; r e w o r k i n g i n a s l o w - n e t w o r k e n v i r o n m e n t a n d w a n t t o s e p a r a t e t h e d o w n l o a d p h a s e , u s e t h e < c o d e > d o w n l o a d < / c o d e > c o m m a n d : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 2 6 8 7 b ; - - s h i k i - d a r k : # 8 1 8 e 9 9 ; " > # D o w n l o a d o n l y w h a t t h e c h o s e n e x t e n s i o n s n e e d ( r e c o m m e n d e d ) < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > d o w n l o a d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - f o r - e x t e n s i o n s = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , p o s i x , p h a r , z l i b , o p e n s s l , c u r l , f i l e i n f o , t o k e n i z e r & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - w i t h - p h p = 8 . 5 < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Download by specific package names < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > d o w n l o a d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; c u r l , o p e n s s l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - w i t h - p h p = 8 . 5 < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > D o w n l o a d s a r e c a c h e d i n < c o d e > d o w n l o a d s / < / c o d e > a n d r e u s e d a c r o s s b u i l d s a u t o m a t i c a l l y . < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 2 6 8 7 b ; - - s h i k i - d a r k : # 8 1 8 e 9 9 ; " > # S l o w c o n n e c t i o n ? I n c r e a s e p a r a l l e l i s m a n d r e t r i e s < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > d o w n l o a d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - f o r - e x t e n s i o n s = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , o p e n s s l , c u r l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - p a r a l l e l < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > 1 0 < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - r e t r y = 3 < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Use pre - built binaries where available — skips compiling those dependencies < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > d o w n l o a d < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - f o r - e x t e n s i o n s = < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , o p e n s s l , c u r l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - p r e f e r - b i n a r y < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 3 i d = " s t e p - 2 - b u i l d - p h p " t a b i n d e x = " - 1 " > S t e p 2 : B u i l d P H P < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # s t e p - 2 - b u i l d - p h p " a r i a - l a b e l = " P e r m a l i n k t o “ S t e p 2 : B u i l d P H P ” " > < / a > < / h 3 > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 2 6 8 7 b ; - - s h i k i - d a r k : # 8 1 8 e 9 9 ; " > # B u i l d t h e c l i S A P I < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d : p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , p h a r , z l i b , o p e n s s l , c u r l , f i l e i n f o , t o k e n i z e r & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Build multiple SAPIs in one go < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d : p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , p h a r , z l i b , o p e n s s l , c u r l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - m i c r o < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 4 i d = " c o m m o n - b u i l d - o p t i o n s " t a b i n d e x = " - 1 " > C o m m o n B u i l d O p t i o n s < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # c o m m o n - b u i l d - o p t i o n s " a r i a - l a b e l = " P e r m a l i n k t o “ C o m m o n B u i l d O p t i o n s ” " > < / a > < / h 4 > < t a b l e t a b i n d e x = " 0 " > < t h e a d > < t r > < t h > O p t i o n < / t h > < t h > D e s c r i p t i o n < / t h > < / t r > < / t h e a d > < t b o d y > < t r > < t d > < c o d e > - - b u i l d - c l i < / c o d e > < / t d > < t d > B u i l d t h e c l i S A P I < / t d > < / t r > < t r > < t d > < c o d e > - - b u i l d - f p m < / c o d e > < / t d > < t d > B u i l d p h p - f p m ( n o t a v a i l a b l e o n W i n d o w s ) < / t d > < / t r > < t r > < t d > < c o d e > - - b u i l d - m i c r o < / c o d e > < / t d > < t d > B u i l d m i c r o . s f x < / t d > < / t r > < t r > < t d > < c o d e > - - b u i l d - e m b e d < / c o d e > < / t d > < t d > B u i l d t h e e m b e d S A P I < / t d > < / t r > < t r > < t d > < c o d e > - - b u i l d - f r a n k e n p h p < / c o d e > < / t d > < t d > B u i l d F r a n k e n P H P < / t d > < / t r > < t r > < t d > < c o d e > - - e n a b l e - z t s < / c o d e > < / t d > < t d > E n a b l e t h r e a d - s a f e ( Z T S ) m o d e < / t d > < / t r > < t r > < t d > < c o d e > - - n o - s t r i p < / c o d e > < / t d > < t d > K e e p d e b u g s y m b o l s ; d o n o t s t r i p t h e b i n a r y < / t d > < / t r > < t r > < t d > < c o d e > - I k e y = v a l u e < / c o d e > < / t d > < t d > H a r d - c o m p i l e a n I N I o p t i o n i n t o P H P < / t d > < / t r > < t r > < t d > < c o d e > - - w i t h - u p x - p a c k < / c o d e > < / t d > < t d > C o m p r e s s o u t p u t w i t h U P X ( r u n < c o d e > s p c i n s t a l l - p k g u p x < / c o d e > f i r s t ) < / t d > < / t r > < / t b o d y > < / t a b l e > < p > E x a m p l e — b a k i n g i n a l a r g e r m e m o r y l i m i t a n d d i s a b l i n g t h e < c o d e > s y s t e m < / c o d e > f u n c t i o n : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d : p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , p c n t l , p o s i x & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - I < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; m e m o r y _ l i m i t = 4 G & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - I < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; d i s a b l e _ f u n c t i o n s = s y s t e m & q u o t ; < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 2 i d = " p a c k a g i n g - a - m i c r o - a p p " t a b i n d e x = " - 1 " > P a c k a g i n g a m i c r o A p p < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # p a c k a g i n g - a - m i c r o - a p p " a r i a - l a b e l = " P e r m a l i n k t o “ P a c k a g i n g a m i c r o A p p ” " > < / a > < / h 2 > < p > O n c e y o u h a v e < c o d e > m i c r o . s f x < / c o d e > , u s e < c o d e > m i c r o : c o m b i n e < / c o d e > t o b u n d l e y o u r P H P c o d e i n t o a s i n g l e s e l f - c o n t a i n e d e x e c u t a b l e : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > e c h o < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; & l t ; ? p h p e c h o & # 3 9 ; H e l l o , W o r l d ! & # 3 9 ; . P H P _ E O L ; & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # c 6 2 7 3 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > & g t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > h e l l o . p h p < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m i c r o : c o m b i n e < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > h e l l o . p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - o u t p u t = h e l l o < / s p a n > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > . / hello < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > W o r k s w i t h < c o d e > . p h a r < / c o d e > f i l e s t o o , a n d y o u c a n i n j e c t I N I s e t t i n g s a t p a c k a g i n g t i m e : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 2 6 8 7 b ; - - s h i k i - d a r k : # 8 1 8 e 9 9 ; " > # B u n d l e a p h a r < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m i c r o : c o m b i n e < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > y o u r - a p p . p h a r < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - o u t p u t = y o u r - a p p < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Inject INI via command - line options < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m i c r o : c o m b i n e < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > y o u r - a p p . p h a r < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - o u t p u t = y o u r - a p p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - I < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; m e m o r y _ l i m i t = 5 1 2 M & q u o t ; < / s p a n > < / s p a n >
< span class = "line" > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Inject INI from a file < / s p a n > < / s p a n >
2026-07-04 07:43:21 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > m i c r o : c o m b i n e < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > y o u r - a p p . p h a r < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - o u t p u t = y o u r - a p p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - N < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > / p a t h / t o / c u s t o m . i n i < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < h 2 i d = " d e b u g g i n g - a n d - r e b u i l d i n g " t a b i n d e x = " - 1 " > D e b u g g i n g a n d R e b u i l d i n g < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # d e b u g g i n g - a n d - r e b u i l d i n g " a r i a - l a b e l = " P e r m a l i n k t o “ D e b u g g i n g a n d R e b u i l d i n g ” " > < / a > < / h 2 > < p > I f a b u i l d f a i l s o r y o u w a n t t o t r a c e w h a t & # 3 9 ; s h a p p e n i n g , u s e < c o d e > - v < / c o d e > / < c o d e > - v v < / c o d e > / < c o d e > - v v v < / c o d e > : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d : p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , o p e n s s l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - v v < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < u l > < l i > < c o d e > - v < / c o d e > s h o w s < c o d e > I N F O < / c o d e > - l e v e l l o g s : w h i c h m o d u l e s a r e r u n n i n g a n d w h a t b u i l d c o m m a n d s a r e b e i n g e x e c u t e d . < / l i > < l i > < c o d e > - v v < / c o d e > s h o w s < c o d e > D E B U G < / c o d e > - l e v e l l o g s : a l l i n t e r n a l d e b u g o u t p u t f r o m S t a t i c P H P . < / l i > < l i > < c o d e > - v v v < / c o d e > s h o w s < c o d e > D E B U G < / c o d e > - l e v e l l o g s a n d a l s o p i p e s t h e s t d o u t o f e v e r y s h e l l c o m m a n d d i r e c t l y t o y o u r t e r m i n a l . < / l i > < / u l > < p > T o w i p e c o m p i l e d a r t i f a c t s a n d s t a r t f r e s h w i t h o u t r e - d o w n l o a d i n g , r u n < c o d e > r e s e t < / c o d e > : < / p > < d i v c l a s s = " l a n g u a g e - b a s h " > < b u t t o n t i t l e = " C o p y C o d e " c l a s s = " c o p y " > < / b u t t o n > < s p a n c l a s s = " l a n g " > b a s h < / s p a n > < p r e c l a s s = " s h i k i s h i k i - t h e m e s g i t h u b - l i g h t g i t h u b - d a r k " s t y l e = " - - s h i k i - l i g h t : # 2 4 2 9 2 e ; - - s h i k i - d a r k : # e 1 e 4 e 8 ; - - s h i k i - l i g h t - b g : # f f f ; - - s h i k i - d a r k - b g : # 2 4 2 9 2 e ; " t a b i n d e x = " 0 " d i r = " l t r " > < c o d e > < s p a n c l a s s = " l i n e " > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > s p c < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > r e s e t < / s p a n > < / s p a n >
2026-07-16 06:25:16 +00:00
< span class = "line" > < span style = "--shiki-light:#62687b;--shiki-dark:#818e99;" > # Then rebuild < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > spc < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > b u i l d : p h p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > & q u o t ; b c m a t h , o p e n s s l & q u o t ; < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 0 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - b u i l d - c l i < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < d i v c l a s s = " t i p c u s t o m - b l o c k " > < p c l a s s = " c u s t o m - b l o c k - t i t l e c u s t o m - b l o c k - t i t l e - d e f a u l t " > T I P < / p > < p > < c o d e > r e s e t < / c o d e > o n l y r e m o v e s < c o d e > b u i l d r o o t / < / c o d e > a n d < c o d e > s o u r c e / < / c o d e > . Y o u r < c o d e > d o w n l o a d s / < / c o d e > c a c h e i s p r e s e r v e d . A d d < c o d e > - - w i t h - d o w n l o a d < / c o d e > i f y o u a l s o w a n t t o c l e a r t h e d o w n l o a d c a c h e . < / p > < / d i v > < p > I f y o u & # 3 9 ; r e s t u c k , o p e n a n < a h r e f = " h t t p s : / / g i t h u b . c o m / s t a t i c - p h p / s t a t i c - p h p - c l i / i s s u e s " t a r g e t = " _ b l a n k " r e l = " n o r e f e r r e r " > I s s u e < / a > a n d i n c l u d e y o u r < c o d e > c r a f t . y m l < / c o d e > ( i f a n y ) a n d a z i p o f t h e < c o d e > l o g / < / c o d e > d i r e c t o r y . < / p > < h 2 i d = " w h a t - s - n e x t " t a b i n d e x = " - 1 " > W h a t & # 3 9 ; s N e x t < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # w h a t - s - n e x t " a r i a - l a b e l = " P e r m a l i n k t o “ W h a t & # 3 9 ; s N e x t ” " > < / a > < / h 2 > < u l > < l i > < a h r e f = " . / s a p i - r e f e r e n c e . h t m l " > P H P S A P I R e f e r e n c e < / a > — B u i l d o p t i o n s a n d u s a g e g u i d e f o r e a c h P H P S A P I < / l i > < l i > < a h r e f = " . / c l i - r e f e r e n c e . h t m l " > C L I R e f e r e n c e < / a > — F u l l d o c u m e n t a t i o n f o r e v e r y c o m m a n d a n d o p t i o n < / l i > < l i > < a h r e f = " . / e x t e n s i o n s . h t m l " > E x t e n s i o n s < / a > — B r o w s e s u p p o r t e d e x t e n s i o n s a n d t h e i r d e p e n d e n c i e s < / l i > < l i > < a h r e f = " . / t r o u b l e s h o o t i n g . h t m l " > T r o u b l e s h o o t i n g < / a > — D i a g n o s e c o m m o n b u i l d f a i l u r e s < / l i > < / u l > ` , 5 1 ) ] ] ) } v a r s = r ( a , [ [ ` r e n d e r ` , o ] ] ) ; e x p o r t { i a s _ _ p a g e D a t a , s a s d e f a u l t } ;