Which versions of PHP are still within the security repair window, and which version should the site target?
What are the versions of PHP still within the security fix window? According to the official support cycle page, there are four branches: 8.2, 8.3, 8.4, 8.5;Each branch has two years of full support starting from the initial stable version, followed by two more years of handling only critical security issues.The site should list which version as the target, depending on when this timeline breaks: as soon as the only security fix window for a branch expires, vulnerabilities exposed after that will no longer have official patches, and PHP sites running on it will continue to accumulate risks.
How to calculate the support cycle
The rule itself is very simple: after the initial stable version is released, it enters a two-year active support period, where bugs and security issues are fixed in regular version updates; after two years, it transitions to a two-year only security repair period, dealing only with critical security issues; once this line is completed, the branch will be out of the support window. For site operations, what truly needs to be watched is the second time point, that is, the deadline for only security repair of the branch.
Which branch is currently in which window
The table is organized according to the criteria provided by the official page in October 2026 (the end of active support and security support are both the end of the corresponding year):
| Branch | End of active support | Only security fixes are available | Meaning on the site side |
|---|---|---|---|
| 8.2 | Over | End of 2026 | The last follow-up of the year, no longer guaranteed thereafter |
| 8.3 | Over | End of 2027 | Only key security fixes are accepted, no longer handle functional issues |
| 8.4 | End of 2026 | End of 2028 | Can still be placed in the active update window |
| 8.5 | End of 2027 | By the end of 2029 | The default candidate for a new site |
When determining the target version, you can proceed in three steps: first, see how long it has been since the security fix deadline of the currently running branch; second, look at the switchable branches provided by the host or image; finally, confirm how long it takes to verify the compatibility of the application and extensions on the new branch. For branches with a window of less than one year, it should directly enter the migration plan instead of waiting for an alert.
Why is the deadline a security event for the site
Content management sites treat the end-of-life date of the runtime version as an item on the risk calendar because CMS handles external controllable inputs: forms, messages, uploads, and query parameters all go through the language runtime. After the runtime falls out of support, the time that the same vulnerability can be exploited in the ecosystem will be significantly extended, and there will be no patches available on the site side.
It is necessary to check three types of environments simultaneously: the language runtime itself, the web server and reverse proxy, and the hosting environment of the program (panel or container image). If any of these fall out of the support window, the risk will fall on the site.
Which dependencies can be reduced by changing the runtime model
If you don't want to track the patch calendar of the language runtime for a long time, you can remove the runtime from the list of dependencies. AnQiCMS is developed based on GoLang, the technology stack is GoLang plus Iris framework and GORM data access layer, the delivery form is a single compiled program, which does not require a language interpreter to reside on the server; the official memory usage is about 80% lower than that of PHP class CMS, and the server specifications can therefore be reduced.
The environment on the deployment side still needs to be maintained, but the tracking object becomes an image and port: The official provides the Docker image anqicms/anqicms, and also supports one-click deployment with Baota panel or aaPanel, and LNMP command deployment, the service listens to port 8001 by default. The tracking needs to change from 'PHP branch lifecycle' to 'image version update', with a smaller scope and clearer actions.
Common questions
What should you do for sites still on the 8.1 or earlier branch?These branches have already fallen out of the support window, and should be prioritized to migrate to versions still in the security support period before discussing feature upgrades.
Will upgrading PHP affect the CMS?Yes, it is necessary to verify the extension and script behavior in the test environment; the migration window should be arranged according to the low traffic of the site and a backup point should be left first.
Can I completely ignore patches if I do not choose the PHP technology stack?No, the operating system, web server, and container images still need to be followed up on, but only the language runtime layer is missing.