PHP and database versions
A website runs on a PHP series, and its database on a MariaDB or MySQL series. Choosing the two works differently, and that difference is the point of this article: you change a website's PHP series with one click; you change a database ser
Written for: Administrator
A website runs on a PHP series, and its database on a MariaDB or MySQL series. Choosing the two works differently, and that difference is the point of this article: you change a website's PHP series with one click; you change a database series by moving the database to another server. Below, per task: where to click and what to type in a terminal.
Which series CoreCP offers and how long each is supported is in Which versions we offer. Which php.ini settings a customer may change is in The PHP policy of a server.
Which PHP series a server has
A server only offers the PHP series installed on it. Open Servers, pick the server and go to its components tab (/nodes/:node/components). Every series shows its version and a label: Supported, Security fixes only or No more fixes.
- Install this series adds one. It is a task on the server; after a minute it is in the list and every website can choose it.
- Remove this series takes it off again. The server refuses while even one website still runs on it: move the websites first, then remove.
Migrating customers from an old server? Install the series the source uses before the import. A website whose series is missing is skipped by the import and named in its report.
Changing a website's PHP version
- Go to Accounts, open the account and choose the Websites tab (
/accounts/:account/websites). - Click the website's row; its panel slides open.
- Click Set up PHP and pick the new series under Version.
The change is immediate. If the panel installed an application from its catalogue on that website — Joomla, Nextcloud and the others under Applications — it first checks that the application supports the new series, and refuses with the reason if it does not. WordPress is not part of that check; it only asks for PHP 7.4 or newer. Only from the terminal can you overrule that deliberately with --force; the task log says so.
When a PHP series stops receiving fixes
CoreCP never withdraws a series and never moves a website onto another series by itself. A customer with an application of their own that only runs on PHP 7.4 can keep running it, isolated in their own account.
The price is a notice that does not stop:
- the customer and their reseller see a critical PHP support row on the account overview that cannot be dismissed;
- they get a mail on the end date and every ninety days after;
- you get a finding on Components & security (
/components) ninety days before the end date.
The server advisor also has a row about runtime support. You can put it away per series for at most ninety days, with a reason if you write one down — except for a series nobody ships security fixes for any more. That is not a choice but a property of the machine, and the panel does not hide it.
Database series: one series per server
A server runs exactly one database series: MariaDB 11.8 (the default, from Ubuntu 26.04 itself), MariaDB 11.4 or MariaDB 10.11 (both from the CoreCP mirror), or MySQL 8.4 as the engine. You read a server's series in its components list, next to the database server.
MariaDB cannot move a major version up or down in place. That is why a server refuses a series change while it holds a database. The way to another series is a move to a server that already runs it.
A new database server gets the default series. For another one, choose it at installation in the terminal with --db-series (see below); the wizard of Adding a server does not ask.
Moving a database to another series
- Open the account and choose the Placement tab (
/accounts/:account/placement). - Pick another server for the database role. Every server in the list carries its series, and what the move does to the version: upgrade, downgrade or same.
- Confirm. The panel dumps on the source, transfers the dump and loads it on the destination.
- Then check the site and the database on the new server yourself: the move does not count the rows afterwards.
An upgrade (10.11 → 11.8) is what MariaDB supports. A downgrade is allowed but named as one: a dump from a newer series can carry something the older one does not know. Check extra carefully after such a move that everything is there.
A package can require a series. If the customer's package says "MariaDB 10.11", the panel refuses a destination on another series, and a new account on that package is only placed on a server that runs 10.11. To let the customer move anyway, change the package first under Packages (/packages).
From the terminal
On the server:
corectl php list # the series this server has, with their label
corectl versions --available # what can be installed, per series
corectl php add 8.4 # add a series
corectl php set example.com 8.4 # one website's series
corectl php remove 7.4 # refuses while a website uses it
corectl db series list # this server's database series
corectl db engine show # MariaDB or MySQL
corectl setup --profile db-dedicated --db-series 10.11 # a new database server on another series
corectl advisor snooze --subject php:8.2 --days 30 --reason "shop moves in Q4"On the panel, what today's PHP end-of-life round would send, without sending anything:
corecp-panel php-eol round --dry-runSee also
- Which versions we offer — the series, their end dates and what happens when Ubuntu ships a new LTS.
- PHP settings for a website — php.ini and extensions per website.
- Where a website is served — placement, pools and moving between servers.
- Components and security — findings about what runs on your servers.