Applicable to:
- Plesk Obsidian for Linux
- Plesk for Linux
How to perform a dist-upgrade?
Warning: The dist-upgrade procedure is complex, hence you may want to consider migration instead as can be seen here: Plesk Migration and Transfer Guide
Warning: The dist-upgrade procedure can not be performed in a containerized environment. If this 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.35, 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 in Plesk as per the following versions:
Supported for | Plesk version |
---|---|
Ubuntu 20 > Ubuntu 22 | Plesk Obsidian 18.0.44 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 |
If you have never performed dist-upgrade before, it is recommended to test it first as follows:
-
Install the previous version of OS on a test server or inside a virtual machine. Upgrade it using instructions provided in the documentation by the OS vendor:
-
Solve all potential problems and make sure that Plesk is working after the upgrade. Only after that run the upgrade on the production server.
If you want or need Plesk to assist on this task or to do it on your behalf, it can be requested 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 is supported by Plesk Obsidian 18.0.44 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 aren't 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
:Note: below is the example for
/etc/apt/sources.list
file:# sed -i "s/focal/jammy/g" /etc/apt/sources.list
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):bind-address = ::ffff:127.0.0.1
to
bind-address = 127.0.0.1
-
Add string below into the
/etc/mysql/my.cnf
file under [mysqld] section: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 list should be as below:
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, leave the configuration as it is.
Note: Select to allow automatic restart for services
-
-
Remove line below from the
/etc/mysql/my.cnf
file: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)' | 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
-
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
-
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 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 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 source.list file 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 https://packages.grafana.com/oss/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
-
Remove from the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
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
Warning: MariaDB/MySQL won't start till the reboot is performed.
-
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.
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 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
-
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
-
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.plesk.com/PSA_18.0.37/ bionic all
deb http://autoinstall.plesk.com/ubuntu/PHP70_17 bionic all
deb http://autoinstall.plesk.com/PHP71_17/ bionic all
deb http://autoinstall.plesk.com/PHP72_17/ bionic all
deb http://autoinstall.plesk.com/PHP73_17/ bionic all
deb http://autoinstall.plesk.com/PHP74_17/ bionic all
deb http://autoinstall.plesk.com/debian/SITEBUILDER_17.8.12 all all
deb [arch=amd64] http://autoinstall.plesk.com/PMM_0.1.11 bionic all
deb [arch=amd64] http://autoinstall.plesk.com/NODE_0.0.2 all all
deb https://packages.grafana.com/oss/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 from the mariadb config file
/etc/mysql/mariadb.conf.d/50-server.cnf
the stringinnodb_fast_shutdown=0
in the [mysqld] section, added at the beginning of this process. -
Reboot the server
# reboot
-
Update dpkg package:
# apt-get install dpkg
-
Update apt package:
# apt-get install 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
-
-
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.
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.
- Connect and perform the process connected as root or by using the
# su -
or# sudo su -
command. -
Uninstall unsupported components like docker, PHP below 7.0... (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
-
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 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 source.list file and configure the repository for the OS release that is going to upgrade to:
# 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
deb http://autoinstall.plesk.com/PSA_18.0.37/ buster all
deb http://autoinstall.plesk.com/debian/SITEBUILDER_17.8.12 all all
deb http://autoinstall.plesk.com/PHP71_17/ buster all
deb http://autoinstall.plesk.com/PHP72_17/ buster all
deb http://autoinstall.plesk.com/PHP73_17/ buster all
deb http://autoinstall.plesk.com/PHP74_17/ buster all
deb https://packages.grafana.com/oss/deb stable main
deb [arch=amd64] http://autoinstall.plesk.com/PMM_0.1.11 buster 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 buster 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-image-amd64
-
Update MariaDB to the next major version provided by the vendor:
# apt-get install mariadb-server-10.3
Warning: MariaDB/MySQL won't start till the reboot is performed.
-
Remove from the mariadb/mysql config file (Usually /etc/mysql/my.cnf) the string
innodb_fast_shutdown=0
in the [mysqld] section, added at the beginning of this process. - When AppArmor was installed, bind service fails to start:
# systemctl status bind9
Resolve it by either disabling AppArmor with following commands or reconfigure AppArmor:
* bind9.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2022-04-17 13:55:14 EEST; 4s ago
Docs: man:named(8)
Process: 13480 ExecStop=/usr/sbin/rndc stop (code=exited, status=1/FAILURE)
Process: 13474 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=1/FAILURE)
Main PID: 13474 (code=exited, status=1/FAILURE)
CPU: 12ms
Apr 17 13:55:14 example.com named[13474]: loading configuration from '/etc/named.conf'
Apr 17 13:55:14 example.com named[13474]: open: /etc/named.conf: permission denied
Apr 17 13:55:14 example.com named[13474]: loading configuration: permission denied
# systemctl stop apparmor
# systemctl restart bind9 -
Reboot the server to the new kernel:
# shutdown -r now
-
Upgrade packages:
# apt-get 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 packages that were 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
-
Execute the dist-upgrade command:
# apt-get dist-upgrade
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 -
Update Plesk to next available version finishing the dist-upgrade process:
# plesk installer update
-
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
-
Reboot the server:
# reboot
-
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 7.3 version: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:
1) g++-8 [8.3.0-6 (now)]
2) galera-3 [25.3.25-2 (now)]
3) gcc-8 [8.3.0-6 (now)]
4) libgcc-8-dev [8.3.0-6 (now)]
5) libpython-stdlib [2.7.16-1 (now)]
6) libstdc++-8-dev [8.3.0-6 (now)]
7) mariadb-client-10.3 [1:10.3.22-0+deb10u1 (now)]
8) mariadb-client-core-10.3 [1:10.3.22-0+deb10u1 (now)]
9) mariadb-server-10.3 [1:10.3.22-0+deb10u1 (now)]
10) mariadb-server-core-10.3 [1:10.3.22-0+deb10u1 (now)]
11) openssh-sftp-server [1:7.9p1-10+deb10u1 (now)]
12) python [2.7.16-1 (now)]
13) 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 '(ruby|panel-migrator|site-import)' | 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
- Reboot the server
Warning: Most APS applications will not work with PHP 7.x
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`
-
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. -
Reboot the server.
-
Check that Plesk and all its services are working.
Comments
104 comments
We are still waiting for this upgrade guide from Ubuntu 16 to 18.
I hope you can assist me with the following:
I am looking for the best way to proceed an update of Debian 7.11 with Plesk Onyx 17.5.3 to newer Debian and Plesk Obsidian.
I have already made sure that PHP 5.4 is not needed anymore and there are no more domains running on it.
As I have seen for Obsidian a minimum Debian 9 is needed and I think this version is fine as it is supported until 2022.
Plesk Onyx seems to run on Debian 8 and Debian 9.
I am specially interested in what is the best way going up to the best new version?
Would this be fine?
First dist upgrade to Debian 8 than to Debian 9 than Onyx to Obsidian?
Is there a distupgrade possibility within Plesk also?
I will have assistance of course, but it would be helpful getting more information about the order of the single steps (btw. corrections) to perform.
Many thanks
This is taking too long.. There has to be a upgrade from 16 to 18 and 18 to 20 aswel, cuz 18 is already outdated nowadays..
Helloooooo? What about the overdue and long-promised upgrade from Ubuntu 16 to 18?
Promised for the end of october. And we are still waiting for this upgrade guide from Ubuntu 16 to 18 in december.
Hi,
For all those waiting for the guide for newer operating systems, please be patient since we're finishing our tests and verifications that the procedure is safe to apply and won't break your servers :)
Ubuntu 16->18 distro-upgrade is going to be public very soon (during this week I believe).
For the procedure of Ubuntu 18->20 and Debian 9->10, to be honest, we're having some troubles with package management and dependencies while the distro-upgrade that without dirty hacks are difficult to overcome, something not suitable for inexperienced users.
Thanks for your patience.
As said yesterday, the guide is published now with Ubuntu 16->18 Distro upgrade procedure.
The other 2 (Ubuntu 18->20 and Debian 9->10) are on their way.
Thanks for your patience.
Has anyone tested 16 -> 18 yet?
Dirk Didn't go well for me at all. For starters, https://packages.grafana.com/oss/ubuntu doesn't even exist for sources.list. Per grafana, it should be https://packages.grafana.com/oss/deb so I'm not convinced this process was very well vetted. Step #7 isn't super clear. In my instance, I have 5 separate URLs in my plesk.list. I assume they mean the PSA_* URL. I used their example and it immediately failed because of libcurl3. Installing libcurl4 proceeded to update a ton of packages. Ultimately it had issues with mariadb and it seems it wanted to update the database.
I honestly just got fed up with how abysmal this upgrade process is, how long it took to get these instructions, I've got very little faith in the product or their ability to provide a safe upgrade path. I wasn't about to attempt this again from 18.04 to 20.04 because that sounds like even more of a train wreck. I took a complete server backup prior to attempting to upgrade. I've been meaning to reorganize a few things so I'm taking the opportunity to just install 20.04 fresh and reinstall Plesk on top of that. Hopefully my backup imports smoothly but again, I've very little faith at this point.
I implore the Plesk team to really make this process a priority in the future.
Yes, Patrick, you are absolutely right, the repositories for Grafana are wrong and should be as you correctly pointed out. Thanks for bringing this to my attention! I've proceeded to perform the change in the guide and set it properly, it should be right now.
As for the rest of the problems/concerns, unfortunately, there is no easy way to perform such a process upgrading the distribution thus, this is as well the main reason why it is not recommended and, what we recommend instead, is to perform a migration. The result should be cleaner and more pleasant.
The recommended upgrade path using the migration guide is an economical disaster, to say the least.
Only because plesk fell short on all promises, we had to go with the migration guide a couple of months ago. We had so much pressure from our clients, that we had to upgrade, especially because many packages had been at their end of life. One of the reason is that not all ubuntu packages have long time support. Anyway. The migration took us weeks to prepare and complete. The migration assistant is so poorly build and has so many bugs, that many things are not getting migrated even though they are part of plesk itself. Worse than that is of course all the other stuff. If you are using a server for many years for many clients, you will customise it to your and your clients' needs. Plesk is just offering basic packages (web, apps, dns, mail) and it is obvious that admins have to tweak the server around plesk.
The migration took hours, which was downtime, and even with weeks of preparation we still had to fix so many things afterwards. The customers were annoyed and we too.
And I just want to repeat myself: the migration was an economical catastrophe for us. Just make the calculation for yourself. How many client you have to have to get paid for this immense effort and loss of confidence? A migration is the worst upgrade path and should not be the recommended one!
So far plesk has not delivered anything they promised, not even a good nor expectable excuse.
Hello, it's already safe to upgrade a Plesk Ubuntu 18.04 installation to Ubuntu 20.x LTS version?
Thank you in advance.-
Thanks for all the comments. This makes me stop to attempt the upgrade. I started following the 16 -> 18 guide above but step 7 is so super unclear that I wonder how this could end up in a guide in the first place.
I also haven't tried yet, because of step #7. Could anyone make this a little more precise?
@...
Thanks a lot for the hard work of the whole Plesk team realizing do-release-upgrade from Ubuntu 18 to 20. Some people always want the newest features, but they don't realize that by uncountable cross-dependencies it is more and more impossible to upgrade the OS under these tons of services and dependencies.
Question: Is it an typo/text error or is it real that only the PHP 8 is a bionic package and all other packages are focal? Please look in the tutorial Ubuntu 18 to 20. sources list:
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/ bionic all
deb https://packages.grafana.com/oss/deb stable main
For me it looks like a typo. It should be also "focal", isn't it.
Lots of greets (I think I will try it)
Hello Markus,
You are absolutely right, it was a typo. I've modified the article accordingly.
Thank you very much for bringing this to my attention! :)
Thanks, too. I want to do the upgrade now. therefor I've another two questions. I use a dedicated server by Ionos in Germany. I know you or Plesk work together in some ways. Upgrade to Ubuntu 20 is shown in shell/cli since a few months.Sorry for the questions, but I want to take as little as possible risks.
Is it possible to use the 1and1 repositiories/sources or do you suggest better and absolutely the sources by Aachen university from the tutorial?
On my server MariaDB is running. Since my last MariaDB upgrade from 10.4 to 10.5(.8) the configuration paths seemed to be changed a little. my.cnf is a link to /etc/mysql/mariadb.cnf (to set global defaults). I would set here the
innodb_fast_shutdown=0
in the [mysqld] section. Is it right, or perhaps /etc/mysql/mariadb.conf.d/50-server.cnf where I already made Fine tuning settings?Dirk Patrick Alberts Oliver Mueller Patrick Lahni
I am glad to announce that the guide for Ubuntu 16 to Ubuntu 18 has been reworked and simplified.
Thank you very much for your feedback guys, really appreciate it :)
Markus
Repositories had been changed for the Ubuntu generic ones so it does not lead to any misunderstanding. You may be able to use the ones from 1and1 but I suggest you to use Ubuntu ones :)
The file you can modify for that is, as you point out, /etc/mysql/mariadb.conf.d/50-server.cnf, this has been clarified as well in the guide to be more precise for both distributions, 16 and 18.
Thanks for bringing this to my attention!
@... thanks for updating and reworking the guide!
One thing remained unclear for me. You mention in the beginning:
What is that and where do I find that? I cannot see any extension with that name and Google search only turns up articles about WordPress. Could you please shine some light on this?
Very skeptically, I gave this a shot, upgrade from:
Ubuntu 16 > Ubuntu 18
and it failed.
The first issue I had at step 6, which failed.
After several `apt-get upgrade` and `apt-get dist-upgrade` and retry 6 it worked.
Then... all good :) just `plesk` was missing(command not found), web configs were not working.
I had to restore the snapshot.
Hi Andy B,
Did you check if within one of those apt-get dist-upgrade the APT was suggesting to remove some packages?
This plesk command not found means highly probable that plesk packages were removed due to some dependency.
Francisco Roman Garcia Rodriguez I am not sure. I had to rollback the snapshot, gave it up as it seems very risky.
I am setting up a new VPS and transfer everything to the new server.
When this is done, I can play again with the old one.
I'm trying the dist-upgrade from ubuntu 16 to 18. I followed the steps, but at the latest one, the actual dist-upgrade nothing happens... Perhaps my sources list is wrong?
deb ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial main restricted universe
deb-src ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial main restricted universe
deb ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-updates main restricted universe
deb-src ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-updates main restricted universe
deb ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-security main restricted universe
deb-src ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-security main restricted universe
deb http://updates.atomicorp.com/channels/tortix-common/debian xenial main
deb http://autoinstall.plesk.com/PSA_18.0.33/ bionic all
root@h1884536:~# apt-get dist-upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Hi Lars Oeschey,
Performing the dist-upgrade > Step 1 isn't performed properly, as in your case you're still using Xenial (Ubuntu 16), while it should be all Bionic (Ubuntu 18).
https://wiki.ubuntu.com/Releases
Please, before executing the guide blindly, read it properly and understand each step what it does, and its purpose.
Distro-upgrade is quite critical and may result in a complete disaster if something isn't followed properly and there's no server snapshot to rollback.
I think you mean this?
deb http://autoinstall.plesk.com/PSA_18.0.33/ bionic all
was addedd to the sources list (since I'm on 18.0.33)
Hello!
I have successfully upgrade our debian 9 to debian 10 with plesk version 18.0.34. But here my experience :
When you can leave with a bit down time, then don't install msmtp, because it will delete all your postfix and dovecot settings. That is bad when you have, like us, custom settings. Just stop this services, before the update process.
I would also disable all the pages, so there is no access to it and stop mariaDB server. In case there is a problem and you have roll back to an snapshot, you don't lose any data, which was written to it.
Don't delete all the repos in /etc/apt/sources.list.d/. Edit them according to the new urls from description. Add then only the debian repos in /etc/apt/sources.list. This will prevent any warings later about double entry when you run "plesk installer update", like what you see here: https://talk.plesk.com/threads/duplicates-in-apt.355955/#post-879111
After dist-upgrade my bind9 server was not working anymore, so I have to follow this two steps: permission and mkdir-run-Permission-denied
When running "plesk installer", I reinstall postfix and Spamassassin. But later my dovecot was not working two, this I fixed with: "openssl dhparam -out /opt/psa/etc/dhparams1024.pem 4096"
Then I had also a problem with spamassassin, which I fix with: Connection-refused. Some how the service was als disabled, so I had to enable them.
I also needed to enable pc-remote service.
this did not go well for me...
I was quite scared to do this after so many comments with problems, but update ubuntu 18 -> 20 went smoothly. No problems whatsoever.
And migration was not really option for me, since almost all my domains have DNSSEC signatures and they cannot be migrated.
a question regarding the 18->20 upgrade, I have only mysql DBs, do I need to convert to MariaDB?
Please sign in to leave a comment.