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