PHP 8.3 is the branch many production applications still target when they need modern language features without moving to the newest PHP line. To install PHP 8.3 on Ubuntu with current point releases, use Ondrej Sury’s third-party APT repository at packages.sury.org, then install the versioned php8.3 packages for your web stack.
The Sury repository is not the older Launchpad PPA. It currently publishes PHP 8.3 packages for Ubuntu 26.04, 24.04, and 22.04 in the architecture combinations guarded by the setup block. PHP 8.3 is in security-only support through December 31, 2027, according to PHP’s supported versions table, which makes it a compatibility branch rather than the newest feature branch.
Install PHP 8.3 on Ubuntu
Use this repository path when you specifically need PHP 8.3 across supported Ubuntu LTS releases, or when you need co-installable PHP branches for staged application upgrades. If your application works with the branch Ubuntu already ships for your release, install the default PHP on Ubuntu instead and avoid an extra package source.
Avoid one-off PHP .deb downloads for this workflow. Real PHP deployments usually need matching CLI, FPM, Apache, and extension packages, and APT keeps those packages on the same update path.
Refresh APT and Confirm Ubuntu Details
Start with current package metadata before adding the PHP source.
sudo apt update
These package-management commands need sudo privileges. If your account cannot use sudo yet, add it with Add a New User to Sudoers on Ubuntu before continuing.
Confirm the release codename and package architecture reported by the host.
grep '^VERSION_CODENAME=' /etc/os-release
dpkg --print-architecture
VERSION_CODENAME=resolute amd64
Ubuntu 26.04 uses resolute, Ubuntu 24.04 uses noble, and Ubuntu 22.04 uses jammy. Ubuntu 20.04 left standard security maintenance in May 2025 according to the Ubuntu release cycle, so production hosts still on 20.04 should move to a supported LTS before using this package workflow. Ubuntu supports additional architectures, but Sury’s PHP indexes for this PHP 8.3 workflow currently cover Ubuntu 26.04 on amd64 and arm64, plus Ubuntu 24.04 and 22.04 on amd64, arm64, and armhf.
Add the Sury PHP Repository on Ubuntu
Install the small prerequisite set, then save the Sury signing key as a binary keyring. The curl command in Linux guide explains the -fsSLo flags if you want to adapt this repository download pattern later.
sudo apt install -y ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Create a DEB822 source file for the Sury PHP repository. The guard writes the source only when the host matches a validated Ubuntu release and Sury package-index combination.
. /etc/os-release
ARCH="$(dpkg --print-architecture)"
case "$VERSION_CODENAME:$ARCH" in
resolute:amd64|resolute:arm64|noble:amd64|noble:arm64|noble:armhf|jammy:amd64|jammy:arm64|jammy:armhf)
printf '%s\n' \
'Types: deb' \
'URIs: https://packages.sury.org/php/' \
"Suites: $VERSION_CODENAME" \
'Components: main' \
"Architectures: $ARCH" \
'Signed-By: /usr/share/keyrings/deb.sury.org-php.gpg' | sudo tee /etc/apt/sources.list.d/php.sources > /dev/null
;;
*)
printf 'This PHP 8.3 workflow covers Ubuntu 26.04 on amd64/arm64 and Ubuntu 24.04/22.04 on amd64/arm64/armhf; this host reports %s/%s.\n' "$VERSION_CODENAME" "$ARCH" >&2
false
;;
esac
Refresh APT after adding the source.
sudo apt update
Then confirm that php8.3 comes from Sury.
apt-cache policy php8.3
php8.3:
Installed: (none)
Candidate: 8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983
Version table:
8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983 500
500 https://packages.sury.org/php resolute/main amd64 Packages
The version string and suite change by release. Ubuntu 24.04 output can also show Ubuntu’s own PHP 8.3 package from the default archive, but the Sury entry should be the newer
php8.3candidate when this repository is enabled. Ubuntu 26.04 and 22.04 rely on Sury for this branch.
Compare PHP 8.3 Web Server Setups on Ubuntu
Choose the handler that matches the web server already running on the host. If the server layer is not installed yet, start with Install Apache on Ubuntu or Install Nginx on Ubuntu first.
| Setup | Packages | Best Fit | Trade-off |
|---|---|---|---|
| Apache with mod_php | apache2, libapache2-mod-php8.3, php8.3-cli | Short-lived labs and simple local Apache sites | Apache runs PHP inside its worker model |
| Apache with PHP-FPM | apache2, php8.3-fpm, php8.3-cli | Production Apache sites that need separate PHP worker pools | Requires Apache proxy and FPM configuration |
| Nginx with PHP-FPM | nginx, php8.3-fpm, php8.3-cli | LEMP stacks and high-traffic PHP sites | Nginx needs a FastCGI block pointing at the PHP 8.3 socket |
PHP-FPM is the better default for production because it keeps PHP in a separate service with its own pool settings, logs, and restart path. Use mod_php only when a local Apache-only setup matters more than process isolation.
Install PHP 8.3 with Apache mod_php on Ubuntu
The mod_php path loads PHP as an Apache module. It is convenient for local development, but it is less flexible than PHP-FPM for production sites.
sudo apt install -y apache2 libapache2-mod-php8.3 php8.3-cli
sudo systemctl restart apache2
Confirm the versioned PHP CLI package is available.
php8.3 -r 'printf("PHP %s\n", PHP_VERSION);'
PHP 8.3.31
Install PHP 8.3 with Apache and PHP-FPM on Ubuntu
Apache can pass PHP requests to PHP-FPM through proxy_fcgi. The Sury php8.3-fpm package ships the Apache configuration file at /etc/apache2/conf-available/php8.3-fpm.conf, so libapache2-mod-fcgid is not part of this setup.
sudo apt install -y apache2 php8.3-fpm php8.3-cli
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl enable php8.3-fpm --now
sudo systemctl restart apache2
Check that PHP-FPM is active.
systemctl is-active php8.3-fpm
active
Install PHP 8.3 with Nginx and PHP-FPM on Ubuntu
Nginx does not load PHP as a module. Install PHP-FPM, then point the Nginx server block at the versioned PHP 8.3 socket.
sudo apt install -y nginx php8.3-fpm php8.3-cli
sudo systemctl enable php8.3-fpm --now
Add or update the PHP location block in the Nginx server block that serves your PHP application.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
Test the Nginx syntax before reloading the service.
sudo nginx -t
sudo systemctl reload nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Verify the PHP 8.3 Installation on Ubuntu
Use the versioned binary when scripts or application tooling must run PHP 8.3 specifically. The unversioned php command can point at a different branch on systems that run multiple PHP versions.
php8.3 -r 'printf("PHP %s\n", PHP_VERSION);'
command -v php8.3
apt-cache policy php8.3 | sed -n '1,4p'
PHP 8.3.31 /usr/bin/php8.3 php8.3: Installed: 8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983 Candidate: 8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983
Install PHP 8.3 Extensions on Ubuntu
Most PHP applications need modules beyond the base interpreter. Install only the modules your application uses, especially on small servers where every package adds maintenance surface.
Install Common PHP 8.3 Extensions on Ubuntu
This package set covers common WordPress, Laravel, API-client, database, image-handling, archive, XML, SOAP, and multibyte-text requirements.
sudo apt install -y php8.3-curl php8.3-mysql php8.3-gd php8.3-opcache php8.3-zip php8.3-intl php8.3-bcmath php8.3-readline php8.3-mbstring php8.3-xml php8.3-soap
JSON and Tokenizer support are bundled with PHP 8.3 packages, so do not install nonexistent
php8.3-jsonorphp8.3-tokenizerpackages.php8.3-commonprovides Tokenizer compatibility, and JSON support is built into PHP core.
Restart the PHP handler after installing extensions so web requests load the new modules.
sudo systemctl restart php8.3-fpm
If the host uses Apache with mod_php instead of PHP-FPM, restart Apache with
sudo systemctl restart apache2instead.
Verify a few commonly needed modules and confirm OPcache is loaded.
php8.3 -m | grep -E '^(curl|gd|mbstring|mysqli|xml)$'
php8.3 -m | grep '^Zend OPcache$'
curl gd mbstring mysqli xml Zend OPcache
PHP 8.3 Extension Package Reference
The package names in this table are available in the guarded Sury PHP 8.3 workflow and match the install command above.
| Package | Provides | Typical Use |
|---|---|---|
php8.3-curl | cURL HTTP client bindings | API requests, webhooks, and remote file access |
php8.3-mysql | MySQLi and MySQLnd drivers | MySQL, MariaDB, WordPress with Nginx on Ubuntu, and many PHP frameworks |
php8.3-gd | GD graphics extension | Thumbnails, image resizing, and simple generated images |
php8.3-opcache | Zend OPcache | Bytecode caching for faster PHP request handling |
php8.3-zip | ZIP archive support | Archive uploads, exports, and package extraction |
php8.3-intl | Internationalization functions | Locale-aware dates, numbers, collation, and translations |
php8.3-bcmath | Arbitrary precision math | Financial calculations and payment libraries |
php8.3-mbstring | Multibyte string handling | UTF-8 and multilingual text processing |
php8.3-xml | DOM, SimpleXML, XMLReader, XMLWriter, and related XML modules | Sitemaps, feeds, SOAP dependencies, and document parsing |
php8.3-soap | SOAP client and server support | Legacy API integrations and enterprise services |
Install PHP 8.3 APCu When Available
APCu is useful for application-level caching, but Sury does not publish php8.3-apcu for every supported release and architecture combination. Check for a real candidate before installing it; some missing package names return no policy stanza at all.
candidate="$(apt-cache policy php8.3-apcu | sed -n 's/^[[:space:]]*Candidate: //p')"
if [ -n "$candidate" ] && [ "$candidate" != "(none)" ]; then
printf 'php8.3-apcu candidate: %s\n' "$candidate"
sudo apt install -y php8.3-apcu
else
printf 'php8.3-apcu has no candidate for this Ubuntu release and architecture.\n'
fi
Check Optional PHP 8.3 Extension Candidates on Ubuntu
Older Launchpad-based PHP guides often named packages such as php8.3-redis, php8.3-memcached, php8.3-imagick, php8.3-xdebug, and php8.3-pcov. As of May 12, 2026, direct Sury packages.sury.org PHP indexes did not publish those package names for this Ubuntu PHP 8.3 workflow. Ubuntu 24.04 can still show candidates for some of them from Ubuntu’s own archive because PHP 8.3 is that release’s default PHP branch, so always check the package source before installing optional extensions.
for pkg in php8.3-redis php8.3-memcached php8.3-imagick php8.3-xdebug php8.3-pcov; do
policy="$(apt-cache policy "$pkg" | sed -n '1,8p')"
if [ -n "$policy" ]; then
printf '%s\n' "$policy"
else
printf '%s: no candidate\n' "$pkg"
fi
done
On Ubuntu 26.04 and 22.04 with only the Sury PHP 8.3 source active, those optional package names normally return no candidate.
php8.3-redis: no candidate php8.3-memcached: no candidate php8.3-imagick: no candidate php8.3-xdebug: no candidate php8.3-pcov: no candidate
When a required extension has no candidate, keep the PHP repository setup consistent. Do not add the older Launchpad PPA beside the Sury source just to satisfy one extension name, because mixed PHP sources can create confusing candidates or duplicate-source errors. If Ubuntu 24.04 shows an Ubuntu archive candidate for an optional extension, treat it as an Ubuntu package rather than a Sury package and stage-test it with your application before using it in production. Otherwise, choose an application-supported alternative, such as a Composer client library where the application supports it, or validate a separate extension build before using it in production.
Install PHP 8.3 Development Headers
Install the development package only on systems that compile PHP extensions or build local tooling. It pulls in build dependencies that most runtime servers do not need.
sudo apt install -y php8.3-dev
The package provides headers and tools such as phpize8.3 for extension builds. For project dependency management, install Composer on Ubuntu. For test suites, install PHPUnit on Ubuntu separately instead of treating development headers as a test runner.
Compare PHP Versions on Ubuntu
Ubuntu’s default PHP branch changes by release, while Sury publishes co-installable versioned branches. The default branch is the lowest-maintenance choice when it satisfies your application, and the Sury source is useful when you need a specific PHP branch across releases.
| Ubuntu Release | Default PHP Branch | PHP 8.3 Availability | Install Decision |
|---|---|---|---|
| Ubuntu 26.04 LTS | PHP 8.5 | Sury repository for php8.3 | Use Sury only for applications pinned to PHP 8.3 |
| Ubuntu 24.04 LTS | PHP 8.3 | Ubuntu archive and Sury repository | Use Ubuntu packages for the default branch, or Sury for current Sury point releases and branch consistency |
| Ubuntu 22.04 LTS | PHP 8.1 | Sury repository for php8.3 | Use Sury when the application needs PHP 8.3 features or compatibility |
Compare PHP Branch Choices for Ubuntu
| PHP Branch | Best Fit | Support Position | Trade-off |
|---|---|---|---|
| Default PHP | Servers that prefer Ubuntu archive packages and fewer third-party sources | Tracks the Ubuntu release package lifecycle | Branch differs by Ubuntu release |
| PHP 8.5 | New projects that can use the current PHP feature branch | Active support through December 2027, security support through December 2029 | Newest application compatibility target |
| PHP 8.4 | Applications certified for PHP 8.4 or staged upgrades from PHP 8.1/8.3 | Active support through December 2026, security support through December 2028 | Requires a non-default branch on Ubuntu 24.04 and 22.04 |
| PHP 8.3 | Applications that are stable on PHP 8.3 but not ready for newer branches | Security-only support through December 2027 | Older feature set than PHP 8.4 and PHP 8.5 |
| PHP 8.2 | Legacy applications that have not moved past PHP 8.2 | Security-only support through December 2026 | Narrower future maintenance window |
PHP 8.3 is a compatibility choice at this point. It remains practical for applications that have been tested on 8.3, but new deployments should compare PHP 8.4 and 8.5 before committing to an older branch.
Configure PHP 8.3 Settings on Ubuntu
PHP keeps separate configuration trees for CLI and FPM. Change the file that matches the runtime your application actually uses. For pool sizing, per-site pools, and FPM process-manager tuning, use the deeper Configure PHP-FPM on Ubuntu workflow.
Locate PHP 8.3 Configuration Files
php8.3 --ini | sed -n '1,3p'
Configuration File (php.ini) Path: /etc/php/8.3/cli Loaded Configuration File: /etc/php/8.3/cli/php.ini Scan for additional .ini files in: /etc/php/8.3/cli/conf.d
For PHP-FPM web requests, edit /etc/php/8.3/fpm/php.ini. CLI changes in /etc/php/8.3/cli/php.ini do not change web application behavior.
Adjust Common PHP 8.3 Settings
Edit the FPM configuration file when the application runs through PHP-FPM.
sudo nano /etc/php/8.3/fpm/php.ini
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
max_input_vars = 3000
For public servers, review security-sensitive settings as well. Common production choices include
display_errors = Offandexpose_php = Off, with error details sent to logs instead of browser responses.
Restart PHP-FPM after saving changes, then confirm the values in the FPM configuration file.
sudo systemctl restart php8.3-fpm
grep -E '^(upload_max_filesize|post_max_size|memory_limit)' /etc/php/8.3/fpm/php.ini
upload_max_filesize = 64M post_max_size = 64M memory_limit = 256M
Run PHP 8.3 Alongside Other PHP Versions on Ubuntu
Sury packages PHP branches independently, so PHP 8.3 can coexist with PHP 8.1, PHP 8.4, PHP 8.5, or Ubuntu’s default branch. Keep CLI, Apache, and Nginx switching separate because each layer chooses its PHP version differently.
Switch the PHP CLI Command to PHP 8.3
Use the versioned php8.3 command in scripts when possible. If you need the generic php command to use PHP 8.3 for interactive CLI work, inspect the alternatives entry first.
update-alternatives --display php | sed -n '1,4p'
php - auto mode link best version is /usr/bin/php8.3 link currently points to /usr/bin/php8.3 link php is /usr/bin/php
Set PHP 8.3 as the CLI target only when you understand that this affects shell commands and developer tools that call php.
sudo update-alternatives --set php /usr/bin/php8.3
php --version
Switch Apache or Nginx Sites to PHP 8.3
Apache mod_php sites use Apache modules. Replace php8.2 with the branch currently enabled on the server, such as php8.1, php8.4, or php8.5.
sudo a2dismod php8.2
sudo a2enmod php8.3
sudo systemctl restart apache2
Apache with PHP-FPM uses configuration snippets instead of mod_php modules. Replace php8.2-fpm with the currently enabled FPM branch if the server uses a different one.
sudo a2disconf php8.2-fpm
sudo a2enconf php8.3-fpm
sudo systemctl restart apache2
Nginx sites use the socket path inside the server block.
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
Test and reload Nginx after changing the socket path.
sudo nginx -t
sudo systemctl reload nginx
Update PHP 8.3 on Ubuntu
Sury PHP packages receive APT-managed updates through the source configured earlier. Refresh package metadata, then upgrade the installed PHP 8.3 package set without pulling in new optional extension packages.
sudo apt update
dpkg-query -W -f='${binary:Package}\n' 'php8.3*' 'libapache2-mod-php8.3' 2>/dev/null | xargs -r sudo apt install --only-upgrade
Restart the handler that serves your web requests after a PHP upgrade.
sudo systemctl restart php8.3-fpm
For Apache mod_php, restart Apache instead with
sudo systemctl restart apache2. Nginx normally does not need a restart for PHP package upgrades unless you changed Nginx configuration.
php8.3 --version
Remove PHP 8.3 from Ubuntu
Remove PHP 8.3 Packages
Remove the installed PHP 8.3 branch packages without touching other PHP branches.
dpkg-query -W -f='${binary:Package}\n' 'php8.3*' 'libapache2-mod-php8.3' 2>/dev/null | xargs -r sudo apt remove
APT will list the exact packages before removal. Ubuntu 26.04 uses newer summary-style APT output, while Ubuntu 24.04 and 22.04 can still show the older The following packages will be REMOVED wording.
Use purge only when you also want to remove PHP 8.3 configuration under
/etc/php/8.3/. Back up editedphp.ini, pool, and application-specific configuration files before purging.
dpkg-query -W -f='${binary:Package}\n' 'php8.3*' 'libapache2-mod-php8.3' 2>/dev/null | xargs -r sudo apt purge
Preview orphaned dependencies before removing them.
sudo apt autoremove --dry-run
Continue only when the preview lists packages you intend to remove.
sudo apt autoremove
Remove the Sury PHP Repository from Ubuntu
Remove the Sury source and signing key only when no remaining PHP branch on the host depends on that repository for updates.
sudo rm -f /etc/apt/sources.list.d/php.sources /usr/share/keyrings/deb.sury.org-php.gpg
sudo apt update
apt-cache policy php8.3
After removing Sury on Ubuntu 24.04, apt-cache policy php8.3 can still show Ubuntu’s own PHP 8.3 candidate. On Ubuntu 26.04 and 22.04, the PHP 8.3 candidate normally disappears when no other PHP 8.3 source remains enabled.
Troubleshoot PHP 8.3 on Ubuntu
Fix Duplicate PHP Repository Sources on Ubuntu
APT should have one active PHP package source for this repository family. Check for older Launchpad PPA files and older Sury one-line source files before installing or updating PHP 8.3.
grep -R -E "ondrej/php|packages[.]sury[.]org/php" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
/etc/apt/sources.list.d/php.sources:URIs: https://packages.sury.org/php/ /etc/apt/sources.list.d/php.list:deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ noble main
If both files point to packages.sury.org/php, keep the DEB822 php.sources file created earlier and disable the older one-line file.
if [ -f /etc/apt/sources.list.d/php.list ]; then
sudo mv /etc/apt/sources.list.d/php.list /etc/apt/sources.list.d/php.list.disabled
fi
sudo apt update
If APT still contacts the older Launchpad PHP PPA, remove that source before using the Sury packages.sury.org entry.
if command -v add-apt-repository >/dev/null 2>&1; then
sudo add-apt-repository --remove ppa:ondrej/php -y
else
sudo rm -f /etc/apt/sources.list.d/ondrej-ubuntu-php*.list /etc/apt/sources.list.d/ondrej-ubuntu-php*.sources
fi
sudo apt update
If the old PPA source was edited manually or lives under a different filename, use Remove a PPA from Ubuntu to identify and remove the leftover source safely.
Fix Unable to Locate Package php8.3 or php8.3-fpm
This error usually means APT has not ingested the Sury source, the source file was not written for this release and architecture, or package metadata was not refreshed after setup.
sudo apt update
apt-cache policy php8.3 php8.3-fpm
php8.3:
Installed: (none)
Candidate: 8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983
Version table:
8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983 500
500 https://packages.sury.org/php resolute/main amd64 Packages
php8.3-fpm:
Installed: (none)
Candidate: 8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983
Version table:
8.3.31-1+0~20260507.80+ubuntu26.04~1.gbp5ca983 500
500 https://packages.sury.org/php resolute/main amd64 Packages
If the candidate still shows (none), re-run the source-writing block and check that the host reports one of the validated codename and architecture pairs.
Fix Missing Optional Extension Packages
APT can report no candidate for several extension names that readers may remember from older PPA workflows. Ubuntu 24.04 may instead show Ubuntu archive candidates for some names, so confirm both the candidate and the source before changing repositories.
for pkg in php8.3-redis php8.3-memcached php8.3-imagick php8.3-xdebug php8.3-pcov; do
policy="$(apt-cache policy "$pkg" | sed -n '1,8p')"
if [ -n "$policy" ]; then
printf '%s\n' "$policy"
else
printf '%s: no candidate\n' "$pkg"
fi
done
When no candidate exists, the compact check returns:
php8.3-redis: no candidate php8.3-memcached: no candidate php8.3-imagick: no candidate php8.3-xdebug: no candidate php8.3-pcov: no candidate
Do not solve this by enabling both the old Launchpad PPA and the direct Sury repository. Keep one PHP package source active and choose an application-supported alternative for the missing extension requirement.
Fix PHP-FPM Socket Not Found
A 502 response from Nginx often means PHP-FPM is not running or the Nginx server block points at the wrong socket. For upstream failures outside PHP-FPM, the broader Fix Nginx 502 Bad Gateway guide covers the surrounding Nginx checks.
systemctl is-active php8.3-fpm
ls -l /var/run/php/php8.3-fpm.sock
active srw-rw---- 1 www-data www-data 0 /var/run/php/php8.3-fpm.sock
Start PHP-FPM and reload Nginx after fixing the socket path.
sudo systemctl enable php8.3-fpm --now
sudo nginx -t
sudo systemctl reload nginx
Fix Generic php-fpm Service Name Errors
Ubuntu uses versioned PHP-FPM systemd units. The generic php-fpm.service name is not the unit created by the Sury PHP 8.3 package.
systemctl status php-fpm --no-pager 2>&1 | sed -n '1p'
systemctl status php8.3-fpm --no-pager | sed -n '1p'
Unit php-fpm.service could not be found. php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
Fix the Wrong PHP Version in the CLI
If php --version shows another branch, check the versioned binary first. Application services using PHP-FPM still follow their socket or Apache configuration, not the CLI alternative.
php8.3 --version
php --version
sudo update-alternatives --set php /usr/bin/php8.3
Conclusion
PHP 8.3 can run cleanly on supported Ubuntu LTS releases when the Sury APT source, versioned package names, and web-server handler all point at the same branch. Keep optional extensions candidate-checked, use PHP-FPM for production stacks, and compare PHP 8.4 on Ubuntu or PHP 8.5 on Ubuntu before starting new applications that do not require PHP 8.3 compatibility.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><a href="https://example.com">link</a><blockquote>quote</blockquote>