Applicable to:
- Plesk for Linux
How to perform a dist-upgrade?
Warning: The dist-upgrade procedure is complex, hence you may want to consider migrating instead as explained in Plesk Migration and Transfer Guide.
Warning: The dist-upgrade procedure can not be performed in a containerized environment. If the environment is not known, contact the server provider in order to know if the server or the environment is a container
Warning: For servers running Plesk versions below 18.0.45, always use Plesk-Archive repository in sources.list file by replacing "autoinstall.plesk.com" with "autoinstall-archives.plesk.com" in the following instructions
The dist-upgrade procedure is supported for the following Plesk versions and operating systems:
Supported for | Plesk version |
---|---|
Ubuntu 20 > Ubuntu 22 | Plesk Obsidian 18.0.44 and above |
Ubuntu 20 on ARM > Ubuntu 22 on ARM | Plesk Obsidian 18.0.46 and above |
Ubuntu 18 > Ubuntu 20 | Plesk Obsidian 18.0.33 and above |
Ubuntu 16 > Ubuntu 18 | Plesk Obsidian 18.0.30 and above |
Debian 10 > Debian 11 | Plesk Obsidian 18.0.42 and above |
Debian 9 > Debian 10 | Plesk Obsidian 18.0.30 and above |
-
Install the previous version of OS on a test server or inside a virtual machine. Upgrade it using the instructions provided in the documentation by the OS vendor:
-
Solve all potential problems and make sure Plesk is working after the upgrade before proceeding with the upgrade on the production server.
If you want or need Plesk to assist on this task or to do it on your behalf, place a request to Plesk Professional Services team here: Plesk Professional Services: Administrative Services
Ubuntu distributions
Warning: The dist-upgrade
process from Ubuntu 20.04 to Ubuntu 22.04 on x64 CPUs is supported by Plesk Obsidian 18.0.44 version. The dist-upgrade
process from Ubuntu 20.04 to Ubuntu 22.04 on ARM CPUs is supported by Plesk Obsidian 18.0.46 version.
Preparing server for upgrade
-
Create a full server backup. Before the upgrade, make a full server backup (which includes a full backup of all the databases). Also, notify the customers about upcoming downtime of one to three hours
-
Connect to the server via SSH
-
Change to root user by using the following command:
# sudo su -
-
Enable enhanced security mode:
# plesk bin passwords --encrypt
-
Uninstall the unsupported components mailman, ruby and PHP handlers below version 7.3:
# plesk installer remove --components php7.1 php7.2 php7.3 mailman gems-pre ruby
# apt-get purge $(dpkg -l | egrep "(plesk-ruby2|plesk-rbenv)" | awk '{print $2}')
-
Remove packages which were installed by dependencies but are not required:
# apt-get autoremove
-
Execute the command below to be sure that system is up-to-date:
# plesk sbin pum --update
-
Run the command to make Plesk up-to-date:
# plesk installer update
-
Install aptitude:
# apt-get install aptitude
-
Remove repository lists that are related to Plesk:
# rm -f /etc/apt/sources.list.d/plesk*.list
Performing the dist-upgrade
-
Replace focal sources lists with jammy sources lists in
/etc/apt/sources.list
and/etc/apt/sources.list.d/*.list
:# sed -i "s/focal/jammy/g" /etc/apt/sources.list
Note: below is the example for
/etc/apt/sources.list
file:CONFIG_TEXT: deb http://archive.ubuntu.com/ubuntu jammy main restricted universe
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe
deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse -
Make installer to create Plesk sources list for Ubuntu 22.04:
# plesk installer --override-os-version 22.04 --check-updates --skip-cleanup
-
Change bind-address in the
/etc/mysql/my.cnf
to accept IPv4 connections (From 10.6.0::
refers to IPv6 stictly):CONFIG_TEXT: bind-address = ::ffff:127.0.0.1
to
CONFIG_TEXT: bind-address = 127.0.0.1
-
Add the string below into the
/etc/mysql/my.cnf
file under [mysqld] section:CONFIG_TEXT: innodb_fast_shutdown=0
-
Restart MariaDB/MySQL service to apply the changes:
# systemctl restart mariadb || systemctl restart mysql
-
Install modern kernel, libc6, python3, mariadb packages with the command:
Note: mysql-community-server has not been published for Ubuntu 22.04 Jammy yet.
-
For MariaDB:
# aptitude install base-files linux-generic libc6 python3 mariadb-server-10.6
-
For MySQL:
# aptitude install base-files linux-generic libc6 python3 mysql-server-8.0
Note: Make sure that after execution of the command above, Plesk-related packages are not marked for removal. Normally if mariadb server is installed the list should be as below:
CONFIG_TEXT: Remove the following packages:
1. galera-3 [25.3.29-1 (now)]
2. mariadb-client-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)]
3. mariadb-client-core-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)]
4. mariadb-server-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)]
5. mariadb-server-core-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)]
6. python3-systemd [234-3build2 (now)]
7. python3-twisted-bin [18.9.0-11ubuntu0.20.04.2 (now)Note: When a request to overwrite SSHd configuration appears, select to leave the configuration as it is.
Note: Select to allow automatic restart for services
-
-
Remove line below from the
/etc/mysql/my.cnf
file:CONFIG_TEXT: innodb_fast_shutdown=0
-
Reboot the server:
# reboot
-
Wait some time for the server to reboot, then connect to the server via SSH
-
Switch to root user:
# sudo su -
-
Execute the command below to get Plesk build for Ubuntu 22.04:
# plesk installer update --skip-cleanup
-
Update the Plesk extensions:
# plesk bin extension -l | egrep '(panel-migrator|site-import|docker|grafana)'| awk {'print $1'} | xargs -i plesk bin extension -i {}
-
Complete distupgrade process:
# apt-get dist-upgrade
Note: leave the configurations for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.
-
Optional step: Remove unused packages:
# apt-get autoremove
-
Optional step: Purge the configuration files of the removed packages:
# apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`
-
Restore the Plesk packages configuration:
# plesk installer update
-
If Plesk Ruby extension is required install the required packages with the following command:
# apt install bundler ruby-dev
-
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Reboot the server
-
Check that Plesk and all its services are working
Warning: The dist-upgrade
process from Ubuntu 18.04 to Ubuntu 20.04 is supported by Plesk Obsidian 18.0.33 version.
Warning: The dist-upgrade
process from Ubuntu 18.04 to Ubuntu 20.04 is supported with MariaDB scenario only.
Preparing server for upgrade
-
Create a full server backup. Before the upgrade, make a full server backup (which includes a full backup of all the databases). Also, notify the customers about upcoming downtime of one to three hours.
-
Remote management module must be installed on the server (This is because, in some tests, sshd service could not be started during the process)
-
Connect and perform the process connected as root or by using the
# su -
or# sudo su -
command. -
Uninstall unsupported components like PHP below 7.0, Watchdog (Ubuntu users only)... It can be done through Plesk installer.
Note: More information can be found here: Software Requirements for Plesk Obsidian
-
Temporary install msmtp component instead of Postfix. It can be done through Plesk installer or by using the command:
# plesk installer add --components msmtp --source http://autoinstall-archives.plesk.com
Note: this action will remove Postfix, Dovecot, SpamAssassin and Mailman components
-
Add to the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
the stringinnodb_fast_shutdown=0
in the [mysqld] section. In case MySQL is installed, add the string into/etc/mysql/my.cnf
in the [mysqld] section. -
Restart the DB server to apply changes:
# systemctl restart mariadb || systemctl restart mysql || systemctl restart mysqld
-
Make sure that
update-manager-core
package is installed:# apt-get install update-manager-core
-
Update the current system to the latest available version:
# apt-get update && apt-get upgrade
-
Remove all plesk-related repos from /etc/apt/sources.list.d/. For example, you can archive them by removing originals using the next command:
# tar -cvf ~apt-sources.tar /etc/apt/sources.list.d/plesk* --remove-files
-
Stop grafana service:
# systemctl stop grafana-server.service
Performing the dist-upgrade
-
Update the file sources.list and configure the repository for the OS release that is going to upgrade to:
# cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe
deb http://autoinstall.plesk.com/PSA_18.0.37/ focal all
deb http://autoinstall.plesk.com/pool/PHP_7.1.33_96 focal all
deb http://autoinstall.plesk.com/pool/PHP_7.2.34_150 focal all
deb http://autoinstall.plesk.com/PHP73_17/ focal all
deb http://autoinstall.plesk.com/PHP74_17/ focal all
deb http://autoinstall.plesk.com/PHP80_17/ focal all
deb http://autoinstall.plesk.com/grafana/deb stable main
deb [arch=amd64] http://autoinstall.plesk.com/PMM_0.1.11 focal all
deb [arch=amd64] http://autoinstall.plesk.com/NODE_0.0.2 all all
deb [arch=amd64] http://autoinstall.plesk.com/RUBY_0.0.2 focal allNote: The example above is for an installed version of Plesk Obsidian 18.0.37. The correct link for each installed version must be modified accordingly. "
sources.list
" should be replaced with the contents presented above in the article. Only the highlighted line is to be updated/edited.For example:
http://autoinstall.plesk.com/PSA_x.y.z/
Whereas the versionx.y.z
is the current Plesk installed version, which can be found in the output of the command:# plesk -v
-
Update the repositories:
# apt-get update
-
Upgrade the kernel:
# apt-get install linux-generic
-
Update MariaDB to the next major version provided by the vendor:
# apt-get install mariadb-server-10.3
In case MySQL installed, update it to the next major version provided by the vendor
# apt-get install mysql-server-5.7
Warning: MariaDB/MySQL will not start until the next reboot is performed.
-
In the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
remove the stringinnodb_fast_shutdown=0
in the [mysqld] section, added at the beginning of this process. In case MySQL is installed, remove the string from/etc/mysql/my.cnf
in the [mysqld] section. -
Install udev package:
# apt-get install udev
Warning: The udev package installation may fail on Ubuntu systems which may be needed to be solved manually. If that is the case, the following should be checked and applied:
-
At line 26 in the
/lib/systemd/system/systemd-udevd.service
file, the following string should be changed: -
From:
CONFIG_TEXT: ExecReload=udevadm control --reload --timeout 0
-
To:
CONFIG_TEXT: ExecReload=/bin/udevadm control --reload --timeout 0
-
And execute the following command:
# apt-get -f install
-
-
Install Systemd package:
# apt-get install systemd
-
Reboot the server to the new kernel:
# shutdown -r now
Note: This will help to avoid problems with services that already loaded old libc6/libstdc libraries
-
Remove packages that were installed by dependencies and not needed anymore:
# apt-get autoremove
-
Upgrade packages:
# apt-get upgrade
Note: If prompted, choose "latest" for LXD if this is unknown.
If LXD installation fails with error like below:
Note: When prompted, you should keep the previous version of
Spamassassin
configuration file. -
Remove packages that were installed by dependencies and not needed anymore:
# apt-get autoremove
-
Execute the dist-upgrade command:
# apt-get dist-upgrade
Note: At this point, plesk-mail-pc-driver, postfix, drweb, kav packages will be removed because there is already a vendor's Postfix that will be used in Ubuntu 20 (which version is lower that the psa-postfix installed in Ubuntu 18)
-
Remove packages that were installed by dependencies and not needed anymore:
# apt-get autoremove
-
Update Plesk to the next available version finishing the dist-upgrade process:
# plesk installer update
-
Fix the Bind DNS server defaults file:
# cp /etc/default/bind9 /etc/default/named
-
Check that all Plesk components(Dovecot, SpamAssassin, Mailman) are installed as needed. e.g. In case there were components uninstalled at the dist upgrade step, select and re-install them again through the plesk installer along with Postfix which was replaced by msmtp at the beginning:
# plesk installer
-
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Reboot the server:
# shutdown -r now
-
Check that Plesk and all its services are working.
Note: Ubuntu 16 by default has MySQL 5.7 installed, as a result of dist-upgrade it will remain intact and won't be replaced with MariaDB.
Preparing server for upgrade
-
Create a full server backup. Before the upgrade, make a full server backup (which includes a full backup of all the databases). Also, notify the customers about upcoming downtime of one to three hours.
-
Remote management module must be installed on the server so that it can still be managed if sshd service cannot be started. Like KVM over IP or IPMI. (This is because, in some tests, sshd service could not be started during the process)
-
Update the current system to the latest available versions:
# apt-get update && apt-get upgrade
-
Add to the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
the stringinnodb_fast_shutdown=0
in the [mysqld] section. In case MySQL is installed, add the string into/etc/mysql/my.cnf
in the [mysqld] section. -
Restart the DB server to apply changes:
# systemctl restart mariadb || systemctl restart mysql || systemctl restart mysqld
Warning: If removal of packages in the following two steps stops with message
E: Unable to locate package package-name
, remove the package-name from the command and run it again. -
Remove packages that are no longer supported:
# apt-get remove samba-common samba-libs samba-vfs-modules
-
Remove Plesk components that are no longer supported or can break the upgrade:
Note: Only the bold marked components and packages may be installed back later on this guide
# apt-get remove psa-watchdog plesk-php52* plesk-php53* plesk-php54* plesk-php55* plesk-php56* plesk-php70* psa-spamassassin docker*
Performing the dist-upgrade
-
Update source.list file and configure the repository for the OS release that is going to upgrade to, in this case to bionic
# cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe
deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb http://autoinstall-archives.plesk.com/PSA_18.0.37/ bionic all
deb http://autoinstall-archives.plesk.com/PHP70_17/ bionic all
deb http://autoinstall-archives.plesk.com/PHP71_17/ bionic all
deb http://autoinstall-archives.plesk.com/PHP72_17/ bionic all
deb http://autoinstall-archives.plesk.com/PHP73_17/ bionic all
deb http://autoinstall-archives.plesk.com/PHP74_17/ bionic all
deb http://autoinstall-archives.plesk.com/SITEBUILDER_17.8.12/ all all
deb [arch=amd64] http://autoinstall.plesk.com/PMM_0.1.11/ all all
deb [arch=amd64] http://autoinstall.plesk.com/NODE_0.0.2/ all all
deb http://autoinstall.plesk.com/grafana/deb stable main
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stableNote: The example above is for an installed version of Plesk Obsidian 18.0.37. The correct link for each installed version must be modified accordingly. "
sources.list
" should be replaced with the contents presented above in the article. Only the highlighted line is to be updated/edited.For example:
http://autoinstall.plesk.com/PSA_x.y.z/
Whereas the versionx.y.z
is the current Plesk installed version, which can be found in the output of the command:# plesk -v
-
Update the repositories:
# apt-get update
-
Upgrade the kernel:
# apt-get install linux-generic
-
Remove the string
innodb_fast_shutdown=0
in the [mysqld] section, added in step 4. of section "Preparing server for upgrade" above. -
Reboot the server
# reboot
-
Install packages dpkg and apt
# apt-get install dpkg apt
-
Upgrade all possible packages:
# apt-get upgrade
-
When prompted, choose to keep local version config installed for:
-
/opt/psa/etc/apparmor.d/usr.lib.dovecot.dovecot-lda
-
/etc/awstats/awstats.conf
-
-
Execute the dist-upgrade process:
# apt-get dist-upgrade
-
When prompted, keep the previous version of
/etc/apache2/apache2.conf
Warning: after this operation, apache2 may not start due to problems with http_proxy module.
-
Disable it by removing file
/etc/apache2/mods-enabled/proxy_http.load
# rm /etc/apache2/mods-enabled/proxy_http.load
-
Start apache:
# systemctl start apache2.service
-
-
When prompted, keep the local version currently installed for the config files below:
-
/usr/share/rsyslog/50-default.conf
-
/etc/cron.daily/spamassassin
-
/etc/apache2/apache2.conf
-
/etc/pam.d/common-*
-
/etc/rsyslog.d/50-default.conf
-
/usr/share/psa-roundcube/config/config.inc.php
-
/etc/pam.d/common-*
-
-
It is safe to install the maintainer's version for the configuration files below when prompted:
-
/etc/apparmor.d/*
-
/etc/ssh/sshd_config
-
-
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Reboot the server.
# reboot
-
Check that Plesk and all its services are working.
Debian distributions
Warning: dist-upgrade
from Debian 9 to Debian 10 is supported by Plesk Obsidian 18.0.30 version.
Warning: The dist-upgrade
process from Debian 9 to Debian 10 is supported with MariaDB scenario only.
Warning: Due to mail server being temporarily uninstalled for the time of upgrade, some settings, i.e. maximum message size, can be reset.
-
Create a full server backup. Before the upgrade, make a full server backup. Also, notify the customers about upcoming downtime of one to three hours.
-
Connect and perform the process connected as root or by using the
# su -
or# sudo su -
command. -
Uninstall unsupported components such as Docker and PHP below version 7.0 with Plesk installer.
Note: More information can be found here: Software Requirements for Plesk Obsidian
-
Temporary install msmtp component instead of Postfix. It can be done through Plesk installer or by using the command:
# plesk installer add --components msmtp --source http://autoinstall-archives.plesk.com
-
Add to the mariadb/mysql config file (Usually /etc/mysql/my.cnf) the string
innodb_fast_shutdown=0
in the [mysqld] section. -
Restart the DB server to apply changes:
# systemctl stop mariadb.service ; systemctl start mariadb.service
-
Update the current system to the latest available versions:
# apt-get update && apt-get upgrade
-
Remove all plesk-related repos from
/etc/apt/sources.list.d/
. For example, you can archive them by using the next command:# tar -cvf ~apt-sources.tar /etc/apt/sources.list.d/plesk* --remove-files
-
Stop grafana service:
# systemctl stop grafana-server.service
-
Replace
stretch
sources lists withbuster
ones in/etc/apt/sources.list
and/etc/apt/sources.list.d/*.list
:Note: below is the example for the resulting
/etc/apt/sources.list
file:# cat /etc/apt/sources.list
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb http://deb.debian.org/debian/ buster main contrib non-free -
Make installer to create Plesk sources list for Debian 10:
# plesk installer --override-os-version 10.0 --check-updates --skip-cleanup --source http://autoinstall-archives.plesk.com
-
Temporarily add the following Plesk repositories (e.g.
vi /etc/apt/sources.list.d/plesk_temp.list
):CONFIG_TEXT: deb https://autoinstall-archives.plesk.com/pool/PSA_18.0.44_9078/ buster all
deb https://autoinstall-archives.plesk.com/SITEBUILDER_18.0.29 all all
deb https://autoinstall-archives.plesk.com/PHP80_17 buster all
deb https://autoinstall-archives.plesk.com/PHP81_17 buster all
deb https://autoinstall-archives.plesk.com/PHP74_17 buster all
deb https://autoinstall-archives.plesk.com/PHP73_17 buster all
deb https://autoinstall-archives.plesk.com/PHP72_17 buster all
deb https://autoinstall-archives.plesk.com/PHP71_17 buster all -
Run apt update to refresh the repositories:
# apt update
-
Run the dist-upgrade to upgrade the packages from Debian 9 to Debian
# apt dist-upgrade
Note: When prompted, you should keep the previous version of
Rsyslog
configuration file.Note: When prompted, you should keep the previous version of
Spamassassin
configuration file. -
Remove the temporary sources file created in step 12 (e.g. rm /etc/apt/sources.list.d/plesk_temp.list).
-
Run plesk installer to update the current packages:
# plesk installer update --source http://autoinstall-archives.plesk.com
-
In case that
systemctl status apache2
results in apache service being stopped/failed:Resolve it by installing a the package and starting apache2:
# apt-get install libapache2-mod-fcgid-psa
# service apache2 start
-
Run apt update again:
# apt update
-
Update MariaDB to the next major version provided by the vendor:
# apt-get install mariadb-server-10.3
Warning: MariaDB/MySQL may not start till the reboot is performed.
-
Remove from the mariadb/mysql config file (Usually
/etc/mysql/my.cnf
) the stringinnodb_fast_shutdown=0
in the [mysqld] section, added at the beginning of this process. -
When AppArmor was installed, bind service fails to start with
permission denied
shown atsystemctl status bind9
output:Resolve it by either disabling AppArmor with following commands or reconfigure AppArmor:
# systemctl stop apparmor
# systemctl restart bind9 -
Reboot the server to the new kernel:
# shutdown -r now
-
Clean packages installed by dependencies and not needed anymore:
# apt-get autoremove
-
In case AppApmor is enabled adjust it by following this article to let Bind9 load properly
Note: At this point, there is a possibility that components are removed, like for example: php7.0-curl
plesk-mail-pc-driver
postfix
psa-drweb-configurator
psa-spamassassin
which is because on Debian 10 vendor's postfix is used and its version is lower than postfix shipped by Plesk for Debian 9
-
Check that all the Plesk components are installed and if not (Like for example in case there were components uninstalled like the ones in the dist upgrade step), select and re-install them again through the plesk installer along with Postfix which was replaced by msmtp at the beginning:
# plesk installer
-
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Check that Plesk and all its services are working.
-
Use the following commands to regenerate web server as well as DNS configuration files if needed:
# plesk repair web
# plesk repair dns
Warning: The dist-upgrade
from Debian 10 to Debian 11 is supported by Plesk Obsidian 18.0.42 version.
Warning: The dist-upgrade
process from Debian 10 to Debian 11 is supported with MariaDB scenario only.
-
Create a full server backup. Before the upgrade, make a full server backup. Also, notify the customers about upcoming downtime of one to three hours.
-
Connect to the server and perform the process connected as root or by using the
# su -
or# sudo su -
command. -
Uninstall unsupported components like
mailman
,webalizer
,watchdog
and PHP handlers below version 7.3:Note: before applying the command below, switch the existing websites to PHP version 7.4 or higher.
# plesk installer remove --components php7.1 php7.2 php7.3 mailman webalizer watchdog
-
Remove packages which were installed by dependencies but aren't required:
# apt-get autoremove
-
Execute the command below to be sure that system is up-to-date:
# plesk sbin pum --update
OR
# apt-get update && apt-get upgrade
-
Run the command to make Plesk up-to-date:
# plesk installer update
-
Install
aptitude
:# apt-get install aptitude
-
Remove repository lists that are related to Plesk:
# rm -f /etc/apt/sources.list.d/plesk*.list
-
Replace
buster
sources lists withbullseye
ones in/etc/apt/sources.list
and/etc/apt/sources.list.d/*.list
:Note: below is the example for
/etc/apt/sources.list
file:CONFIG_TEXT: deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free -
Make installer to create Plesk sources list for Debian 11:
# plesk installer --override-os-version 11 --check-updates --skip-cleanup
-
Add string below into the
/etc/mysql/my.cnf
file under[mysqld]
section:CONFIG_TEXT: innodb_fast_shutdown=0
-
Restart
MariaDB
service to apply the changes:# systemctl restart mariadb
-
Install modern kernel, libc6, python3, mariadb packages with the command:
# aptitude install base-files linux-image-amd64 libc6 python3 mariadb-server-10.5
Note:Make sure that after execution of the command above, Plesk-related packages are not marked, for removal, normally list should be as below:
CONFIG_TEXT: Remove the following packages:
- g++-8 [8.3.0-6 (now)] \
- galera-3 [25.3.25-2 (now)] \
- gcc-8 [8.3.0-6 (now)] \
- libgcc-8-dev [8.3.0-6 (now)] \
- libpython-stdlib [2.7.16-1 (now)] \
- libstdc++-8-dev [8.3.0-6 (now)] \
- mariadb-client-10.3 [1:10.3.22-0+deb10u1 (now)] \
- mariadb-client-core-10.3 [1:10.3.22-0+deb10u1 (now)] \
- mariadb-server-10.3 [1:10.3.22-0+deb10u1 (now)] \
- mariadb-server-core-10.3 [1:10.3.22-0+deb10u1 (now)] \
- openssh-sftp-server [1:7.9p1-10+deb10u1 (now)] \
- python [2.7.16-1 (now)] \
- python-minimal [2.7.16-1 (now)]
Note: when you will be asking to overwrite sshd configuration, left it as is. Also allow automatic restart for services
-
Remove line below from the
/etc/mysql/my.cnf
file:CONFIG_TEXT: innodb_fast_shutdown=0
-
Reboot the server
-
Rename configuration from
bind9
tonamed
:# mv /etc/default/bind9 /etc/default/named
-
Execute the command below to get Plesk build for Debian 11 OS:
# plesk installer update --skip-cleanup
-
Update the Plesk extensions:
# plesk bin extension -l | egrep '(panel-migrator|site-import|docker|grafana|ruby)' | awk {'print $1'} | xargs -i plesk bin extension -i {}
-
Complete distupgrade process:
# apt-get dist-upgrade
Note: leave configuration for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.
-
Optional step: Remove unused packages:
# apt-get autoremove
-
Optional step: Purge the configuration files of the removed packages:
# apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`
-
Restore the Plesk packages configuration:
# plesk installer update
-
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Reboot the server
Unsupported EOLed OSes
Note: Plesk Onyx 17.8 is EOLed and no support will be provided if something goes wrong. In case you have EOLed OS/Plesk the best-recommended scenario is migration.
Warning: dist-upgrade
from Ubuntu 14 to Ubuntu 16 is supported for Plesk Onyx version 17.8.
Warning: During an upgrade from Ubuntu 14 to Ubuntu 16, system PHP 5.x shipped by OS vendor will be upgraded to PHP 7.x. So to avoid any PHP compatibility issues, before an upgrade, it is highly recommended to switch all sites having PHP handler 5.x by OS vendor to corresponding custom PHP handlers. Please refer to these KB articles for details: How to configure PHP handlers in Plesk for Linux? and How to apply new PHP handler to multiple domains via CLI?
Warning: if PHP by OS vendor was updated from third-party sources prior to dist-upgrade, it may break webmail functionality.
-
Create a full server backup. Before the upgrade, make a full server backup. Also, notify the customers about upcoming downtime of one to three hours.
-
Run below script and follow the wizard:
# /opt/psa/bin/distupgrade.helper.ubt14-ubt16.x64.sh
The script logs all its actions in
/var/log/plesk/install/plesk-distupgrade.log
. -
During the script execution, you will be asked to reboot the server. Reboot the server.
-
After the server reboot, run the script once again.
Warning: dist-upgrade
from Debian 8 to Debian 9 is supported by Plesk Onyx 17.8 version.
Warning: if PHP by OS vendor was updated from third-party sources prior to dist-upgrade, it may break webmail functionality.
Preparing server for upgrade
-
Create a full server backup. Before the upgrade, make a full server backup. Also notify the customers about upcoming downtime of one to three hours.
-
Consider to remove sources list backup files which might be left from the previous dist-upgrade:
/etc/apt/sources.list.saved_by_plesk_distupgrade
- /etc/apt/sources.list.d/50sw_autoinstaller.list.saved_by_plesk_distupgrade`
-
Download the distupgrade scripts
# wget https://raw.githubusercontent.com/plesk/kb-scripts/master/distupgrade-helper-deb8-deb9/distupgrade.helper.deb8-deb9_pre.x64.sh
# wget https://raw.githubusercontent.com/plesk/kb-scripts/master/distupgrade-helper-deb8-deb9/distupgrade.helper.deb8-deb9.x64.sh
-
Move the scripts to
/opt/psa/bin/
# mv distupgrade.helper.deb8-deb9*.x64.sh /opt/psa/bin/
-
Make the scripts executable by running following command:
# chmod +x /opt/psa/bin/distupgrade.helper.deb8-deb9*.x64.sh
-
Run pre-upgrade helper script and prepare Plesk and the system for the upgrade:
# /opt/psa/bin/distupgrade.helper.deb8-deb9_pre.x64.sh
The script logs all its actions in
/var/log/plesk/install/plesk-distupgrade.log
.
Performing the dist-upgrade
-
Update source.list file and configure the repository for the OS release that is going to upgrade to:
# cat /etc/apt/sources.list
deb http://deb.debian.org/debian stretch main contrib non-free
deb http://security.debian.org/debian-security/ stretch/updates main contrib non-free
deb http://deb.debian.org/debian stretch-updates main contrib non-free -
Update information about system packages:
# apt-get update
-
Upgrade the system:
# /opt/psa/bin/distupgrade.helper.deb8-deb9.x64.sh
This command will perform a complete upgrade of the system, install the newest available versions of all packages and resolve all possible dependency changes between packages in different releases.
During the upgrade the system might produce prompts like:
CONFIG_TEXT: Configuration file
/etc/mysql/my.cnf
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ?
Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** my.cnf (Y/I/N/O/D/Z) [default=N] ?
Choose to replace configuration files with a new one (answerY
).
Finalizing the upgrade
-
Run post-upgrade helper script:
# /opt/psa/bin/distupgrade.helper.deb8-deb9_post.x64.sh
Note: This script is already called during the execution of
/opt/psa/bin/distupgrade.helper.deb8-deb9.x64.sh
, run it to verify that everything was successfully done. Its actions are logged in/var/log/plesk/install/plesk-distupgrade.log
too. -
Run the repair command below to run all needed upgrade scripts:
# plesk repair installation
-
Reboot the server.
-
Check that Plesk and all its services are working.
Comments
4 comments
Hi Gabriel Aznarez,
Please note, that I have run the update to Ubuntu 22.04 on linux, for a second time after I already had it, in order to fully update the server, and that fully broke the server mySql (even level 4/6 of restart mySql didn't work).
I saw a Plesk KB article regarding such a problem on a Windows based server, however it occurs also on Linux based one. Possibly PHP version is related to the issue.
I had to restore an AWS snapshot.
Hi Gabriel Aznarez,
I'm pretty sure, the adaptation of step regarding mySql appearing for Ubuntu 18.04 upgrade to version 20.04, are missing on the guidance for upgrade from version 20.04 to version 22.04, possibly leading to server failure.
Can you please give your take?
Update MariaDB to the next major version provided by the vendor:
# apt-get install mariadb-server-10.3
In case MySQL installed, update it to the next major version provided by the vendor
# apt-get install mysql-server-5.7
Warning: MariaDB/MySQL will not start until the next reboot is performed.
In the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
remove the stringinnodb_fast_shutdown=0
in the [mysqld] section, added at the beginning of this process. In case MySQL is installed, remove the string from/etc/mysql/my.cnf
in the [mysqld] section.Install udev package:
# apt-get install udev
Warning: The udev package installation may fail on Ubuntu systems which may be needed to be solved manually. If that is the case, the following should be checked and applied:
/lib/systemd/system/systemd-udevd.service
file, the following string should be changed:From:
To:
And execute the following command:
# apt-get -f install
Hi Ehud Ziegelman,
Thank you for your comment.
Note that the processes for each version may differ, I have just tried myself the Dist Upgrade from Ubuntu 20 to Ubuntu 22 using the steps from this article and had no issue with the process as currently is. The upgrade succeeded and Plesk as well as the sites continue to operate correctly.
Mind that as mentioned on the article suggested actions, if a process is in doubt it is recommended to first try this on a testing environment before applying it to the production one.
Feel free to share the results if you encounter any issues yourself.
Sincerely.
Hello,
In my case Dist-upgrade from Debian 10 to Debian 11 take +/- 2h. I go step by step with instruction from Plesk and everything goes well. After all steps, final reboot, I meet only one inconvenience - that firewall (Fail2Ban) ban my IP due to too many connection attempts to mail service made by my phone that was on the same network. On root level everything was fine, and to figure it out it take me like 30 min :) so ... maybe one advice before start upgrading is to whitelist your current IP.
Regards
Please sign in to leave a comment.