[{"data":1,"prerenderedAt":2101},["ShallowReactive",2],{"navigation":3,"/docs/image-variations/fpm-nginx":221,"/docs/image-variations/fpm-nginx-surround":2096},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,12,56,85,132,153,178,195,208],{"title":10,"path":6,"stem":11},"","docs/index",{"title":13,"path":14,"stem":15,"children":16,"icon":55},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[17,19,23,27,31,35,39,43,47,51],{"title":18,"path":14,"stem":15},"Introduction",{"title":20,"path":21,"stem":22},"Container Basics","/docs/getting-started/container-basics","docs/1.getting-started/2.container-basics",{"title":24,"path":25,"stem":26},"Installation","/docs/getting-started/installation","docs/1.getting-started/3.installation",{"title":28,"path":29,"stem":30},"These Images vs Others","/docs/getting-started/these-images-vs-others","docs/1.getting-started/4.these-images-vs-others",{"title":32,"path":33,"stem":34},"Choosing an Image","/docs/getting-started/choosing-an-image","docs/1.getting-started/5.choosing-an-image",{"title":36,"path":37,"stem":38},"Default Configurations","/docs/getting-started/default-configurations","docs/1.getting-started/6.default-configurations",{"title":40,"path":41,"stem":42},"Upgrade Guide","/docs/getting-started/upgrade-guide","docs/1.getting-started/7.upgrade-guide",{"title":44,"path":45,"stem":46},"Changelog","/docs/getting-started/changelog","docs/1.getting-started/8.changelog",{"title":48,"path":49,"stem":50},"About","/docs/getting-started/about","docs/1.getting-started/9.about",{"title":52,"path":53,"stem":54},"Contributing","/docs/getting-started/contributing","docs/1.getting-started/99.contributing",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Image Variations","/docs/image-variations","docs/2.image-variations",[61,65,69,73,77,81],{"title":62,"path":63,"stem":64},"CLI","/docs/image-variations/cli","docs/2.image-variations/cli",{"title":66,"path":67,"stem":68},"FPM","/docs/image-variations/fpm","docs/2.image-variations/fpm",{"title":70,"path":71,"stem":72},"FPM-Apache","/docs/image-variations/fpm-apache","docs/2.image-variations/fpm-apache",{"title":74,"path":75,"stem":76},"FPM-NGINX","/docs/image-variations/fpm-nginx","docs/2.image-variations/fpm-nginx",{"title":78,"path":79,"stem":80},"FrankenPHP","/docs/image-variations/frankenphp","docs/2.image-variations/frankenphp",{"title":82,"path":83,"stem":84},"Unit (Deprecated)","/docs/image-variations/unit","docs/2.image-variations/unit",{"title":86,"path":87,"stem":88,"children":89,"page":55},"Framework Guides","/docs/framework-guides","docs/3.framework-guides",[90,123],{"title":91,"icon":55,"defaultOpen":55,"path":92,"stem":93,"children":94,"page":55},"Laravel","/docs/framework-guides/laravel","docs/3.framework-guides/1.laravel",[95,99,103,107,111,115,119],{"title":96,"path":97,"stem":98},"Automations","/docs/framework-guides/laravel/automations","docs/3.framework-guides/1.laravel/1.automations",{"title":100,"path":101,"stem":102},"Task Scheduler","/docs/framework-guides/laravel/task-scheduler","docs/3.framework-guides/1.laravel/2.task-scheduler",{"title":104,"path":105,"stem":106},"Queue","/docs/framework-guides/laravel/queue","docs/3.framework-guides/1.laravel/3.queue",{"title":108,"path":109,"stem":110},"Horizon","/docs/framework-guides/laravel/horizon","docs/3.framework-guides/1.laravel/4.horizon",{"title":112,"path":113,"stem":114},"Reverb","/docs/framework-guides/laravel/reverb","docs/3.framework-guides/1.laravel/4.reverb",{"title":116,"path":117,"stem":118},"Nightwatch","/docs/framework-guides/laravel/nightwatch","docs/3.framework-guides/1.laravel/5.nightwatch",{"title":120,"path":121,"stem":122},"Octane","/docs/framework-guides/laravel/octane","docs/3.framework-guides/1.laravel/octane",{"title":124,"icon":55,"defaultOpen":55,"path":125,"stem":126,"children":127,"page":55},"WordPress","/docs/framework-guides/wordpress","docs/3.framework-guides/2.wordpress",[128],{"title":129,"path":130,"stem":131},"Using Docker with WordPress","/docs/framework-guides/wordpress/using-wordpress-with-docker","docs/3.framework-guides/2.wordpress/4.using-wordpress-with-docker",{"title":133,"path":134,"stem":135,"children":136,"page":55},"Deployment And Production","/docs/deployment-and-production","docs/4.deployment-and-production",[137,141,145,149],{"title":138,"path":139,"stem":140},"Development to Production","/docs/deployment-and-production/development-to-production","docs/4.deployment-and-production/2.development-to-production",{"title":142,"path":143,"stem":144},"Packaging Your App for Deployment","/docs/deployment-and-production/packaging-your-app-for-deployment","docs/4.deployment-and-production/3.packaging-your-app-for-deployment",{"title":146,"path":147,"stem":148},"Configuring SSL","/docs/deployment-and-production/configuring-ssl","docs/4.deployment-and-production/4.configuring-ssl",{"title":150,"path":151,"stem":152},"Choosing a Host","/docs/deployment-and-production/choosing-a-host","docs/4.deployment-and-production/5.choosing-a-host",{"title":154,"icon":55,"defaultOpen":55,"path":155,"stem":156,"children":157,"page":55},"Advanced Guides","/docs/guide","docs/5.guide",[158,162,166,170,174],{"title":159,"path":160,"stem":161},"Migrating from official PHP images","/docs/guide/migrating-from-official-php-images","docs/5.guide/1.migrating-from-official-php-images",{"title":163,"path":164,"stem":165},"Using Healthchecks With Laravel","/docs/guide/using-healthchecks-with-laravel","docs/5.guide/2.using-healthchecks-with-laravel",{"title":167,"path":168,"stem":169},"Using S6 Overlay","/docs/guide/using-s6-overlay","docs/5.guide/2.using-s6-overlay",{"title":171,"path":172,"stem":173},"Understanding File Permissions","/docs/guide/understanding-file-permissions","docs/5.guide/3.understanding-file-permissions",{"title":175,"path":176,"stem":177},"Configuring Trusted Proxies","/docs/guide/configuring-trusted-proxies","docs/5.guide/4.configuring-trusted-proxies",{"title":179,"icon":55,"defaultOpen":55,"path":180,"stem":181,"children":182,"page":55},"Customization","/docs/customizing-the-image","docs/6.customizing-the-image",[183,187,191],{"title":184,"path":185,"stem":186},"Changing php.ini settings","/docs/customizing-the-image/changing-common-php-settings","docs/6.customizing-the-image/1.changing-common-php-settings",{"title":188,"path":189,"stem":190},"Installing PHP extensions","/docs/customizing-the-image/installing-additional-php-extensions","docs/6.customizing-the-image/2.installing-additional-php-extensions",{"title":192,"path":193,"stem":194},"Adding Start Up Scripts","/docs/customizing-the-image/adding-your-own-start-up-scripts","docs/6.customizing-the-image/3.adding-your-own-start-up-scripts",{"title":196,"path":197,"stem":198,"children":199,"page":55},"Troubleshooting","/docs/troubleshooting","docs/7.troubleshooting",[200,204],{"title":201,"path":202,"stem":203},"Common Issues","/docs/troubleshooting/common-issues","docs/7.troubleshooting/1.common-issues",{"title":205,"path":206,"stem":207},"Getting Help","/docs/troubleshooting/getting-help","docs/7.troubleshooting/2.getting-help",{"title":209,"path":210,"stem":211,"children":212,"page":55},"Reference","/docs/reference","docs/8.reference",[213,217],{"title":214,"path":215,"stem":216},"Environment Variable Specification","/docs/reference/environment-variable-specification","docs/8.reference/1.environment-variable-specification",{"title":218,"path":219,"stem":220},"Command Reference","/docs/reference/command-reference","docs/8.reference/2.command-reference",{"id":222,"title":74,"body":223,"description":2091,"extension":996,"links":2092,"meta":2093,"navigation":794,"path":75,"redirect":2092,"seo":2094,"stem":76,"__hash__":2095},"docs/docs/2.image-variations/fpm-nginx.md",{"type":224,"value":225,"toc":2064},"minimark",[226,238,243,246,262,267,281,285,418,422,425,471,474,480,484,487,492,540,550,554,579,582,670,675,679,682,956,960,963,976,983,999,1003,1006,1010,1079,1082,1102,1106,1109,1186,1191,1195,1198,1202,1416,1424,1428,1598,1602,1605,1609,1614,1694,1698,1813,1821,1824,1831,1835,1838,1855,1859,1862,1918,1921,2041,2045,2048,2060],[227,228,229],"lead-p",{},[230,231,232,233,237],"p",{},"The FPM-NGINX variation combines PHP-FPM with NGINX as a reverse proxy in a single container. This is the traditional setup widely adopted for many PHP applications and is currently is the best balance of performance, stability, and compatibility. If you want the latest and greatest, consider using the ",[234,235,236],"a",{"href":79},"FrankenPHP variation →",".",[239,240,242],"h2",{"id":241},"when-to-use-fpm-nginx","When to Use FPM-NGINX",[230,244,245],{},"Use the FPM-NGINX variation when you need to:",[247,248,249,253,256,259],"ul",{},[250,251,252],"li",{},"Run Laravel applications with excellent performance and stability",[250,254,255],{},"Want an all-in-one container with both web server and PHP processing",[250,257,258],{},"Need a fast, lightweight web server with low resource consumption",[250,260,261],{},"Serve static assets efficiently while processing PHP requests",[263,264,266],"h4",{"id":265},"perfect-for","Perfect for",[247,268,269,272,275,278],{},[250,270,271],{},"Laravel applications (this is our most popular variation for Laravel)",[250,273,274],{},"Modern PHP frameworks (Symfony, etc.)",[250,276,277],{},"API-first applications",[250,279,280],{},"Production deployments requiring high performance and stability",[263,282,284],{"id":283},"whats-inside","What's Inside",[286,287,288,301],"table",{},[289,290,291],"thead",{},[292,293,294,298],"tr",{},[295,296,297],"th",{},"Item",[295,299,300],{},"Status",[302,303,304,313,320,327,334,345,355,362,369,377,385,393,408],"tbody",{},[292,305,306,310],{},[307,308,309],"td",{},"NGINX web server",[307,311,312],{},"✅",[292,314,315,318],{},[307,316,317],{},"PHP-FPM process manager",[307,319,312],{},[292,321,322,325],{},[307,323,324],{},"PHP CLI binary",[307,326,312],{},[292,328,329,332],{},[307,330,331],{},"Common PHP extensions",[307,333,312],{},[292,335,336,343],{},[307,337,338,342],{},[339,340,341],"code",{},"composer"," executable",[307,344,312],{},[292,346,347,353],{},[307,348,349,352],{},[339,350,351],{},"install-php-extensions"," script",[307,354,312],{},[292,356,357,360],{},[307,358,359],{},"Essential system utilities",[307,361,312],{},[292,363,364,367],{},[307,365,366],{},"S6 Overlay (process supervisor)",[307,368,312],{},[292,370,371,374],{},[307,372,373],{},"Native health checks",[307,375,376],{},"✅ (via HTTP endpoint)",[292,378,379,382],{},[307,380,381],{},"SSL/TLS support",[307,383,384],{},"✅ (self-signed certificates)",[292,386,387,390],{},[307,388,389],{},"Process management",[307,391,392],{},"S6 Overlay supervising both NGINX and PHP-FPM",[292,394,395,398],{},[307,396,397],{},"Exposed Ports",[307,399,400,403,404,407],{},[339,401,402],{},"8080"," (HTTP), ",[339,405,406],{},"8443"," (HTTPS)",[292,409,410,413],{},[307,411,412],{},"Stop Signal",[307,414,415],{},[339,416,417],{},"SIGQUIT",[239,419,421],{"id":420},"how-fpm-nginx-works","How FPM-NGINX Works",[230,423,424],{},"This variation runs both NGINX and PHP-FPM in a single container, managed by S6 Overlay. Here's how requests flow:",[426,427,429,433,436,440,443,447,450,454,457,461,464,468],"steps",{"level":428},"4",[263,430,432],{"id":431},"client-sends-http-request","Client sends HTTP request",[230,434,435],{},"The container listens on port 8080 (or 8443 for HTTPS) for incoming HTTP requests.",[263,437,439],{"id":438},"nginx-receives-the-request","NGINX receives the request",[230,441,442],{},"NGINX receives the request and determines if it's a static file or PHP script.",[263,444,446],{"id":445},"check-for-static-files","Check for static files",[230,448,449],{},"Static files (CSS, JavaScript, images) are served directly by NGINX.",[263,451,453],{"id":452},"forward-php-requests-to-php-fpm","Forward PHP requests to PHP-FPM",[230,455,456],{},"PHP requests are forwarded to PHP-FPM via FastCGI protocol.",[263,458,460],{"id":459},"process-php-requests-with-php-fpm","Process PHP requests with PHP-FPM",[230,462,463],{},"PHP-FPM processes the PHP script and returns the result to NGINX.",[263,465,467],{"id":466},"send-the-response-back-to-the-client","Send the response back to the client",[230,469,470],{},"NGINX sends the response back to the client.",[230,472,473],{},"S6 Overlay ensures both NGINX and PHP-FPM are running and automatically restarts them if either process fails.",[475,476,477],"tip",{},[230,478,479],{},"This variation offers better performance than FPM-Apache for most modern PHP applications. NGINX is designed to handle high concurrency with lower resource consumption.",[239,481,483],{"id":482},"quick-start","Quick Start",[230,485,486],{},"Here are a few examples to help you get started with the FPM-NGINX variation.",[488,489,491],"h3",{"id":490},"docker-cli","Docker CLI",[493,494,499],"pre",{"className":495,"code":496,"filename":497,"language":498,"meta":10,"style":10},"language-bash shiki shiki-themes github-dark","docker run -p 80:8080 -v $(pwd):/var/www/html/public serversideup/php:8.5-fpm-nginx\n","Terminal","bash",[339,500,501],{"__ignoreMap":10},[502,503,506,510,514,518,521,524,528,531,534,537],"span",{"class":504,"line":505},"line",1,[502,507,509],{"class":508},"svObZ","docker",[502,511,513],{"class":512},"sU2Wk"," run",[502,515,517],{"class":516},"sDLfK"," -p",[502,519,520],{"class":512}," 80:8080",[502,522,523],{"class":516}," -v",[502,525,527],{"class":526},"s95oV"," $(",[502,529,530],{"class":516},"pwd",[502,532,533],{"class":526},")",[502,535,536],{"class":512},":/var/www/html/public",[502,538,539],{"class":512}," serversideup/php:8.5-fpm-nginx\n",[230,541,542,543,546,547,237],{},"Your application will be available at ",[339,544,545],{},"http://localhost",". The default webroot is ",[339,548,549],{},"/var/www/html/public",[488,551,553],{"id":552},"docker-compose","Docker Compose",[555,556,557],"warning",{},[230,558,559,560,563,564,566,567,570,571,574,575,578],{},"Notice how we're mapping the current directory to ",[339,561,562],{},"/var/www/html/",", but the actual default document root is ",[339,565,549],{},". We're assuming you're creating the ",[339,568,569],{},"public"," directory and putting your PHP code in there. It's not best practice to expose your ",[339,572,573],{},"compose.yml"," file. See the ",[234,576,577],{"href":25},"Installation guide"," for a full example.",[230,580,581],{},"This is the recommended approach for local development and production deployments.",[493,583,587],{"className":584,"code":585,"filename":573,"language":586,"meta":10,"style":10},"language-yml shiki shiki-themes github-dark","services:\n  php:\n    image: serversideup/php:8.5-fpm-nginx\n    ports:\n      - \"80:8080\"\n    volumes:\n      - ./:/var/www/html\n    environment:\n      PHP_OPCACHE_ENABLE: \"1\"\n","yml",[339,588,589,598,606,618,626,635,643,651,659],{"__ignoreMap":10},[502,590,591,595],{"class":504,"line":505},[502,592,594],{"class":593},"s4JwU","services",[502,596,597],{"class":526},":\n",[502,599,601,604],{"class":504,"line":600},2,[502,602,603],{"class":593},"  php",[502,605,597],{"class":526},[502,607,609,612,615],{"class":504,"line":608},3,[502,610,611],{"class":593},"    image",[502,613,614],{"class":526},": ",[502,616,617],{"class":512},"serversideup/php:8.5-fpm-nginx\n",[502,619,621,624],{"class":504,"line":620},4,[502,622,623],{"class":593},"    ports",[502,625,597],{"class":526},[502,627,629,632],{"class":504,"line":628},5,[502,630,631],{"class":526},"      - ",[502,633,634],{"class":512},"\"80:8080\"\n",[502,636,638,641],{"class":504,"line":637},6,[502,639,640],{"class":593},"    volumes",[502,642,597],{"class":526},[502,644,646,648],{"class":504,"line":645},7,[502,647,631],{"class":526},[502,649,650],{"class":512},"./:/var/www/html\n",[502,652,654,657],{"class":504,"line":653},8,[502,655,656],{"class":593},"    environment",[502,658,597],{"class":526},[502,660,662,665,667],{"class":504,"line":661},9,[502,663,664],{"class":593},"      PHP_OPCACHE_ENABLE",[502,666,614],{"class":526},[502,668,669],{"class":512},"\"1\"\n",[475,671,672],{},[230,673,674],{},"The FPM-NGINX variation uses ports 8080 and 8443 (instead of 80 and 443) to allow the container to run as a non-root user for better security.",[488,676,678],{"id":677},"laravel-example","Laravel Example",[230,680,681],{},"The FPM-NGINX variation is perfectly suited for Laravel applications:",[493,683,685],{"className":584,"code":684,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    image: serversideup/php:8.5-fpm-nginx\n    ports:\n      - \"80:8080\"\n      - \"443:8443\"\n    volumes:\n      - .:/var/www/html\n    environment:\n      SSL_MODE: \"full\"\n      PHP_OPCACHE_ENABLE: \"1\"\n    depends_on:\n      - mariadb\n      - redis\n\n  mariadb:\n    image: mariadb:11\n    environment:\n      MYSQL_ROOT_PASSWORD: rootpassword\n      MYSQL_DATABASE: laravel\n      MYSQL_USER: laravel\n      MYSQL_PASSWORD: laravel\n    volumes:\n      - db_data:/var/lib/mysql\n\n  redis:\n    image: redis:alpine\n    command: redis-server --appendonly yes\n    volumes:\n      - redis_data:/data\n\nvolumes:\n  db_data:\n  redis_data:\n",[339,686,687,693,699,707,713,719,726,732,739,745,756,765,773,781,789,796,804,814,821,832,843,853,863,870,878,883,891,901,912,919,927,932,940,948],{"__ignoreMap":10},[502,688,689,691],{"class":504,"line":505},[502,690,594],{"class":593},[502,692,597],{"class":526},[502,694,695,697],{"class":504,"line":600},[502,696,603],{"class":593},[502,698,597],{"class":526},[502,700,701,703,705],{"class":504,"line":608},[502,702,611],{"class":593},[502,704,614],{"class":526},[502,706,617],{"class":512},[502,708,709,711],{"class":504,"line":620},[502,710,623],{"class":593},[502,712,597],{"class":526},[502,714,715,717],{"class":504,"line":628},[502,716,631],{"class":526},[502,718,634],{"class":512},[502,720,721,723],{"class":504,"line":637},[502,722,631],{"class":526},[502,724,725],{"class":512},"\"443:8443\"\n",[502,727,728,730],{"class":504,"line":645},[502,729,640],{"class":593},[502,731,597],{"class":526},[502,733,734,736],{"class":504,"line":653},[502,735,631],{"class":526},[502,737,738],{"class":512},".:/var/www/html\n",[502,740,741,743],{"class":504,"line":661},[502,742,656],{"class":593},[502,744,597],{"class":526},[502,746,748,751,753],{"class":504,"line":747},10,[502,749,750],{"class":593},"      SSL_MODE",[502,752,614],{"class":526},[502,754,755],{"class":512},"\"full\"\n",[502,757,759,761,763],{"class":504,"line":758},11,[502,760,664],{"class":593},[502,762,614],{"class":526},[502,764,669],{"class":512},[502,766,768,771],{"class":504,"line":767},12,[502,769,770],{"class":593},"    depends_on",[502,772,597],{"class":526},[502,774,776,778],{"class":504,"line":775},13,[502,777,631],{"class":526},[502,779,780],{"class":512},"mariadb\n",[502,782,784,786],{"class":504,"line":783},14,[502,785,631],{"class":526},[502,787,788],{"class":512},"redis\n",[502,790,792],{"class":504,"line":791},15,[502,793,795],{"emptyLinePlaceholder":794},true,"\n",[502,797,799,802],{"class":504,"line":798},16,[502,800,801],{"class":593},"  mariadb",[502,803,597],{"class":526},[502,805,807,809,811],{"class":504,"line":806},17,[502,808,611],{"class":593},[502,810,614],{"class":526},[502,812,813],{"class":512},"mariadb:11\n",[502,815,817,819],{"class":504,"line":816},18,[502,818,656],{"class":593},[502,820,597],{"class":526},[502,822,824,827,829],{"class":504,"line":823},19,[502,825,826],{"class":593},"      MYSQL_ROOT_PASSWORD",[502,828,614],{"class":526},[502,830,831],{"class":512},"rootpassword\n",[502,833,835,838,840],{"class":504,"line":834},20,[502,836,837],{"class":593},"      MYSQL_DATABASE",[502,839,614],{"class":526},[502,841,842],{"class":512},"laravel\n",[502,844,846,849,851],{"class":504,"line":845},21,[502,847,848],{"class":593},"      MYSQL_USER",[502,850,614],{"class":526},[502,852,842],{"class":512},[502,854,856,859,861],{"class":504,"line":855},22,[502,857,858],{"class":593},"      MYSQL_PASSWORD",[502,860,614],{"class":526},[502,862,842],{"class":512},[502,864,866,868],{"class":504,"line":865},23,[502,867,640],{"class":593},[502,869,597],{"class":526},[502,871,873,875],{"class":504,"line":872},24,[502,874,631],{"class":526},[502,876,877],{"class":512},"db_data:/var/lib/mysql\n",[502,879,881],{"class":504,"line":880},25,[502,882,795],{"emptyLinePlaceholder":794},[502,884,886,889],{"class":504,"line":885},26,[502,887,888],{"class":593},"  redis",[502,890,597],{"class":526},[502,892,894,896,898],{"class":504,"line":893},27,[502,895,611],{"class":593},[502,897,614],{"class":526},[502,899,900],{"class":512},"redis:alpine\n",[502,902,904,907,909],{"class":504,"line":903},28,[502,905,906],{"class":593},"    command",[502,908,614],{"class":526},[502,910,911],{"class":512},"redis-server --appendonly yes\n",[502,913,915,917],{"class":504,"line":914},29,[502,916,640],{"class":593},[502,918,597],{"class":526},[502,920,922,924],{"class":504,"line":921},30,[502,923,631],{"class":526},[502,925,926],{"class":512},"redis_data:/data\n",[502,928,930],{"class":504,"line":929},31,[502,931,795],{"emptyLinePlaceholder":794},[502,933,935,938],{"class":504,"line":934},32,[502,936,937],{"class":593},"volumes",[502,939,597],{"class":526},[502,941,943,946],{"class":504,"line":942},33,[502,944,945],{"class":593},"  db_data",[502,947,597],{"class":526},[502,949,951,954],{"class":504,"line":950},34,[502,952,953],{"class":593},"  redis_data",[502,955,597],{"class":526},[488,957,959],{"id":958},"health-check","Health Check",[230,961,962],{},"The FPM-NGINX variation includes a built-in health check that verifies NGINX is responding:",[964,965,966],"note",{},[230,967,968,969,972,973,237],{},"The health check endpoint is configurable via the ",[339,970,971],{},"HEALTHCHECK_PATH"," environment variable, which defaults to ",[339,974,975],{},"/healthcheck",[230,977,978,979,982],{},"If you are using Laravel, you can use the ",[339,980,981],{},"/up"," route to validate that Laravel is running and healthy.",[984,985],"u-button",{"ariaLabel":986,"className":987,"color":995,"label":986,"size":996,"to":164,"trailing-icon":997,"variant":998},"Learn more about using healthchecks with Laravel",[988,989,990,991,992,993,994],"font-bold","ring","ring-inset","ring-blue-600","text-blue-600","hover:ring-blue-500","hover:text-blue-500","primary","md","i-lucide-arrow-right","outline",[239,1000,1002],{"id":1001},"ssltls-support","SSL/TLS Support",[230,1004,1005],{},"The FPM-NGINX variation includes built-in SSL support with self-signed certificates for development.",[488,1007,1009],{"id":1008},"enabling-ssl","Enabling SSL",[493,1011,1013],{"className":584,"code":1012,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    image: serversideup/php:8.5-fpm-nginx\n    ports:\n      - \"80:8080\"\n      - \"443:8443\"\n    volumes:\n      - ./:/var/www/html\n    environment:\n      SSL_MODE: \"full\"\n",[339,1014,1015,1021,1027,1035,1041,1047,1053,1059,1065,1071],{"__ignoreMap":10},[502,1016,1017,1019],{"class":504,"line":505},[502,1018,594],{"class":593},[502,1020,597],{"class":526},[502,1022,1023,1025],{"class":504,"line":600},[502,1024,603],{"class":593},[502,1026,597],{"class":526},[502,1028,1029,1031,1033],{"class":504,"line":608},[502,1030,611],{"class":593},[502,1032,614],{"class":526},[502,1034,617],{"class":512},[502,1036,1037,1039],{"class":504,"line":620},[502,1038,623],{"class":593},[502,1040,597],{"class":526},[502,1042,1043,1045],{"class":504,"line":628},[502,1044,631],{"class":526},[502,1046,634],{"class":512},[502,1048,1049,1051],{"class":504,"line":637},[502,1050,631],{"class":526},[502,1052,725],{"class":512},[502,1054,1055,1057],{"class":504,"line":645},[502,1056,640],{"class":593},[502,1058,597],{"class":526},[502,1060,1061,1063],{"class":504,"line":653},[502,1062,631],{"class":526},[502,1064,650],{"class":512},[502,1066,1067,1069],{"class":504,"line":661},[502,1068,656],{"class":593},[502,1070,597],{"class":526},[502,1072,1073,1075,1077],{"class":504,"line":747},[502,1074,750],{"class":593},[502,1076,614],{"class":526},[502,1078,755],{"class":512},[230,1080,1081],{},"Available SSL modes:",[247,1083,1084,1090,1096],{},[250,1085,1086,1089],{},[339,1087,1088],{},"off"," - SSL disabled (default)",[250,1091,1092,1095],{},[339,1093,1094],{},"mixed"," - Both HTTP (8080) and HTTPS (8443) enabled",[250,1097,1098,1101],{},[339,1099,1100],{},"full"," - HTTPS only on port 8443",[488,1103,1105],{"id":1104},"custom-ssl-certificates","Custom SSL Certificates",[230,1107,1108],{},"For production, use your own SSL certificates:",[493,1110,1112],{"className":584,"code":1111,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    image: serversideup/php:8.5-fpm-nginx\n    ports:\n      - \"443:8443\"\n    volumes:\n      - ./:/var/www/html\n      - ./certs/server.crt:/etc/ssl/private/self-signed-web.crt:ro\n      - ./certs/server.key:/etc/ssl/private/self-signed-web.key:ro\n    environment:\n      SSL_MODE: \"full\"\n",[339,1113,1114,1120,1126,1134,1140,1146,1152,1158,1165,1172,1178],{"__ignoreMap":10},[502,1115,1116,1118],{"class":504,"line":505},[502,1117,594],{"class":593},[502,1119,597],{"class":526},[502,1121,1122,1124],{"class":504,"line":600},[502,1123,603],{"class":593},[502,1125,597],{"class":526},[502,1127,1128,1130,1132],{"class":504,"line":608},[502,1129,611],{"class":593},[502,1131,614],{"class":526},[502,1133,617],{"class":512},[502,1135,1136,1138],{"class":504,"line":620},[502,1137,623],{"class":593},[502,1139,597],{"class":526},[502,1141,1142,1144],{"class":504,"line":628},[502,1143,631],{"class":526},[502,1145,725],{"class":512},[502,1147,1148,1150],{"class":504,"line":637},[502,1149,640],{"class":593},[502,1151,597],{"class":526},[502,1153,1154,1156],{"class":504,"line":645},[502,1155,631],{"class":526},[502,1157,650],{"class":512},[502,1159,1160,1162],{"class":504,"line":653},[502,1161,631],{"class":526},[502,1163,1164],{"class":512},"./certs/server.crt:/etc/ssl/private/self-signed-web.crt:ro\n",[502,1166,1167,1169],{"class":504,"line":661},[502,1168,631],{"class":526},[502,1170,1171],{"class":512},"./certs/server.key:/etc/ssl/private/self-signed-web.key:ro\n",[502,1173,1174,1176],{"class":504,"line":747},[502,1175,656],{"class":593},[502,1177,597],{"class":526},[502,1179,1180,1182,1184],{"class":504,"line":758},[502,1181,750],{"class":593},[502,1183,614],{"class":526},[502,1185,755],{"class":512},[555,1187,1188],{},[230,1189,1190],{},"For production deployments, consider using a reverse proxy like Traefik or Caddy to handle SSL termination instead of managing certificates in the container.",[239,1192,1194],{"id":1193},"environment-variables","Environment Variables",[230,1196,1197],{},"The FPM-NGINX variation supports extensive customization through environment variables.",[488,1199,1201],{"id":1200},"nginx-configuration","NGINX Configuration",[286,1203,1204,1217],{},[289,1205,1206],{},[292,1207,1208,1211,1214],{},[295,1209,1210],{},"Variable",[295,1212,1213],{},"Default",[295,1215,1216],{},"Description",[302,1218,1219,1233,1248,1263,1278,1293,1308,1328,1352,1373,1388,1403],{},[292,1220,1221,1226,1230],{},[307,1222,1223],{},[339,1224,1225],{},"NGINX_WEBROOT",[307,1227,1228],{},[339,1229,549],{},[307,1231,1232],{},"Document root for NGINX",[292,1234,1235,1240,1245],{},[307,1236,1237],{},[339,1238,1239],{},"NGINX_ACCESS_LOG",[307,1241,1242],{},[339,1243,1244],{},"/dev/stdout",[307,1246,1247],{},"Path to access log file",[292,1249,1250,1255,1260],{},[307,1251,1252],{},[339,1253,1254],{},"NGINX_ERROR_LOG",[307,1256,1257],{},[339,1258,1259],{},"/dev/stderr",[307,1261,1262],{},"Path to error log file",[292,1264,1265,1270,1275],{},[307,1266,1267],{},[339,1268,1269],{},"NGINX_CLIENT_MAX_BODY_SIZE",[307,1271,1272],{},[339,1273,1274],{},"100M",[307,1276,1277],{},"Maximum upload/request body size",[292,1279,1280,1285,1290],{},[307,1281,1282],{},[339,1283,1284],{},"NGINX_FASTCGI_BUFFERS",[307,1286,1287],{},[339,1288,1289],{},"8 8k",[307,1291,1292],{},"Number and size of FastCGI buffers",[292,1294,1295,1300,1305],{},[307,1296,1297],{},[339,1298,1299],{},"NGINX_FASTCGI_BUFFER_SIZE",[307,1301,1302],{},[339,1303,1304],{},"8k",[307,1306,1307],{},"Size of the first FastCGI response buffer",[292,1309,1310,1315,1319],{},[307,1311,1312],{},[339,1313,1314],{},"NGINX_SERVER_TOKENS",[307,1316,1317],{},[339,1318,1088],{},[307,1320,1321,1322,1325,1326,533],{},"Show NGINX version in headers (",[339,1323,1324],{},"on","/",[339,1327,1088],{},[292,1329,1330,1335,1340],{},[307,1331,1332],{},[339,1333,1334],{},"NGINX_LISTEN_IP_PROTOCOL",[307,1336,1337],{},[339,1338,1339],{},"all",[307,1341,1342,1343,1345,1346,1345,1349,533],{},"IP protocol to listen on (",[339,1344,1339],{},", ",[339,1347,1348],{},"ipv4",[339,1350,1351],{},"ipv6",[292,1353,1354,1359,1363],{},[307,1355,1356],{},[339,1357,1358],{},"SSL_MODE",[307,1360,1361],{},[339,1362,1088],{},[307,1364,1365,1366,1345,1368,1370,1371],{},"SSL mode: ",[339,1367,1088],{},[339,1369,1094],{},", or ",[339,1372,1100],{},[292,1374,1375,1380,1385],{},[307,1376,1377],{},[339,1378,1379],{},"SSL_CERTIFICATE_FILE",[307,1381,1382],{},[339,1383,1384],{},"/etc/ssl/private/self-signed-web.crt",[307,1386,1387],{},"Path to SSL certificate",[292,1389,1390,1395,1400],{},[307,1391,1392],{},[339,1393,1394],{},"SSL_PRIVATE_KEY_FILE",[307,1396,1397],{},[339,1398,1399],{},"/etc/ssl/private/self-signed-web.key",[307,1401,1402],{},"Path to SSL private key",[292,1404,1405,1409,1413],{},[307,1406,1407],{},[339,1408,971],{},[307,1410,1411],{},[339,1412,975],{},[307,1414,1415],{},"Path for health check endpoint",[475,1417,1418],{"to":215},[230,1419,1420,1421,237],{},"For a complete list of available environment variables, see the ",[234,1422,1423],{"href":215},"Environment Variable Specification →",[488,1425,1427],{"id":1426},"php-fpm-configuration","PHP-FPM Configuration",[286,1429,1430,1440],{},[289,1431,1432],{},[292,1433,1434,1436,1438],{},[295,1435,1210],{},[295,1437,1213],{},[295,1439,1216],{},[302,1441,1442,1457,1480,1495,1510,1525,1540,1555,1570,1584],{},[292,1443,1444,1449,1454],{},[307,1445,1446],{},[339,1447,1448],{},"PHP_FPM_POOL_NAME",[307,1450,1451],{},[339,1452,1453],{},"www",[307,1455,1456],{},"Name of the PHP-FPM pool",[292,1458,1459,1464,1469],{},[307,1460,1461],{},[339,1462,1463],{},"PHP_FPM_PM_CONTROL",[307,1465,1466],{},[339,1467,1468],{},"ondemand",[307,1470,1471,1472,1345,1475,1345,1478,533],{},"Process manager control (",[339,1473,1474],{},"dynamic",[339,1476,1477],{},"static",[339,1479,1468],{},[292,1481,1482,1487,1492],{},[307,1483,1484],{},[339,1485,1486],{},"PHP_FPM_PM_MAX_CHILDREN",[307,1488,1489],{},[339,1490,1491],{},"20",[307,1493,1494],{},"Maximum number of child processes",[292,1496,1497,1502,1507],{},[307,1498,1499],{},[339,1500,1501],{},"PHP_FPM_PM_START_SERVERS",[307,1503,1504],{},[339,1505,1506],{},"2",[307,1508,1509],{},"Number of child processes created on startup",[292,1511,1512,1517,1522],{},[307,1513,1514],{},[339,1515,1516],{},"PHP_FPM_PM_MIN_SPARE_SERVERS",[307,1518,1519],{},[339,1520,1521],{},"1",[307,1523,1524],{},"Minimum number of idle processes",[292,1526,1527,1532,1537],{},[307,1528,1529],{},[339,1530,1531],{},"PHP_FPM_PM_MAX_SPARE_SERVERS",[307,1533,1534],{},[339,1535,1536],{},"3",[307,1538,1539],{},"Maximum number of idle processes",[292,1541,1542,1547,1552],{},[307,1543,1544],{},[339,1545,1546],{},"PHP_MEMORY_LIMIT",[307,1548,1549],{},[339,1550,1551],{},"256M",[307,1553,1554],{},"Maximum memory a script can use",[292,1556,1557,1562,1567],{},[307,1558,1559],{},[339,1560,1561],{},"PHP_MAX_EXECUTION_TIME",[307,1563,1564],{},[339,1565,1566],{},"99",[307,1568,1569],{},"Maximum time a script can run (seconds)",[292,1571,1572,1577,1581],{},[307,1573,1574],{},[339,1575,1576],{},"PHP_UPLOAD_MAX_FILE_SIZE",[307,1578,1579],{},[339,1580,1274],{},[307,1582,1583],{},"Maximum upload file size",[292,1585,1586,1591,1595],{},[307,1587,1588],{},[339,1589,1590],{},"PHP_POST_MAX_SIZE",[307,1592,1593],{},[339,1594,1274],{},[307,1596,1597],{},"Maximum POST request size",[239,1599,1601],{"id":1600},"performance-tuning","Performance Tuning",[230,1603,1604],{},"Here are some tuning recommendations for different scenarios:",[488,1606,1608],{"id":1607},"for-production-low-memory-environments","For Production (low memory environments)",[964,1610,1611],{"to":143},[230,1612,1613],{},"If you're running an application in production, you'll likely want to package your application inside an image for deployment. Click here to learn more.",[493,1615,1617],{"className":584,"code":1616,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    # You'll likely replace this with your own custom image name\n    image: serversideup/php:8.5-fpm-nginx\n    environment:\n      # Enable OPcache for production\n      PHP_OPCACHE_ENABLE: \"1\"\n      \n      # NGINX Settings (adjust as needed)\n      NGINX_FASTCGI_BUFFERS: \"16 16k\"\n      NGINX_FASTCGI_BUFFER_SIZE: \"32k\"\n",[339,1618,1619,1625,1631,1637,1645,1651,1656,1664,1669,1674,1684],{"__ignoreMap":10},[502,1620,1621,1623],{"class":504,"line":505},[502,1622,594],{"class":593},[502,1624,597],{"class":526},[502,1626,1627,1629],{"class":504,"line":600},[502,1628,603],{"class":593},[502,1630,597],{"class":526},[502,1632,1633],{"class":504,"line":608},[502,1634,1636],{"class":1635},"sAwPA","    # You'll likely replace this with your own custom image name\n",[502,1638,1639,1641,1643],{"class":504,"line":620},[502,1640,611],{"class":593},[502,1642,614],{"class":526},[502,1644,617],{"class":512},[502,1646,1647,1649],{"class":504,"line":628},[502,1648,656],{"class":593},[502,1650,597],{"class":526},[502,1652,1653],{"class":504,"line":637},[502,1654,1655],{"class":1635},"      # Enable OPcache for production\n",[502,1657,1658,1660,1662],{"class":504,"line":645},[502,1659,664],{"class":593},[502,1661,614],{"class":526},[502,1663,669],{"class":512},[502,1665,1666],{"class":504,"line":653},[502,1667,1668],{"class":526},"      \n",[502,1670,1671],{"class":504,"line":661},[502,1672,1673],{"class":1635},"      # NGINX Settings (adjust as needed)\n",[502,1675,1676,1679,1681],{"class":504,"line":747},[502,1677,1678],{"class":593},"      NGINX_FASTCGI_BUFFERS",[502,1680,614],{"class":526},[502,1682,1683],{"class":512},"\"16 16k\"\n",[502,1685,1686,1689,1691],{"class":504,"line":758},[502,1687,1688],{"class":593},"      NGINX_FASTCGI_BUFFER_SIZE",[502,1690,614],{"class":526},[502,1692,1693],{"class":512},"\"32k\"\n",[488,1695,1697],{"id":1696},"for-high-traffic-applications","For High-Traffic Applications",[493,1699,1701],{"className":584,"code":1700,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    # You'll likely replace this with your own custom image name\n    image: serversideup/php:8.5-fpm-nginx\n    environment:\n      # NGINX Settings\n      NGINX_CLIENT_MAX_BODY_SIZE: \"200M\"\n      NGINX_FASTCGI_BUFFERS: \"32 32k\"\n      \n      # PHP-FPM Settings (adjust as needed)\n      PHP_FPM_PM_CONTROL: \"static\"\n      PHP_FPM_PM_MAX_CHILDREN: \"50\"\n      PHP_MEMORY_LIMIT: \"512M\"\n      \n      # OPcache Settings\n      PHP_OPCACHE_ENABLE: \"1\"\n",[339,1702,1703,1709,1715,1719,1727,1733,1738,1748,1757,1761,1766,1776,1786,1796,1800,1805],{"__ignoreMap":10},[502,1704,1705,1707],{"class":504,"line":505},[502,1706,594],{"class":593},[502,1708,597],{"class":526},[502,1710,1711,1713],{"class":504,"line":600},[502,1712,603],{"class":593},[502,1714,597],{"class":526},[502,1716,1717],{"class":504,"line":608},[502,1718,1636],{"class":1635},[502,1720,1721,1723,1725],{"class":504,"line":620},[502,1722,611],{"class":593},[502,1724,614],{"class":526},[502,1726,617],{"class":512},[502,1728,1729,1731],{"class":504,"line":628},[502,1730,656],{"class":593},[502,1732,597],{"class":526},[502,1734,1735],{"class":504,"line":637},[502,1736,1737],{"class":1635},"      # NGINX Settings\n",[502,1739,1740,1743,1745],{"class":504,"line":645},[502,1741,1742],{"class":593},"      NGINX_CLIENT_MAX_BODY_SIZE",[502,1744,614],{"class":526},[502,1746,1747],{"class":512},"\"200M\"\n",[502,1749,1750,1752,1754],{"class":504,"line":653},[502,1751,1678],{"class":593},[502,1753,614],{"class":526},[502,1755,1756],{"class":512},"\"32 32k\"\n",[502,1758,1759],{"class":504,"line":661},[502,1760,1668],{"class":526},[502,1762,1763],{"class":504,"line":747},[502,1764,1765],{"class":1635},"      # PHP-FPM Settings (adjust as needed)\n",[502,1767,1768,1771,1773],{"class":504,"line":758},[502,1769,1770],{"class":593},"      PHP_FPM_PM_CONTROL",[502,1772,614],{"class":526},[502,1774,1775],{"class":512},"\"static\"\n",[502,1777,1778,1781,1783],{"class":504,"line":767},[502,1779,1780],{"class":593},"      PHP_FPM_PM_MAX_CHILDREN",[502,1782,614],{"class":526},[502,1784,1785],{"class":512},"\"50\"\n",[502,1787,1788,1791,1793],{"class":504,"line":775},[502,1789,1790],{"class":593},"      PHP_MEMORY_LIMIT",[502,1792,614],{"class":526},[502,1794,1795],{"class":512},"\"512M\"\n",[502,1797,1798],{"class":504,"line":783},[502,1799,1668],{"class":526},[502,1801,1802],{"class":504,"line":791},[502,1803,1804],{"class":1635},"      # OPcache Settings\n",[502,1806,1807,1809,1811],{"class":504,"line":798},[502,1808,664],{"class":593},[502,1810,614],{"class":526},[502,1812,669],{"class":512},[964,1814,1815],{"to":215},[230,1816,1817,1818,1820],{},"These are just examples. Review the ",[234,1819,214],{"href":215}," for a complete list of available environment variables to match your needs.",[239,1822,1201],{"id":1823},"nginx-configuration-1",[230,1825,1826,1827,1830],{},"Unlike Apache's ",[339,1828,1829],{},".htaccess"," files, NGINX uses configuration files. The FPM-NGINX variation comes pre-configured for Laravel and modern PHP applications.",[488,1832,1834],{"id":1833},"default-configuration","Default Configuration",[230,1836,1837],{},"The default NGINX configuration includes:",[247,1839,1840,1843,1846,1849,1852],{},[250,1841,1842],{},"FastCGI caching headers",[250,1844,1845],{},"Gzip compression",[250,1847,1848],{},"Security headers",[250,1850,1851],{},"Laravel-compatible URL rewriting",[250,1853,1854],{},"Static file optimization",[488,1856,1858],{"id":1857},"custom-nginx-configuration","Custom NGINX Configuration",[230,1860,1861],{},"You can add custom NGINX server configuration by mounting files:",[493,1863,1865],{"className":584,"code":1864,"filename":573,"language":586,"meta":10,"style":10},"services:\n  php:\n    image: serversideup/php:8.5-fpm-nginx\n    ports:\n      - \"80:8080\"\n    volumes:\n      - ./:/var/www/html\n      - ./custom-nginx.conf:/etc/nginx/conf.d/custom.conf:ro\n",[339,1866,1867,1873,1879,1887,1893,1899,1905,1911],{"__ignoreMap":10},[502,1868,1869,1871],{"class":504,"line":505},[502,1870,594],{"class":593},[502,1872,597],{"class":526},[502,1874,1875,1877],{"class":504,"line":600},[502,1876,603],{"class":593},[502,1878,597],{"class":526},[502,1880,1881,1883,1885],{"class":504,"line":608},[502,1882,611],{"class":593},[502,1884,614],{"class":526},[502,1886,617],{"class":512},[502,1888,1889,1891],{"class":504,"line":620},[502,1890,623],{"class":593},[502,1892,597],{"class":526},[502,1894,1895,1897],{"class":504,"line":628},[502,1896,631],{"class":526},[502,1898,634],{"class":512},[502,1900,1901,1903],{"class":504,"line":637},[502,1902,640],{"class":593},[502,1904,597],{"class":526},[502,1906,1907,1909],{"class":504,"line":645},[502,1908,631],{"class":526},[502,1910,650],{"class":512},[502,1912,1913,1915],{"class":504,"line":653},[502,1914,631],{"class":526},[502,1916,1917],{"class":512},"./custom-nginx.conf:/etc/nginx/conf.d/custom.conf:ro\n",[230,1919,1920],{},"Example custom configuration:",[493,1922,1927],{"className":1923,"code":1924,"filename":1925,"language":1926,"meta":10,"style":10},"language-nginx shiki shiki-themes github-dark","# Add custom headers\nadd_header X-Custom-Header \"My Value\" always;\n\n# Custom location block\nlocation /api {\n    try_files $uri $uri/ /index.php?$query_string;\n    \n    # Additional settings for API endpoints\n    client_max_body_size 50M;\n}\n\n# Rate limiting\nlimit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;\nlocation /api/ {\n    limit_req zone=api burst=20 nodelay;\n}\n","custom-nginx.conf","nginx",[339,1928,1929,1934,1949,1953,1958,1969,1977,1982,1987,1998,2003,2007,2012,2020,2029,2037],{"__ignoreMap":10},[502,1930,1931],{"class":504,"line":505},[502,1932,1933],{"class":1635},"# Add custom headers\n",[502,1935,1936,1940,1943,1946],{"class":504,"line":600},[502,1937,1939],{"class":1938},"snl16","add_header ",[502,1941,1942],{"class":526},"X-Custom-Header ",[502,1944,1945],{"class":512},"\"My Value\"",[502,1947,1948],{"class":526}," always;\n",[502,1950,1951],{"class":504,"line":608},[502,1952,795],{"emptyLinePlaceholder":794},[502,1954,1955],{"class":504,"line":620},[502,1956,1957],{"class":1635},"# Custom location block\n",[502,1959,1960,1963,1966],{"class":504,"line":628},[502,1961,1962],{"class":1938},"location",[502,1964,1965],{"class":508}," /api ",[502,1967,1968],{"class":526},"{\n",[502,1970,1971,1974],{"class":504,"line":637},[502,1972,1973],{"class":1938},"    try_files ",[502,1975,1976],{"class":526},"$uri $uri/ /index.php?$query_string;\n",[502,1978,1979],{"class":504,"line":645},[502,1980,1981],{"class":526},"    \n",[502,1983,1984],{"class":504,"line":653},[502,1985,1986],{"class":1635},"    # Additional settings for API endpoints\n",[502,1988,1989,1992,1995],{"class":504,"line":661},[502,1990,1991],{"class":1938},"    client_max_body_size ",[502,1993,1994],{"class":516},"50M",[502,1996,1997],{"class":526},";\n",[502,1999,2000],{"class":504,"line":747},[502,2001,2002],{"class":526},"}\n",[502,2004,2005],{"class":504,"line":758},[502,2006,795],{"emptyLinePlaceholder":794},[502,2008,2009],{"class":504,"line":767},[502,2010,2011],{"class":1635},"# Rate limiting\n",[502,2013,2014,2017],{"class":504,"line":775},[502,2015,2016],{"class":1938},"limit_req_zone ",[502,2018,2019],{"class":526},"$binary_remote_addr zone=api:10m rate=10r/s;\n",[502,2021,2022,2024,2027],{"class":504,"line":783},[502,2023,1962],{"class":1938},[502,2025,2026],{"class":508}," /api/ ",[502,2028,1968],{"class":526},[502,2030,2031,2034],{"class":504,"line":791},[502,2032,2033],{"class":1938},"    limit_req ",[502,2035,2036],{"class":526},"zone=api burst=20 nodelay;\n",[502,2038,2039],{"class":504,"line":798},[502,2040,2002],{"class":526},[239,2042,2044],{"id":2043},"further-customization","Further Customization",[230,2046,2047],{},"If you need to customize the container further, reference the docs below:",[247,2049,2050,2055],{},[250,2051,2052,2054],{},[234,2053,214],{"href":215}," - See which environment variables are available to customize PHP and NGINX settings.",[250,2056,2057,2059],{},[234,2058,218],{"href":219}," - See which commands are available to run inside the container.",[2061,2062,2063],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s4JwU, html code.shiki .s4JwU{--shiki-default:#85E89D}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}",{"title":10,"searchDepth":600,"depth":600,"links":2065},[2066,2067,2068,2074,2078,2082,2086,2090],{"id":241,"depth":600,"text":242},{"id":420,"depth":600,"text":421},{"id":482,"depth":600,"text":483,"children":2069},[2070,2071,2072,2073],{"id":490,"depth":608,"text":491},{"id":552,"depth":608,"text":553},{"id":677,"depth":608,"text":678},{"id":958,"depth":608,"text":959},{"id":1001,"depth":600,"text":1002,"children":2075},[2076,2077],{"id":1008,"depth":608,"text":1009},{"id":1104,"depth":608,"text":1105},{"id":1193,"depth":600,"text":1194,"children":2079},[2080,2081],{"id":1200,"depth":608,"text":1201},{"id":1426,"depth":608,"text":1427},{"id":1600,"depth":600,"text":1601,"children":2083},[2084,2085],{"id":1607,"depth":608,"text":1608},{"id":1696,"depth":608,"text":1697},{"id":1823,"depth":600,"text":1201,"children":2087},[2088,2089],{"id":1833,"depth":608,"text":1834},{"id":1857,"depth":608,"text":1858},{"id":2043,"depth":600,"text":2044},"Learn how to use the FPM-NGINX variation of the serversideup/php image.",null,{},{"title":74,"description":2091},"o2KOKgATUQwLKQ0Ykc-07BZKlFo15mqQa6B-6czgUqc",[2097,2099],{"title":70,"path":71,"stem":72,"description":2098,"children":-1},"Learn how to use the FPM-Apache variation of the serversideup/php image.",{"title":78,"path":79,"stem":80,"description":2100,"children":-1},"Learn how to use the FrankenPHP variation of the serversideup/php image.",1776367053013]