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 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.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 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
: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 the 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 the list should be as below:
Remove the following packages:
- galera-3 [25.3.29-1 (now)] \
- mariadb-client-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)] \
- mariadb-client-core-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)] \
- mariadb-server-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)] \
- mariadb-server-core-10.3 [1:10.3.34-0ubuntu0.20.04.1 (now)] \
- python3-systemd [234-3build2 (now)] \
- 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: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
-
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
-
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:
PLESK_ERROR: => Installing the LXD snap
==> Checking connectivity with the snap store
==> Installing the LXD snap from the 4.0 track for ubuntu-18.04
error: requested a non-existing branch on 4.0/stable for snap "lxd": ubuntu-18.04
dpkg: error processing archive /var/cache/apt/archives/lxd_1%3a0.9_all.deb (--unpack):
new lxd package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/lxd_1%3a0.9_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)May be it requires (if it is not in use) to delete packages:
# apt purge lxd lxd-client
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
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/ubuntu/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/debian/SITEBUILDER_17.8.12 all all
deb [arch=amd64] http://autoinstall-archives.plesk.com/PMM_0.1.11 bionic all
deb [arch=amd64] http://autoinstall-archives.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
-
-
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 Docker and PHP below version 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 --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 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 http://autoinstall.plesk.com/grafana/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
* 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 deniedResolve 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
-
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 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
-
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. -
Reboot the server.
-
Check that Plesk and all its services are working.
Comments
120 comments
Unfortunately my vserver hosted by hosteurope does not come online again after running
and rebooting after. Although there were no errors.
@Sebastian: Same here ... I've read your comment too late :-(
@Sebastian, @Andy it will be great if you can shed some light on the issues that you faced.
Only the pre-installed version and their updates are usable.
A dist-upgrade attempt will result in a system that is no longer running after a reboot.
I'm still waiting for the backup process of 300 gigabytes (for 6 hours) to repair this bullshit ... please put a hint right over the call.
Reason:
The virtualization software of hosteurope is probably not compatible with the updated kernel and no longer find the VM.
@See: https://www.hosteurope.de/faq/server/server-allgemeines/selbst-installation-sicherheitsupdates/
Hi,
@Sebastian and @Andy are problems solved?
I need to upgrade my debian server with plesk12.5 from wheezy to jessie this weekend. Can you share any recommendations about this upgrade?
@Andy please tell me what virtualization type is used. You can use "virt-what" utility to check it.
My "Solution": I ordered a new clean ubuntu 16.04 and installed plesk by myself. Very disappointing.
Prevent do-release-upgrade to be run directly or at least inject on it a clear warning message requesting confirmation.
Plesk adds its pretty text to the SSH greeting message, so it should be doable. As per this KB article, you have to run a Plesk script; forgetting that and running do-release-upgrade directly may cause high troubles.
Updating from Ubuntu 14.04 to Ubuntu 16.04.1 using do-release-upgrade will fail because MySQL is updated from 5.5 to 5.7, that is unsupported update path as per MySQL official documentation. Your script should do these pre-checks and prevent upgrade or automatically solve the issue before the upgrade.
@Marco, did you check Dist-upgrade potential issues article? Maybe it contains the issue you are talking about and the solution for that.
@Bulat Tsydenov Yes I do and this is not listed. It seems like a bug, infact running the script as described in this article on a clean Ubuntu 14.04 installation, will upgrade MySQL 5.5 to 5.7 that is an unsupported upgrade. Too, command 'update-alternatives' is not run. This will work only if MySQL was manually upgraded to 5.6 before, but this is not mentioned anywhere.
Beware after upgrading from Ubuntu 14 to 16, cron jos set to be run with "PHP from OS vendor" won't run anymore, failing with error "/bin/sh: /usr/bin/php5: No such file or directory" because PHP 5 is not available anymore.
"plesk repair" tool won't regenerate cron jobs.
You have to fix them manually, just open them one by one from Plesk UI, and hit OK button. This will be enough to regenerate cron files.
The issue maybe related to the fact that the "Use PHP version" dropdown still shows PHP 5.5.9 from OS vendor after upgrade. This maybe happens because there are residual 5.5.9 packages in the system that wasn't purged during upgrade.
@Marco, I have reproduced the behavior on a test server and created a request to developers to find out if this is a bug.
All updates regarding the investigation will be sent to your email.
Thank you for the feedback.
@Denis please see https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1725222/
Please note that after upgrade, MySQL event scheduler won't be enabled again, if it was before the upgrade, and you should fix that manually.
@Marco we have created an internal request. You'll be notified via email.
Thank you for the feedback.
@Marco a solution was found and sent to your email. "General information" section of this article was updated. Thank you.
Will there be pre and post upgrade helper files for deb8 to deb 9?
@Marian
Instruction for an upgrade to Debian 9 will be added to this article soon.
Click "Follow" to be notified when the article will be updated.
If MySQL event scheduler (SET GLOBAL event_scheduler = ON) was enabled before the upgrade, it won't be enabled again after following this KB article, without any notice to user.
@Ivan I'm upgrading OS from Debian 7 to 8. After run file /opt/psa/bin/distupgrade.helper.deb7-deb8_pre.x64.sh , I got the error message as picure below

What should i do?
Regards,
@Trung, such errors are usually caused by incompatibility of Plesk with repositories that are configured on the server.
Please, make sure that standard repositories only are configured on the server and restart the script.
Hi, since Ubuntu 18.04.1 was released a month ago, when the upgrade will be available ?
+ Do you recommend an upgrade or a migration on a fresh install ?
Thanks
Hello @Florent, the upgrade will be available soon. There is no exact ETA but this article will be updated with the corresponding information.
> Do you recommend an upgrade or a migration on a fresh install?
Both methods are ok and the choice is up to you.
Hi, i try to update my Debian 8 up tp 9 with Plesk 17.8.11
but it dies everytime at the 'Bootstrapper repair actions failed'
Take a look:
Actually I couldn't figure out how to fix this, do you have any idea?
(And this is the Screenshot out of the told .log file...)
Please help me. :D
Thanks in advance and kind regards.
@Janusz Kucharczyk
Please check the following article:
https://support.plesk.com/hc/en-us/articles/213373289-Dist-upgrade-potential-issues
If the article is not helpful I would recommend you submitting a Support ticket.
I attempted today the upgrade from debian 8 to 9 following the above instructions. All went fine (except in the beginning that I had to manually remove some atomicorp repos [1] which were stopping the procedure), until at the end of the dist-upgrade that I got:
Fetched 76.2 MB in 21s (3472 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package psa-php-configurator
Some error during dist-upgrade middle stage have occurred.
Check /var/log/plesk/install/plesk-distupgrade.log for error details.
Visit https://docs.plesk.com/en-US/current/administrator-guide/server-administration/distupgrade-support.74627/ for information about troubleshooting and recovering from failed dist-upgrade.
STOP Distupgrade
Just out of curiosity I tried to run the post upgrade script (# /opt/psa/bin/distupgrade.helper.deb8-deb9_post.x64.sh) but there was no such script.
I rebooted the server, everything looked fine, I entered Plesk and at the home screen I saw:
Debian 9.8
Product Plesk Onyx
Version 17.8.11 Update #45
It looked as if the upgrade had succeeded. But this being a critical server, I could not risk it, so I restored the server from the snapshot I had taken just before.
So, what happened? Why those errors? Should I try again changing something?
[1]
Err http://updates.atomicorp.com stretch/main amd64 Packages
404 Not Found [IP: 158.69.253.161 80]
Err http://updates.atomicorp.com stretch/main i386 Packages
404 Not Found [IP: 158.69.253.161 80]
Ign http://updates.atomicorp.com stretch/main Translation-en
Fetched 111 kB in 6s (17.8 kB/s)
W: Failed to fetch http://updates.atomicorp.com/channels/tortix-common/debian/dists/stretch/main/binary-amd64/Packages 404 Not Found [IP: 158.69.253.161 80]
W: Failed to fetch http://updates.atomicorp.com/channels/tortix-common/debian/dists/stretch/main/binary-i386/Packages 404 Not Found [IP: 158.69.253.161 80]
Hello Μίστερ Μολ,
The case looks quite complex to discuss it in article comments. Please submit a ticket for us and we will be glad to investigate the issue and assist you.
Hi @Alexandr.
Thanks for your offer, but I cannot submit a ticket since I'm on a licence key bought from Hetzner, which does not provide free support. And my company is not willing to pay for support on a thing that looks like a plesk bug... It's a deadlock! Can you help otherwise?
Μίστερ Μολ,
Thank you for the feedback, I have provided an answer in this article: https://support.plesk.com/hc/en-us/articles/213953025
Please sign in to leave a comment.