2026-05-08 02:21:34 +00:00
import { _ as s , c as a , o as t , aj as e } from "./chunks/framework.C2AwuPrQ.js" ; const c = JSON . parse ( '{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/installation.md","filePath":"en/guide/installation.md"}' ) , l = { name : "en/guide/installation.md" } ; function n ( h , i , p , d , r , k ) { return t ( ) , a ( "div" , null , [ ... i [ 0 ] || ( i [ 0 ] = [ e ( ` <h1 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to “Installation”"> </a></h1><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to “Requirements”"> </a></h2><table tabindex="0"><thead><tr><th>Platform</th><th>Architecture</th><th>Notes</th></tr></thead><tbody><tr><td>Linux</td><td>x86_64, aarch64</td><td>Major distros supported (Alpine, Debian/Ubuntu, RHEL/CentOS, etc.)</td></tr><tr><td>macOS</td><td>x86_64 (Intel), arm64 (Apple Silicon)</td><td>macOS 12 or later</td></tr><tr><td>Windows</td><td>x86_64</td><td>Windows 10 Build 17063 or later</td></tr></tbody></table><div class="tip custom-block"><p class="custom-block-title custom-block-title-default">TIP</p><p>Both glibc-based distros (Debian, Ubuntu, Arch, etc.) and musl-based ones (Alpine) are supported on Linux. The <code>doctor</code> command will detect your environment and guide you through installing the right toolchain if needed.</p></div><p>Pick the installation method that fits your use case:</p><table tabindex="0"><thead><tr><th>Method</th><th>Best for</th></tr></thead><tbody><tr><td>Pre-built binary</td><td>Most users — download and run, no dependencies</td></tr><tr><td>From source</td><td>Contributors, or anyone who needs to modify core build logic</td></tr><tr><td>Vendor mode</td><td>Integrating StaticPHP into an existing PHP project</td></tr></tbody></table><h2 id="pre-built-binary" tabindex="-1">Pre-built binary <a class="header-anchor" href="#pre-built-binary" aria-label="Permalink to “Pre-built binary”"> </a></h2><p><code>spc</code> has no runtime dependencies — download the binary for your platform and it's ready to go.</p><blockquote><p>Fun fact: <code>spc</code> itself is a static PHP binary built with StaticPHP. We use StaticPHP to build StaticPHP's own build tool.</p></blockquote><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-113" id="tab-114" checked><label data-title="Linux x86_64" for="tab-114">Linux x86_64</label><input type="radio" name="group-113" id="tab-115"><label data-title="Linux arm64" for="tab-115">Linux arm64</label><input type="radio" name="group-113" id="tab-116"><label data-title="macOS x86_64" for="tab-116">macOS x86_64</label><input type="radio" name="group-113" id="tab-117"><label data-title="macOS arm64" for="tab-117">macOS arm64</label><input type="radio" name="group-113" id="tab-118"><label data-title="Windows x86_64" for="tab-118">Windows x86_64</label></div><div class="blocks"><div class="language-shell active"><button title="Copy Code" class="copy"></button><span class="lang">shell</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:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> -#fSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-x86_64</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</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:#6F42C1;--shiki-dark:#B392F0;">curl</span><span
2026-05-07 08:31:20 +00:00
< span class = "line" > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > cd < / 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 ; " > s t a t i c - p h p - c l i < / s p a n > < / s p a n >
2026-05-08 02:21:34 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > composer < / 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 ; " > i n s t a l l < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > I f y o u d o n & # 3 9 ; t h a v e P H P o r C o m p o s e r i n s t a l l e d , u s e t h e b u n d l e d s e t u p s c r i p t t o i n s t a l l a s e l f - c o n t a i n e d r u n t i m e : < / p > < d i v c l a s s = " v p - c o d e - g r o u p " > < d i v c l a s s = " t a b s " > < i n p u t t y p e = " r a d i o " n a m e = " g r o u p - 1 3 4 " i d = " t a b - 1 3 5 " c h e c k e d > < l a b e l d a t a - t i t l e = " L i n u x / m a c O S " f o r = " t a b - 1 3 5 " > L i n u x / m a c O S < / l a b e l > < i n p u t t y p e = " r a d i o " n a m e = " g r o u p - 1 3 4 " i d = " t a b - 1 3 6 " > < l a b e l d a t a - t i t l e = " W i n d o w s " f o r = " t a b - 1 3 6 " > W i n d o w s < / l a b e l > < / d i v > < d i v c l a s s = " b l o c k s " > < d i v c l a s s = " l a n g u a g e - b a s h a c t i v e " > < 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 i n / s e t u p - r u n t i m e < / 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 = " l a n g u a g e - p o w e r s h e l l " > < 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 " > p o w e r s h e l l < / 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 : # 2 4 2 9 2 E ; - - s h i k i - d a r k : # E 1 E 4 E 8 ; " > . \ \ b i n \ \ s e t u p < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > - < / 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 ; " > r u n t i m e . p s 1 < / s p a n > < / s p a n >
2026-05-07 08:31:20 +00:00
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > . \ \ bin \ \ setup < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > - < / 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 ; " > r u n t i m e . p s 1 < / 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 ; " > a d d - p a t h < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # 6 A 7 3 7 D ; - - s h i k i - d a r k : # 6 A 7 3 7 D ; " > # a d d r u n t i m e / t o P A T H < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < / d i v > < / d i v > < p > T h e s c r i p t d o w n l o a d s < c o d e > p h p < / c o d e > a n d < c o d e > c o m p o s e r < / c o d e > i n t o a < c o d e > r u n t i m e / < / c o d e > s u b d i r e c t o r y . Y o u t h e n h a v e t w o o p t i o n s : < / p > < o l > < l i > < p > < s t r o n g > C a l l t h e m d i r e c t l y < / s t r o n g > ( n o P A T H c h a n g e s n e e d e 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 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > r u n t i m e / 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 ; " > b i n / 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 0 5 C C 5 ; - - s h i k i - d a r k : # 7 9 B 8 F F ; " > - - h e l p < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > runtime / 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 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > r u n t i m e / c o m p o s e 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 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > i n s t a l l < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < / l i > < l i > < p > < s t r o n g > A d d < c o d e > r u n t i m e / < / c o d e > t o y o u r P A T H < / s t r o n g > s o y o u c a n u s e < c o d e > p h p < / c o d e > , < c o d e > c o m p o s e r < / c o d e > , a n d < c o d e > b i n / s p c < / c o d e > w i t h o u t p r e f i x e s : < / 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 : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > e x p o r t < / 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 ; " > P A T H < / s p a n > < s p a n s t y l e = " - - s h i k i - l i g h t : # D 7 3 A 4 9 ; - - s h i k i - d a r k : # F 9 7 5 8 3 ; " > = < / 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 ; / p a t h / t o / s t a t i c - p h p - c l i / r u n t i m e : < / 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 ; " > $ P A T H < / 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 ; < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6A737D;--shiki-dark:#6A737D;" > # Add this to ~ /.bashrc or ~/ . zshrc to make it permanent < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < / l i > < / o l > < h 2 i d = " v e n d o r - m o d e " t a b i n d e x = " - 1 " > V e n d o r m o d e < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # v e n d o r - m o d e " a r i a - l a b e l = " P e r m a l i n k t o “ V e n d o r m o d e ” " > < / a > < / h 2 > < p > I f y o u a l r e a d y h a v e a P H P p r o j e c t a n d w a n t t o c a l l S t a t i c P H P & # 3 9 ; s b u i l d A P I s d i r e c t l y , o r u s e a c u s t o m r e g i s t r y t o s u p p o r t p r i v a t e l i b r a r i e s a n d e x t e n s i o n s , p u l l i t i n a s a C o m p o s e r d e p e n d e n c 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 F 4 2 C 1 ; - - s h i k i - d a r k : # B 3 9 2 F 0 ; " > c o m p o s e 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 3 2 F 6 2 ; - - s h i k i - d a r k : # 9 E C B F F ; " > r e q u i r 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 ; " > c r a z y w h a l e c c / s t a t i c - p h p - c l i < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > S e e t h e < a h r e f = " . / . . / d e v e l o p / e x t e n d i n g / " > E x t e n d i n g S t a t i c P H P < / a > g u i d e f o r d e t a i l s . < / p > < h 2 i d = " v e r i f y - y o u r - b u i l d - e n v i r o n m e n t " t a b i n d e x = " - 1 " > V e r i f y y o u r b u i l d e n v i r o n m e n t < a c l a s s = " h e a d e r - a n c h o r " h r e f = " # v e r i f y - y o u r - b u i l d - e n v i r o n m e n t " a r i a - l a b e l = " P e r m a l i n k t o “ V e r i f y y o u r b u i l d e n v i r o n m e n t ” " > < / a > < / h 2 > < b l o c k q u o t e > < p > < s t r o n g > V e n d o r m o d e u s e r s c a n s k i p t h i s s t e p . < / s t r o n g > < / p > < / b l o c k q u o t e > < p > O n c e i n s t a l l e d , r u n < c o d e > d o c t o r < / c o d e > t o c h e c k t h a t y o u r s y s t e m h a s t h e r e q u i r e d b u i l d t o o l s ( c m a k e , m a k e , a C c o m p i l e r , e t c . ) : < / 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 A 7 3 7 D ; - - s h i k i - d a r k : # 6 A 7 3 7 D ; " > # U s i n g t h e s p c b i n a r y < / 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 c t o r < / s p a n > < / s p a n >
< span class = "line" > < span style = "--shiki-light:#6A737D;--shiki-dark:#6A737D;" > # From source < / s p a n > < / s p a n >
2026-05-08 02:21:34 +00:00
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > bin / 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 c t o r < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > I f a n y t h i n g i s m i s s i n g , < c o d e > - - a u t o - f i x < / c o d e > w i l l a t t e m p t t o i n s t a l l i t f o r y o u : < / 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 ; " > d o c t o 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 ; " > - - a u t o - f i x < / s p a n > < / s p a n > < / c o d e > < / p r e > < / d i v > < p > O n c e < c o d e > d o c t o r < / c o d e > r e p o r t s e v e r y t h i n g i s g o o d , h e a d o v e r t o < a h r e f = " . / f i r s t - b u i l d . h t m l " > F i r s t B u i l d < / a > . < / p > ` , 3 0 ) ] ) ] ) } c o n s t g = s ( l , [ [ " r e n d e r " , n ] ] ) ; e x p o r t { c a s _ _ p a g e D a t a , g a s d e f a u l t } ;