[{"data":1,"prerenderedAt":846},["ShallowReactive",2],{"navigation":3,"/docs/getting-started/upgrade-guide":229,"/docs/getting-started/upgrade-guide-surround":841},[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":40,"body":231,"description":834,"extension":291,"links":835,"meta":836,"navigation":605,"path":41,"redirect":835,"seo":839,"stem":42,"__hash__":840},"docs/docs/1.getting-started/7.upgrade-guide.md",{"type":232,"value":233,"toc":821},"minimark",[234,251,256,266,278,295,299,312,320,325,328,354,373,377,380,448,458,470,474,477,509,515,519,522,525,544,547,553,557,568,571,651,654,703,707,720,758,777,806,810,813,817],[235,236,237],"lead-p",{},[238,239,240,241,245,246,250],"p",{},"This guide explains how ",[242,243,244],"code",{},"serversideup/php"," releases work, how to choose an update strategy that fits your environment, and how to apply your own security patches when you need them. Use it to decide whether to ride our floating tags for automatic weekly updates, or pin to a version-pinned release and take responsibility for your own patching — both are valid choices, and the right one depends on how you balance reproducibility against staying current. For crossing a major version boundary (V3 → V4, V2 → V3), see the ",[247,248,249],"a",{"href":180},"Major Version Migrations"," guide.",[252,253,255],"h2",{"id":254},"subscribe-to-repository-updates","Subscribe to repository updates",[238,257,258,259,265],{},"Regardless if you are choosing to use floating tags or pinned releases, it is highly advised to subscribe to our releases. You can do this through the \"Watch\" button on our ",[247,260,264],{"href":261,"rel":262},"https://github.com/serversideup/docker-php",[263],"nofollow","GitHub",".",[238,267,268],{},[269,270],"img",{"alt":271,"className":272,"src":277},"Watch Repository",[273,274,275,276],"max-w-md","w-full","h-auto","mx-auto","images/docs/watch-repo.png",[279,280],"u-button",{"ariaLabel":281,"className":282,"color":290,"label":281,"size":291,"to":261,"trailing-icon":292,"variant":293,"target":294},"Subscribe to our Repo",[283,284,285,286,287,288,289],"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","_blank",[252,296,298],{"id":297},"how-our-releases-work","How our releases work",[238,300,301,302,305,306,311],{},"All source code merges into the ",[242,303,304],{},"main"," branch. A pre-release is created for beta testing. After internal and community testing, we ",[247,307,310],{"href":308,"rel":309},"https://github.com/serversideup/docker-php/releases",[263],"publish a release on GitHub"," with a detailed changelog. Publishing a release triggers a production build that pushes a new set of tags to Docker Hub and GitHub Packages.",[238,313,314,315,319],{},"Production images are also rebuilt ",[316,317,318],"strong",{},"automatically every Tuesday at 08:00 UTC"," so floating tags pick up the latest upstream PHP and operating system security patches even when we haven't cut a release that week.",[321,322,324],"h3",{"id":323},"floating-tags-vs-version-pinned-tags","Floating tags vs. version-pinned tags",[238,326,327],{},"Every production build pushes two kinds of tags for each image in our matrix:",[329,330,332],"note",{"title":331},"Floating tags get updates automatically",[238,333,334,335,338,339,342,343,346,347,350,351,265],{},"Tags like ",[242,336,337],{},"8.4-fpm-nginx",", ",[242,340,341],{},"8.4-fpm-nginx-bookworm",", and ",[242,344,345],{},"latest"," are ",[316,348,349],{},"overwritten on every release and every weekly rebuild",". If you use a floating tag, you receive the latest security updates simply by running ",[242,352,353],{},"docker pull",[355,356,358],"caution",{"title":357},"Version-pinned tags are immutable",[238,359,360,361,364,365,368,369,372],{},"Tags that include a release suffix like ",[242,362,363],{},"8.4-fpm-nginx-v4.3.5"," are written ",[316,366,367],{},"once"," and never rebuilt. They stay exactly as they were the day they were published. If you pin to a version-pinned tag, you will ",[316,370,371],{},"not"," receive any future security updates from us — you are responsible for applying your own patches in your downstream image.",[252,374,376],{"id":375},"choosing-your-update-strategy","Choosing your update strategy",[238,378,379],{},"There are two valid ways to consume our images, and the right choice depends on how you balance reproducibility against staying current on security patches.",[381,382,383,402],"table",{},[384,385,386],"thead",{},[387,388,389,393,396,399],"tr",{},[390,391,392],"th",{},"Strategy",[390,394,395],{},"Example tag",[390,397,398],{},"Update behavior",[390,400,401],{},"What you are responsible for",[403,404,405,429],"tbody",{},[387,406,407,415,420,426],{},[408,409,410,411],"td",{},"Floating tag ",[412,413,414],"em",{},"(recommended for simple projects)",[408,416,417],{},[242,418,419],{},"serversideup/php:8.4-fpm-nginx",[408,421,422,423,425],{},"Auto-rebuilt weekly and on every release. ",[242,424,353],{}," brings in the latest patch.",[408,427,428],{},"Pulling regularly and testing before promoting to production.",[387,430,431,437,442,445],{},[408,432,433,434],{},"Version-pinned release ",[412,435,436],{},"(recommended for high-volume production environments)",[408,438,439],{},[242,440,441],{},"serversideup/php:8.4-fpm-nginx-v4.3.5",[408,443,444],{},"Never rebuilt. Stays exactly as published.",[408,446,447],{},"All security updates — OS packages, Composer, and any other software inside the image.",[238,449,450,451,454,455,457],{},"For simple deployments, we recommend pinning to a ",[316,452,453],{},"minor PHP version on a floating tag"," like ",[242,456,337],{},". This keeps your PHP version stable for compatibility while still receiving weekly security updates from our rebuilds.",[238,459,460,461,464,465,469],{},"Choose a ",[316,462,463],{},"version-pinned release"," when you need fully reproducible builds — for example, for supply-chain compliance or air-gapped environments — and have a process in place to apply your own updates. See ",[247,466,468],{"href":467},"#applying-your-own-security-updates","Applying your own security updates"," for how to do that.",[252,471,473],{"id":472},"choosing-an-image-version","Choosing an image version",[238,475,476],{},"If you do not select a specific patch version, you will receive automatic PHP patch updates through our floating-tag rebuilds. For example:",[478,479,480,488,495,502],"ul",{},[481,482,483,484,487],"li",{},"Major version (",[242,485,486],{},"8",") gives you the latest 8.x release.",[481,489,490,491,494],{},"Minor version (",[242,492,493],{},"8.4",") gives you the latest 8.4.x release.",[481,496,497,498,501],{},"Patch version (",[242,499,500],{},"8.4.1",") stays at exactly 8.4.1 — but on a floating tag, you still receive OS package updates on the weekly rebuild.",[481,503,504,505,508],{},"Version-pinned (",[242,506,507],{},"8.4.1-fpm-nginx-v4.3.5",") is fully frozen.",[238,510,511,512,514],{},"If you use ",[242,513,345],{},", you will always get the latest stable version of the CLI variation of PHP.",[279,516],{"ariaLabel":517,"className":518,"color":290,"label":517,"size":291,"to":33,"trailing-icon":292,"variant":293},"Learn more about choosing an image",[283,284,285,286,287,288,289],[252,520,468],{"id":521},"applying-your-own-security-updates",[238,523,524],{},"There are two situations where you may need to apply updates yourself rather than waiting for us to publish a new image:",[526,527,528,538],"ol",{},[481,529,530,533,534,537],{},[316,531,532],{},"You're pinned to a version-pinned tag"," (e.g. ",[242,535,536],{},"-v4.3.5",") for reproducibility, and a CVE has been disclosed since that release was cut.",[481,539,540,543],{},[316,541,542],{},"You're on a floating tag",", but a critical patch has landed upstream and you need it before our next weekly rebuild.",[238,545,546],{},"In both cases, you apply updates by extending our image in your own Dockerfile.",[548,549,550],"warning",{},[238,551,552],{},"Any update you apply carries a risk of breaking the application inside the container. Always test before promoting changes to production.",[321,554,556],{"id":555},"update-operating-system-packages","Update operating system packages",[238,558,559,560,563,564,567],{},"Our images run as the unprivileged ",[242,561,562],{},"www-data"," user by default, so you need to switch to ",[242,565,566],{},"root"," before running package managers, then switch back.",[238,569,570],{},"For Debian-based images:",[572,573,578],"pre",{"className":574,"code":575,"filename":576,"language":577,"meta":10,"style":10},"language-dockerfile shiki shiki-themes github-dark","# 8.4.1 is the PHP version, and 4.3.5 is our GitHub release version\nFROM serversideup/php:8.4.1-fpm-nginx-v4.3.5\n\nUSER root\nRUN apt-get update \\\n    && apt-get upgrade -y \\\n    && apt-get clean \\\n    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*\nUSER www-data\n","Dockerfile","dockerfile",[242,579,580,589,600,607,616,625,631,637,643],{"__ignoreMap":10},[581,582,585],"span",{"class":583,"line":584},"line",1,[581,586,588],{"class":587},"sAwPA","# 8.4.1 is the PHP version, and 4.3.5 is our GitHub release version\n",[581,590,592,596],{"class":583,"line":591},2,[581,593,595],{"class":594},"snl16","FROM",[581,597,599],{"class":598},"s95oV"," serversideup/php:8.4.1-fpm-nginx-v4.3.5\n",[581,601,603],{"class":583,"line":602},3,[581,604,606],{"emptyLinePlaceholder":605},true,"\n",[581,608,610,613],{"class":583,"line":609},4,[581,611,612],{"class":594},"USER",[581,614,615],{"class":598}," root\n",[581,617,619,622],{"class":583,"line":618},5,[581,620,621],{"class":594},"RUN",[581,623,624],{"class":598}," apt-get update \\\n",[581,626,628],{"class":583,"line":627},6,[581,629,630],{"class":598},"    && apt-get upgrade -y \\\n",[581,632,634],{"class":583,"line":633},7,[581,635,636],{"class":598},"    && apt-get clean \\\n",[581,638,640],{"class":583,"line":639},8,[581,641,642],{"class":598},"    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*\n",[581,644,646,648],{"class":583,"line":645},9,[581,647,612],{"class":594},[581,649,650],{"class":598}," www-data\n",[238,652,653],{},"For Alpine-based images:",[572,655,657],{"className":574,"code":656,"filename":576,"language":577,"meta":10,"style":10},"# 8.4.1 is the PHP version, and 4.3.5 is our GitHub release version\nFROM serversideup/php:8.4.1-fpm-nginx-alpine-v4.3.5\n\nUSER root\nRUN apk update \\\n    && apk upgrade \\\n    && rm -rf /var/cache/apk/*\nUSER www-data\n",[242,658,659,663,670,674,680,687,692,697],{"__ignoreMap":10},[581,660,661],{"class":583,"line":584},[581,662,588],{"class":587},[581,664,665,667],{"class":583,"line":591},[581,666,595],{"class":594},[581,668,669],{"class":598}," serversideup/php:8.4.1-fpm-nginx-alpine-v4.3.5\n",[581,671,672],{"class":583,"line":602},[581,673,606],{"emptyLinePlaceholder":605},[581,675,676,678],{"class":583,"line":609},[581,677,612],{"class":594},[581,679,615],{"class":598},[581,681,682,684],{"class":583,"line":618},[581,683,621],{"class":594},[581,685,686],{"class":598}," apk update \\\n",[581,688,689],{"class":583,"line":627},[581,690,691],{"class":598},"    && apk upgrade \\\n",[581,693,694],{"class":583,"line":633},[581,695,696],{"class":598},"    && rm -rf /var/cache/apk/*\n",[581,698,699,701],{"class":583,"line":639},[581,700,612],{"class":594},[581,702,650],{"class":598},[321,704,706],{"id":705},"update-composer","Update Composer",[238,708,709,710,719],{},"Composer is installed in our images by copying the binary from the ",[247,711,714,715,718],{"href":712,"rel":713},"https://hub.docker.com/_/composer",[263],"official ",[242,716,717],{},"composer"," Docker image",". You can use the same pattern in your own Dockerfile to pull in a newer Composer release without waiting for us to publish a new image:",[572,721,723],{"className":574,"code":722,"filename":576,"language":577,"meta":10,"style":10},"# 8.4.1 is the PHP version, and 4.3.5 is our GitHub release version\nFROM serversideup/php:8.4.1-cli-v4.3.5\n\n# Pin Composer to a specific patch for reproducibility,\n# or use composer:2 for the latest 2.x release.\nCOPY --from=composer:2.9.8 /usr/bin/composer /usr/bin/composer\n",[242,724,725,729,736,740,745,750],{"__ignoreMap":10},[581,726,727],{"class":583,"line":584},[581,728,588],{"class":587},[581,730,731,733],{"class":583,"line":591},[581,732,595],{"class":594},[581,734,735],{"class":598}," serversideup/php:8.4.1-cli-v4.3.5\n",[581,737,738],{"class":583,"line":602},[581,739,606],{"emptyLinePlaceholder":605},[581,741,742],{"class":583,"line":609},[581,743,744],{"class":587},"# Pin Composer to a specific patch for reproducibility,\n",[581,746,747],{"class":583,"line":618},[581,748,749],{"class":587},"# or use composer:2 for the latest 2.x release.\n",[581,751,752,755],{"class":583,"line":627},[581,753,754],{"class":594},"COPY",[581,756,757],{"class":598}," --from=composer:2.9.8 /usr/bin/composer /usr/bin/composer\n",[238,759,760,761,338,764,338,767,338,770,338,773,776],{},"This works for any of our variations (",[242,762,763],{},"cli",[242,765,766],{},"fpm",[242,768,769],{},"fpm-apache",[242,771,772],{},"fpm-nginx",[242,774,775],{},"frankenphp","). It's the same mechanism we use inside our images, so you're not fighting the base image — you're just upgrading the same file we put there.",[548,778,780],{"title":779},"NGINX, Apache, and other distro-provided software",[238,781,782,783,786,787,790,791,794,795,798,799,801,802,805],{},"Web servers like NGINX and Apache are installed from your image's operating system package repositories. Running ",[242,784,785],{},"apt-get upgrade"," or ",[242,788,789],{},"apk upgrade"," only gets you the version your distribution currently ships. If you need a meaningfully newer NGINX — for example, to pick up a CVE fix that's only in a later distribution release — switch the base OS of our image (e.g. from ",[242,792,793],{},"bookworm"," to ",[242,796,797],{},"trixie",") or upgrade to a newer ",[242,800,244],{}," release. Avoid swapping in upstream ",[242,803,804],{},"nginx.org"," packages, as that can break our integration with PHP-FPM and S6 Overlay.",[252,807,809],{"id":808},"migrating-between-major-versions","Migrating between major versions",[238,811,812],{},"Crossing a major version boundary — like V3 → V4 or V2 → V3 — is a separate concern from day-to-day upgrades. We track breaking changes, new features, and step-by-step checklists for each major release in a dedicated guide.",[279,814],{"ariaLabel":815,"className":816,"color":290,"label":815,"size":291,"to":180,"trailing-icon":292,"variant":293},"Read the major version migration guide",[283,284,285,286,287,288,289],[818,819,820],"style",{},"html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}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 .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);}",{"title":10,"searchDepth":591,"depth":591,"links":822},[823,824,827,828,829,833],{"id":254,"depth":591,"text":255},{"id":297,"depth":591,"text":298,"children":825},[826],{"id":323,"depth":602,"text":324},{"id":375,"depth":591,"text":376},{"id":472,"depth":591,"text":473},{"id":521,"depth":591,"text":468,"children":830},[831,832],{"id":555,"depth":602,"text":556},{"id":705,"depth":602,"text":706},{"id":808,"depth":591,"text":809},"Learn how the serversideup/php Docker images are built and how to upgrade.",null,{"head":837,"layout":7},{"title":838},"Upgrade Guide - Docker PHP - Server Side Up",{"title":40,"description":834},"8pwrpxOJb8C67g81M-zzvj7eF_JuEDzu_GlZilwj3gM",[842,844],{"title":36,"path":37,"stem":38,"description":843,"children":-1},"Learn how to get started with serversideup/php Docker Images.",{"title":44,"path":45,"stem":46,"description":845,"children":-1},"See the latest releases and changes for the PHP Docker Image project.",1789148861621]