[{"data":1,"prerenderedAt":782},["ShallowReactive",2],{"navigation":3,"/docs/guide/migrating-from-official-php-images":229,"/docs/guide/migrating-from-official-php-images-surround":777},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,12,56,85,132,153,186,203,216],{"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,178,182],{"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,"path":180,"stem":181},"Major version migrations","/docs/guide/major-version-migrations","docs/5.guide/5.major-version-migrations",{"title":183,"path":184,"stem":185},"Production performance tuning","/docs/guide/production-performance-tuning","docs/5.guide/6.production-performance-tuning",{"title":187,"icon":55,"defaultOpen":55,"path":188,"stem":189,"children":190,"page":55},"Customization","/docs/customizing-the-image","docs/6.customizing-the-image",[191,195,199],{"title":192,"path":193,"stem":194},"Changing php.ini settings","/docs/customizing-the-image/changing-common-php-settings","docs/6.customizing-the-image/1.changing-common-php-settings",{"title":196,"path":197,"stem":198},"Installing PHP extensions","/docs/customizing-the-image/installing-additional-php-extensions","docs/6.customizing-the-image/2.installing-additional-php-extensions",{"title":200,"path":201,"stem":202},"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":204,"path":205,"stem":206,"children":207,"page":55},"Troubleshooting","/docs/troubleshooting","docs/7.troubleshooting",[208,212],{"title":209,"path":210,"stem":211},"Common Issues","/docs/troubleshooting/common-issues","docs/7.troubleshooting/1.common-issues",{"title":213,"path":214,"stem":215},"Getting Help","/docs/troubleshooting/getting-help","docs/7.troubleshooting/2.getting-help",{"title":217,"path":218,"stem":219,"children":220,"page":55},"Reference","/docs/reference","docs/8.reference",[221,225],{"title":222,"path":223,"stem":224},"Environment Variable Specification","/docs/reference/environment-variable-specification","docs/8.reference/1.environment-variable-specification",{"title":226,"path":227,"stem":228},"Command Reference","/docs/reference/command-reference","docs/8.reference/2.command-reference",{"id":230,"title":159,"body":231,"description":770,"extension":475,"links":771,"meta":772,"navigation":567,"path":160,"redirect":771,"seo":775,"stem":161,"__hash__":776},"docs/docs/5.guide/1.migrating-from-official-php-images.md",{"type":232,"value":233,"toc":765},"minimark",[234,241,246,257,462,478,482,485,735,739,742,761],[235,236,237],"lead-p",{},[238,239,240],"p",{},"Migrating from the official PHP images to serversideup/php is easy because our images are based on the official PHP images. We just give you a \"batteries included\" experience that's ready for production.",[242,243,245],"h2",{"id":244},"key-differences","Key differences",[247,248,249],"warning",{},[238,250,251,252,256],{},"Because our images run as ",[253,254,255],"code",{},"www-data"," by default, you may need to update file permissions for mounted volumes.",[258,259,260,280],"table",{},[261,262,263],"thead",{},[264,265,266,269,275],"tr",{},[267,268],"th",{},[267,270,271],{},[272,273,274],"strong",{},"Official PHP Images",[267,276,277],{},[272,278,279],{},"serversideup/php",[281,282,283,294,305,315,324,342,362,372,381,393,408,417,426,435,444,453],"tbody",{},[264,284,285,289,292],{},[286,287,288],"td",{},"Base Operating System",[286,290,291],{},"Debian, Alpine",[286,293,291],{},[264,295,296,299,302],{},[286,297,298],{},"PHP Compilation",[286,300,301],{},"PHP Source Code",[286,303,304],{},"PHP Source Code (based on official PHP images)",[264,306,307,310,313],{},[286,308,309],{},"Run PHP, pinned to the minor version",[286,311,312],{},"✅",[286,314,312],{},[264,316,317,320,322],{},[286,318,319],{},"Multi-arch support",[286,321,312],{},[286,323,312],{},[264,325,326,329,332],{},[286,327,328],{},"Init System",[286,330,331],{},"Docker CMD",[286,333,334,335],{},"Docker CMD or ",[336,337,341],"a",{"href":338,"rel":339},"https://github.com/just-containers/s6-overlay",[340],"nofollow","S6-Overlay",[264,343,344,347,350],{},[286,345,346],{},"Published Registry",[286,348,349],{},"DockerHub",[286,351,352,356,357],{},[336,353,349],{"href":354,"rel":355},"https://hub.docker.com/r/serversideup/php",[340],", ",[336,358,361],{"href":359,"rel":360},"https://github.com/serversideup/docker-php/pkgs/container/php",[340],"GitHub Packages",[264,363,364,367,370],{},[286,365,366],{},"Unprivileged by default",[286,368,369],{},"❌",[286,371,312],{},[264,373,374,377,379],{},[286,375,376],{},"Variable-first configuration",[286,378,369],{},[286,380,312],{},[264,382,383,389,391],{},[286,384,385,386],{},"Includes ",[253,387,388],{},"composer",[286,390,369],{},[286,392,312],{},[264,394,395,404,406],{},[286,396,385,397],{},[336,398,401],{"href":399,"rel":400},"https://github.com/mlocati/docker-php-extension-installer",[340],[253,402,403],{},"install-php-extensions",[286,405,369],{},[286,407,312],{},[264,409,410,413,415],{},[286,411,412],{},"Production-Ready by default",[286,414,369],{},[286,416,312],{},[264,418,419,422,424],{},[286,420,421],{},"Built-in security optimizations",[286,423,369],{},[286,425,312],{},[264,427,428,431,433],{},[286,429,430],{},"Optimized for Laravel & WordPress",[286,432,369],{},[286,434,312],{},[264,436,437,440,442],{},[286,438,439],{},"NGINX + FPM variation",[286,441,369],{},[286,443,312],{},[264,445,446,449,451],{},[286,447,448],{},"FrankenPHP variation",[286,450,369],{},[286,452,312],{},[264,454,455,458,460],{},[286,456,457],{},"Native health checks",[286,459,369],{},[286,461,312],{},[463,464],"u-button",{"ariaLabel":465,"className":466,"color":474,"label":465,"size":475,"to":33,"trailing-icon":476,"variant":477},"Learn more about choosing an image",[467,468,469,470,471,472,473],"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",[242,479,481],{"id":480},"making-the-change","Making the change",[238,483,484],{},"Making the change will literally take you two seconds.",[486,487,489,494,505,517,530,534,599,603,721,725,728,732],"steps",{"level":488},"4",[490,491,493],"h4",{"id":492},"figure-out-which-image-youd-like-to-use","Figure out which image you'd like to use",[238,495,496,497,500,501,504],{},"Review our ",[336,498,499],{"href":33},"choosing an image"," guide to help you decide which image you'd like to use. Also, make sure our ",[336,502,503],{"href":37},"default configurations"," satisfy your requirements.",[490,506,508,509,512,513,516],{"id":507},"update-your-dockerfile-or-composeyml-file","Update your ",[253,510,511],{},"Dockerfile"," or ",[253,514,515],{},"compose.yml"," file",[518,519,520],"tip",{},[238,521,522,523,526,527],{},"We simply change ",[253,524,525],{},"php:8.5-apache"," to ",[253,528,529],{},"serversideup/php:8.5-fpm-apache",[238,531,532],{},[272,533,511],{},[535,536,537,576],"code-group",{},[538,539,546],"pre",{"className":540,"code":541,"filename":542,"highlights":543,"language":545,"meta":10,"style":10},"language-dockerfile shiki shiki-themes github-dark","FROM php:8.5-apache\n\n# Rest of your Dockerfile...\n","ORIGINAL: Dockerfile",[544],1,"dockerfile",[253,547,548,562,569],{"__ignoreMap":10},[549,550,554,558],"span",{"class":551,"line":544},[552,553],"line","highlight",[549,555,557],{"class":556},"snl16","FROM",[549,559,561],{"class":560},"s95oV"," php:8.5-apache\n",[549,563,565],{"class":552,"line":564},2,[549,566,568],{"emptyLinePlaceholder":567},true,"\n",[549,570,572],{"class":552,"line":571},3,[549,573,575],{"class":574},"sAwPA","# Rest of your Dockerfile...\n",[538,577,581],{"className":540,"code":578,"filename":579,"highlights":580,"language":545,"meta":10,"style":10},"FROM serversideup/php:8.5-fpm-apache\n\n# Rest of your Dockerfile...\n","UPDATED: Dockerfile",[544],[253,582,583,591,595],{"__ignoreMap":10},[549,584,586,588],{"class":585,"line":544},[552,553],[549,587,557],{"class":556},[549,589,590],{"class":560}," serversideup/php:8.5-fpm-apache\n",[549,592,593],{"class":552,"line":564},[549,594,568],{"emptyLinePlaceholder":567},[549,596,597],{"class":552,"line":571},[549,598,575],{"class":574},[238,600,601],{},[272,602,515],{},[535,604,605,670],{},[538,606,614],{"className":607,"code":608,"filename":609,"highlights":610,"language":613,"meta":10,"style":10},"language-yml shiki shiki-themes github-dark","services:\n  php:\n    image: php:8.5-apache\n    ports:\n      - 80:80\n      - 443:443\n","ORIGINAL: compose.yml",[571,611,612],5,6,"yml",[253,615,616,625,632,645,653,662],{"__ignoreMap":10},[549,617,618,622],{"class":552,"line":544},[549,619,621],{"class":620},"s4JwU","services",[549,623,624],{"class":560},":\n",[549,626,627,630],{"class":552,"line":564},[549,628,629],{"class":620},"  php",[549,631,624],{"class":560},[549,633,635,638,641],{"class":634,"line":571},[552,553],[549,636,637],{"class":620},"    image",[549,639,640],{"class":560},": ",[549,642,644],{"class":643},"sU2Wk","php:8.5-apache\n",[549,646,648,651],{"class":552,"line":647},4,[549,649,650],{"class":620},"    ports",[549,652,624],{"class":560},[549,654,656,659],{"class":655,"line":611},[552,553],[549,657,658],{"class":560},"      - ",[549,660,661],{"class":643},"80:80\n",[549,663,665,667],{"class":664,"line":612},[552,553],[549,666,658],{"class":560},[549,668,669],{"class":643},"443:443\n",[538,671,675],{"className":607,"code":672,"filename":673,"highlights":674,"language":613,"meta":10,"style":10},"services:\n  php:\n    image: serversideup/php:8.5-fpm-apache\n    ports:\n      - 80:8080\n      - 443:8443\n","UPDATED: compose.yml",[571,611,612],[253,676,677,683,689,699,705,713],{"__ignoreMap":10},[549,678,679,681],{"class":552,"line":544},[549,680,621],{"class":620},[549,682,624],{"class":560},[549,684,685,687],{"class":552,"line":564},[549,686,629],{"class":620},[549,688,624],{"class":560},[549,690,692,694,696],{"class":691,"line":571},[552,553],[549,693,637],{"class":620},[549,695,640],{"class":560},[549,697,698],{"class":643},"serversideup/php:8.5-fpm-apache\n",[549,700,701,703],{"class":552,"line":647},[549,702,650],{"class":620},[549,704,624],{"class":560},[549,706,708,710],{"class":707,"line":611},[552,553],[549,709,658],{"class":560},[549,711,712],{"class":643},"80:8080\n",[549,714,716,718],{"class":715,"line":612},[552,553],[549,717,658],{"class":560},[549,719,720],{"class":643},"443:8443\n",[490,722,724],{"id":723},"test-your-application","Test your application",[238,726,727],{},"Make sure to test your application to ensure it's working as expected.",[490,729,731],{"id":730},"deploy-and-enjoy","Deploy and enjoy!",[238,733,734],{},"Making the change is that simple.",[242,736,738],{"id":737},"related-resources","Related resources",[238,740,741],{},"If you need to customize the base image, review our guides below:",[743,744,745,751,756],"ul",{},[746,747,748],"li",{},[336,749,750],{"href":193},"Changing common PHP settings",[746,752,753],{},[336,754,755],{"href":197},"Installing additional PHP extensions",[746,757,758],{},[336,759,760],{"href":201},"Startup scripts",[762,763,764],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}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 .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}",{"title":10,"searchDepth":564,"depth":564,"links":766},[767,768,769],{"id":244,"depth":564,"text":245},{"id":480,"depth":564,"text":481},{"id":737,"depth":564,"text":738},"Learn how easy it is to move from the official PHP docker images to serversideup/php.",null,{"head":773,"layout":7},{"title":774},"Migrating from official PHP Docker images - Docker PHP - Server Side Up",{"title":159,"description":770},"55KI6zIFVQe9Nz8aOWa5tX0voj62y85utZ2989cG5e8",[778,780],{"title":150,"path":151,"stem":152,"description":779,"children":-1},"Learn how to choose the right hosting provider for your containerized PHP application.",{"title":163,"path":164,"stem":165,"description":781,"children":-1},"Stop guessing if Laravel is up and running. Our health checks have you covered to ensure Laravel is running properly. It supports HTTP checks, Laravel Horizon, Reverb, Scheduler, and Queue.",1789148873874]