Your hosting panel offers PHP 8.2, 8.3, 8.4 and 8.5. Which one should you pick? The highest number is easy to spot. The useful choice is the one your application can run reliably, with an update path you can maintain.
A new application and a long-running website deserve different decisions. Starting fresh makes it easier to target a recent branch. An existing site has more dependencies: its framework (the software foundation it is built on), extensions and commercial components. Encoded commercial software may also require a loader, an additional component that lets PHP run the vendor's protected code.
Read the support window before choosing
The official PHP schedule separates active maintenance from security-only support:
| Branch | Active support ends | Security support ends |
|---|---|---|
| 8.2 | 31 December 2024 | 31 December 2026 |
| 8.3 | 31 December 2025 | 31 December 2027 |
| 8.4 | 31 December 2026 | 31 December 2028 |
| 8.5 | 31 December 2027 | 31 December 2029 |
PHP 8.2 is not unsupported simply because newer branches exist, but its remaining window matters when planning a new deployment. Security-only support for 8.3 does not mean it receives no updates. Conversely, choosing a supported branch does not update an old patch package already installed on your host.
A practical way to make the decision
- New project: evaluate 8.5 first if the framework and dependencies support it. Do not force compatibility merely to use a feature you do not need.
- Existing application: choose a tested destination. If 8.4 is validated by the application vendor, a rushed move to 8.5 is not automatically better.
- Commercial or encoded software: check the vendor's runtime, loader and extension requirements before changing the hosting setting.
- A site still on 8.2: install applicable updates and identify migration blockers while there is time to resolve them.
This is a decision process, not a declaration that one branch fits every site. Nor should a newer runtime be sold as a guaranteed performance gain. Measure your own important requests, background jobs and resource use rather than borrowing a benchmark percentage from an unrelated application.
Check the runtime that actually serves the website
php -v reports the executable found by that terminal command. A web request may use a different one. In an access-controlled test location, inspect the web runtime too:
<?php
header('Content-Type: text/plain; charset=utf-8');
echo 'PHP: ', PHP_VERSION, PHP_EOL;
echo 'SAPI: ', PHP_SAPI, PHP_EOL;
echo 'INI: ', php_ini_loaded_file() ?: '(none)', PHP_EOL;
The SAPI value helps distinguish how PHP is being invoked. If the website, shell and scheduled jobs disagree, follow the guide to a PHP version change that does not seem to take effect in cPanel. Changing the domain's runtime is not necessarily changing the shell's PATH.
Ask the host about the whole environment
Can the target branch load the extensions the project needs, such as pdo_mysql, intl, mbstring and curl? Can scheduled tasks use a matching CLI executable? Is there a workable rollback path? Clear answers are more valuable than a long list of selectable versions.
Vendor maintenance can also include security backports without adopting the same version number as an upstream release. Keep the PHP branch, vendor package revision and support agreement separate. The presence of an old branch in a selector is not proof that the application will remain compatible or that every security issue is covered.
Once you have a destination, use the pre-upgrade checklist. Verify important application paths, scheduled work and error logs in the target environment before switching production.
Note: Keep diagnostic files access-controlled and remove them when the check is finished.