Articles in this section

How to perform dist-upgrade procedure on Linux server with Plesk?

Plesk for Linux kb: technical Plesk Obsidian for Linux ABT: Group A

Note: If you’d like Plesk to assist with this task or handle it on your behalf, you can submit a request to the Plesk Professional Services team here: Plesk Professional Services – Administrative Services.

Supported versions and operating systems for dist-upgrade

Supported for Plesk version
Ubuntu 24 > Ubuntu 26 Plesk Obsidian 18.0.81 and above
Ubuntu 22 > Ubuntu 24 Plesk Obsidian 18.0.61 and above
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 12 > Debian 13 Plesk Obsidian 18.0.74 and above
Debian 11 > Debian 12 Plesk Obsidian 18.0.57 and above
Debian 10 > Debian 11 Plesk Obsidian 18.0.42 and above
Debian 9 > Debian 10 Plesk Obsidian 18.0.30 and above

Note: Learn how to upgrade a Plesk server from CentOS 7 to AlmaLinux 8 here.

  •  

Recommendations and limitations:

Limitations:

  • The dist-upgrade procedure cannot be performed in a containerized environment. By design, container virtualization does not include a full operating system image; instead, it relies on a shared base OS and isolates only applications and services. If you are unsure whether your server is containerized, contact your hosting provider to confirm the type of environment in use.
  • 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

Recommendations:

  • If you have never performed a dist-upgrade before, it is strongly recommended to test the upgrade on a cloned server first. Use the clone to identify and resolve potential issues and to verify that Plesk functions correctly after the upgrade before proceeding on a production system.
  • Before starting the upgrade process, consider creating: a full server snapshot, and/or a complete server backup.
Ubuntu Distributions
Dist-upgrade from Ubuntu 24 to Ubuntu 26 - Automated tool process

Preparing server for upgrade: To avoid downtime and data loss, make sure you have read and understood the following information before using the utility:

  • Remote management module must be installed on the server, as in some tests the sshd service may not be started during the process.
  • Read the list of Known issues or limiters for the tool here.
  • The server must have at least 5 GB of free disk space and 2 GB of RAM.
  • Upgrade Plesk to the last version
  • Review the known limitations of Plesk on Ubuntu 26.04.
  • Notify the customers about upcoming downtime (20-30 minutes).
  • It is recommended to create a snapshot to use as a recovery point in case the conversion process fails.

Using the tool to upgrade from Ubuntu 24 to Ubuntu 26:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server (replace the link/file name in the commands if a newer version is found):

    # wget https://github.com/plesk/ubuntu24to26/releases/download/v1.0.0/ubuntu24to26.zip
    # unzip ubuntu24to26.zip
    # chmod 755 ubuntu24to26

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background:

    # screen -S ubuntu24to26

    3.1 Run the convert stage with the next command. Note that this process may reboot the server several times:

    # ./ubuntu24to26

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r ubuntu24to26

  4. Reconnect to the server after the convert stage completes (around 20-30 minutes) and monitor the finish stage with:

    # ./ubuntu24to26 --status

    or

    # ./ubuntu24to26 --monitor

    • Alternatively the status can be tracked by checking the log file at /var/log/plesk/ubuntu24to26.log. Once the process completes the following message will be observed:

      Message from the Plesk dist-upgrader tool:
      The server has been upgraded to Ubuntu 26.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with the ./ubuntu24to26 --resume option. If the interruption was after the first reboot, restart the process by running systemctl restart plesk-dist-upgrader.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./ubuntu24to26 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure is solved, try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade takes place, because packages provided by Ubuntu 26 are already installed.

Dist-upgrade from Ubuntu 24 to Ubuntu 26 - Manual step by step process

Preparing server for upgrade

  1. Connect to the server via SSH
  2. Change to root user by using the following command:

    # sudo su -

  3. Remove packages which were installed by dependencies but are not required:

    # apt-get autoremove

  4. Execute the command below to be sure that system is up-to-date:

    # plesk sbin pum --update

  5. Run the command to make Plesk up-to-date:

    # plesk installer update

  6. Install aptitude:

    # apt-get install aptitude

  7. Remove repository lists that are related to Plesk:

    # rm -f /etc/apt/sources.list.d/plesk*.list

    Performing the dist-upgrade

  8. Replace 'noble' sources lists with 'resolute' sources lists in /etc/apt/sources.list.d/ubuntu.sources:

    # sed -i "s/noble/resolute/g" /etc/apt/sources.list.d/ubuntu.sources

    Note: below is the example of the replacements made on /etc/apt/sources.list.d/ubuntu.sources:

    Suites: resolute resolute-updates resolute-backports
    ...
    Suites: resolute-security

  9. Make installer to create Plesk sources list for Ubuntu 26.04:

    # plesk installer --override-os-version 26.04 --check-updates --skip-cleanup

  10. Add the string below into the /etc/mysql/my.cnf file under [mysqld] section:

    innodb_fast_shutdown=0

  11. Restart MariaDB/MySQL service to apply the changes:

    # systemctl restart mariadb || systemctl restart mysql

  12. Install modern kernel, libc6, python3, database server packages with the command:

    • For MariaDB:

      # NEEDRESTART_MODE=l bash -c "apt-get install --only-upgrade debianutils && aptitude install base-files linux-generic libc6 python3 mariadb-server"

    • For MySQL:

      Note: In case that the server already runs a higher version of MySQL than 8.0, remove mysql-server-8.0 from the below command before run.

      # NEEDRESTART_MODE=l bash -c "apt-get install --only-upgrade debianutils && aptitude install base-files linux-generic libc6 python3 mysql-server-8.0"

    Note: debianutils is upgraded first to avoid a known ubuntu packaging issue affecting the 7.0 kernel line on Ubuntu 26.04.
    NEEDRESTART_MODE=l prevents needrestart from restarting services during this step, avoiding a core-dump crash caused by services (e.g. rsyslog) being restarted against not-yet-upgraded binaries before the reboot in step 14.

    Note: Make sure that after execution of the command above, Plesk-related packages are not marked for removal.

  13. Remove line below from the /etc/mysql/my.cnf file:

    innodb_fast_shutdown=0

  14. Reboot the server:

    # reboot

  15. Wait some time for the server to reboot, then connect to the server via SSH
  16. Switch to root user:

    # sudo su -

  17. Execute the command below to get Plesk build for Ubuntu 26.04:

    # plesk installer update --skip-cleanup

  18. Update the Plesk extensions:

    # plesk bin extension -l | egrep '(panel-migrator|site-import|docker|kolab|grafana)'| awk {'print $1'} | xargs -i plesk bin extension -i {}

  19. Complete distupgrade process:

    # apt-get dist-upgrade

    Note: leave the configurations for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as they are, by replying no/keep to the overwrite questions.

  20. Optional step: Remove unused packages:

    # apt-get autoremove

  21. Optional step: Purge the configuration files of the removed packages:

    # apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`

  22. Restore the Plesk packages configuration:

    # plesk installer update

  23. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  24. Reboot the server:

    # reboot

  25. Wait some time for the server to reboot and check that Plesk and all its services are working.
Dist-upgrade from Ubuntu 22 to Ubuntu 24 - Automated tool process

Preparing server for upgrade: To avoid downtime and data loss, make sure you have read and understood the following information before using the utility:

  • Remote management module must be installed on the server, as in some tests the sshd service may not be started during the process.
  • Read the list of Known issues or limiters for the tool here.
  • Upgrade Plesk to the last version
  • Notify the customers about upcoming downtime (20-30 minutes).
  • Is recommend to create a snapshot to use as a recovery point in case the conversion process fails.

Using the tool to upgrade from Ubuntu 22 to Ubuntu 24:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server (replace the link/file name in the commands if newer version is found):

    # wget https://github.com/plesk/ubuntu22to24/releases/download/v1.2.0/ubuntu22to24.zip
    # unzip ubuntu22to24.zip
    # chmod 755 ubuntu22to24

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background with the following command:

    # screen -S ubuntu22to24

    3.1 Run the tool convert stage by running the tool with the next command. Note that this process may reboot the server a several times:

    # ./ubuntu22to24

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r ubuntu22to24

  4. Reconnect to the server after the convert stage completes (around 20-30 minutes) and monitor the finish stage with:

    # ./ubuntu22to24 --status

    or

    # ./ubuntu22to24 --monitor

    • Alternatively the status can be tracked by checking the log file at /var/log/plesk/ubuntu22to24.log. Once the process completes the following message will be observed:

      CONFIG_TEXT: Message from the Plesk dist-upgrader tool:
      The server has been upgraded to Ubuntu 24.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with ./ubuntu22to24 --resume option.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./ubuntu22to24 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure be solved try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade take place because packages provided by Ubuntu 24 already installed. Check the status of the conversion process and monitor its progress

Dist-upgrade from Ubuntu 22 to Ubuntu 24 - Manual step by step process

Preparing server for upgrade

  1. Connect to the server via SSH
  2. Change to root user by using the following command:

    # sudo su -

  3. Remove packages which were installed by dependencies but are not required:

    # apt-get autoremove

  4. Execute the command below to be sure that system is up-to-date:

    # plesk sbin pum --update

  5. Run the command to make Plesk up-to-date:

    # plesk installer update

  6. Install aptitude:

    # apt-get install aptitude

  7. Remove repository lists that are related to Plesk:

    # rm -f /etc/apt/sources.list.d/plesk*.list

    Performing the dist-upgrade

  8. Replace 'jammy' sources lists with 'noble' sources lists in /etc/apt/sources.list and /etc/apt/sources.list.d/*.list:

    # sed -i "s/jammy/noble/g" /etc/apt/sources.list

    Note: below is the example for /etc/apt/sources.list file:

    deb http://archive.ubuntu.com/ubuntu noble main restricted universe
    deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe
    deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse

  9. Make installer to create Plesk sources list for Ubuntu 24.04:

    # plesk installer --override-os-version 24.04 --check-updates --skip-cleanup

  10. 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

  11. Add the string below into the /etc/mysql/my.cnf file under [mysqld] section:

    innodb_fast_shutdown=0

  12. Restart MariaDB/MySQL service to apply the changes:

    # systemctl restart mariadb || systemctl restart mysql

  13. Install modern kernel, libc6, python3, mariadb packages with the command:

    • For MariaDB:

      # aptitude install base-files linux-generic libc6 python3 mariadb-server

    • For MySQL:

      Note: In case that the server already runs a higher version of MySQL than 8.0, remove mysql-server-8.0 from the below command before run.

      # 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:
    1. chrony [4.2-2ubuntu2 (now.]
    2. libssl3 [3.0.2-0ubuntu1.15 (now.]
    3. mariadb-client-10.6 [1:10.6.16-0ubuntu0.22.04.1 (now.]
    4. mariadb-client-core-10.6 [1:10.6.16-0ubuntu0.22.04.1 (now.]
    5. mariadb-server-core-10.6 [1:10.6.16-0ubuntu0.22.04.1 (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

  14. Remove line below from the /etc/mysql/my.cnf file:

    innodb_fast_shutdown=0

  15. Reboot the server:

    # reboot

  16. Wait some time for the server to reboot, then connect to the server via SSH
  17. Switch to root user:

    # sudo su -

  18. Execute the command below to get Plesk build for Ubuntu 24.04:

    # plesk installer update --skip-cleanup

  19. Update the Plesk extensions:

    # plesk bin extension -l | egrep '(panel-migrator|site-import|docker|kolab|grafana)'| awk {'print $1'} | xargs -i plesk bin extension -i {}

  20. Complete distupgrade process:

    # apt-get dist-upgrade

    Note: leave the configurations for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.

  21. Optional step: Remove unused packages:

    # apt-get autoremove

  22. Optional step: Purge the configuration files of the removed packages:

    # apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`

  23. Restore the Plesk packages configuration:

    # plesk installer update

  24. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  25. Reboot the server:

    # reboot

  26. Wait some time for the server to reboot and check that Plesk and all its services are working.
Dist-upgrade from Ubuntu 20 to Ubuntu 22 - Automated tool process

Preparing server for upgrade: To avoid downtime and data loss, make sure you have read and understood the following information before using the utility:

  • Remote management module must be installed on the server, because in some tests the sshd service could not be started during the process.
  • Read the list of Known issues or limiters for the tool here.

Using the tool to upgrade from Ubuntu 20 to Ubuntu 22:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server (replace the link/file name in the commands):

    # wget https://github.com/plesk/ubuntu20to22/releases/download/v1.1.7/ubuntu20to22-1.1.7.zip
    # unzip ubuntu20to22-1.1.7.zip
    # chmod 755 ubuntu20to22

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background with the following command:

    # screen -S ubuntu20to22

    3.1 Run the tool convert stage by running the tool with the next command. Note that this process may reboot the server a several times:

    # ./ubuntu20to22

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r ubuntu20to22

  4. Reconnect to the server after the convert stage completes (around 20-30 minutes) and monitor the finish stage with:

    # ./ubuntu20to22 --status

    or

    # ./ubuntu20to22 --monitor

    • Alternatively the status can be tracked by checking the log file at /var/log/plesk/ubuntu20to22.log. Once the process completes the following message will be observed:

      Message from the Plesk ubuntu20to22 tool:
      The server has been upgraded to Ubuntu 22.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with ./ubuntu20to22 --resume option. If the interruption was after the first reboot, restart the process running systemctl restart plesk-dist-upgrader.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./ubuntu20to22 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure be solved try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade take place because packages provided by Ubuntu 22 already installed. Check the status of the conversion process and monitor its progress

Dist-upgrade from Ubuntu 20 to Ubuntu 22 - Manual step by step process

Preparing server for upgrade

  1. Connect to the server via SSH
  2. Change to root user by using the following command:

    # sudo su -

  3. Enable enhanced security mode:

    # plesk bin passwords --encrypt

  4. Uninstall the unsupported component - Mailman:

    # plesk installer remove --components mailman

  5. Remove packages which were installed by dependencies but are not required:

    # apt-get autoremove

  6. Execute the command below to be sure that system is up-to-date:

    # plesk sbin pum --update

  7. Run the command to make Plesk up-to-date:

    # plesk installer update

  8. Install aptitude:

    # apt-get install aptitude

  9. Remove repository lists that are related to Plesk:

    # rm -f /etc/apt/sources.list.d/plesk*.list

    Performing the dist-upgrade

  10. 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:

    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

  11. Make installer to create Plesk sources list for Ubuntu 22.04:

    # plesk installer --override-os-version 22.04 --check-updates --skip-cleanup

  12. 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

  13. Add the string below into the /etc/mysql/my.cnf file under [mysqld] section:

    innodb_fast_shutdown=0

  14. Restart MariaDB/MySQL service to apply the changes:

    # systemctl restart mariadb || systemctl restart mysql

  15. 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:

      Note: In case that the server already runs a higher version of MariaDB than 10.6, remove mariadb-server-10.6 from the below command before run.

      # aptitude install base-files linux-generic libc6 python3 mariadb-server-10.6

    • For MySQL:

      Note: In case that the server already runs a higher version of MySQL than 8.0, remove mysql-server-8.0 from the below command before run.

      # 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:
    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

  16. Remove line below from the /etc/mysql/my.cnf file:

    innodb_fast_shutdown=0

  17. Reboot the server:

    # reboot

  18. Wait some time for the server to reboot, then connect to the server via SSH
  19. Switch to root user:

    # sudo su -

  20. Execute the command below to get Plesk build for Ubuntu 22.04:

    # plesk installer update --skip-cleanup

  21. Update the Plesk extensions:

    # plesk bin extension -l | egrep '(panel-migrator|site-import|docker|grafana)'| awk {'print $1'} | xargs -i plesk bin extension -i {}

  22. Complete distupgrade process:

    # apt-get dist-upgrade

    Note: leave the configurations for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.

  23. Optional step: Remove unused packages:

    # apt-get autoremove

  24. Optional step: Purge the configuration files of the removed packages:

    # apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`

  25. Restore the Plesk packages configuration:

    # plesk installer update

  26. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  27. Reboot the server:

    # reboot

  28. Wait some time for the server to reboot and check that Plesk and all its services are working.
Dist-upgrade from Ubuntu 18 to Ubuntu 20 - Automated tool process

Preparing server for upgrade: To avoid extra downtime and/or data loss, make sure to read and understand the following information before using the distupgrade tool:

  • Remote management module must be installed on the server, because in some tests the sshd service could not be started during the process.
  • Read the list of Known issues or limiters for the tool here.
  • Once downloaded check the general stages of the tool with ./ubuntu18to20 --help and the detailed plan with ./ubuntu18to20 --show-plan output. More information can be found here.

Using the tool to upgrade from Ubuntu 18 to Ubuntu 20:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server:

    # wget https://github.com/plesk/ubuntu18to20/releases/download/v2.2.3/ubuntu18to20-2.2.3.zip
    # unzip ubuntu18to20-2.2.3.zip
    # chmod 755 ubuntu18to20

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background with the following command:

    # screen -S ubuntu18to20

    3.1 Run the tool convert stage by running the tool with the next command. Note that this process may reboot the server a several times:

    # ./ubuntu18to20

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r ubuntu18to20

  4. Reconnect to the server after the convert stage completes (around 20-30 minutes) and monitor the finish stage with:

    # ./ubuntu18to20 --status

    or

    # ./ubuntu18to20 --monitor

    • Alternatively the status can be tracked by checking the log file at /etc/motd. Once the process completes the following message will be observed:

      Message from the Plesk ubuntu18to20 tool:
      The server has been upgraded to Ubuntu 20.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with ./ubuntu18to20 --resume option. If the interruption was after the first reboot, restart the process running systemctl restart plesk-dist-upgrader.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./ubuntu18to20 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure be solved try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade take place because packages provided by Ubuntu 20 already installed. Check the status of the conversion process and monitor its progress

Dist-upgrade from Ubuntu 18 to Ubuntu 20 - Manual step by step process

Warning: The dist-upgrade process from Ubuntu 18.04 to Ubuntu 20.04 is supported since 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

  1. Remote management module must be installed on the server (This is because, in some tests, sshd service could not be started during the process)
  2. Connect and perform the process connected as root or by using the # su - or # sudo su -command.
  3. 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

  4. Temporary install msmtp component instead of Postfix. It can be done through Plesk installer or by using the command:

    # plesk installer add --components msmtp

    Note: this action will remove Postfix, Dovecot, SpamAssassin and Mailman components

  5. In case the extension “TuxCare Extended Lifecycle Support” is installed, this needs to be removed with:

    # plesk bin extension -u tuxcare-els

  6. Add to the mariadb config file /etc/mysql/mariadb.conf.d/50-server.cnf the string innodb_fast_shutdown=0 in the [mysqld] section. In case MySQL is installed, add the string into /etc/mysql/my.cnf in the [mysqld] section.
  7. Restart the DB server to apply changes:

    # systemctl restart mariadb || systemctl restart mysql || systemctl restart mysqld

  8. Make sure that update-manager-core package is installed:

    # apt-get install update-manager-core

  9. Update the current system to the latest available version:

    # apt-get update && apt-get upgrade

  10. 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

  11. Stop grafana service:

    # systemctl stop grafana-server.service

    Performing the dist-upgrade

  12. 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 all

    Note: 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 version x.y.z is the current Plesk installed version, which can be found in the output of the command:

    # plesk -v

  13. Update the repositories:

    # apt-get update

  14. Upgrade the kernel:

    # apt-get install linux-generic

  15. Update MariaDB to the next major version provided by the vendor:

    Note: In case that the server already runs a higher version of MariaDB than 10.3 or MySQL than 5.7, skip this step.

    # 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.

  16. In the mariadb config file /etc/mysql/mariadb.conf.d/50-server.cnf remove the string innodb_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.
  17. 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:

    18.1. At line 26 in the /lib/systemd/system/systemd-udevd.service file, the following string should be changed:

    From:

    ExecReload=udevadm control --reload --timeout 0

    To:

    ExecReload=/bin/udevadm control --reload --timeout 0

    18.2. Then execute the following command:

    # apt-get -f install

  18. Install Systemd package:

    # apt-get install systemd

  19. 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

  20. Remove packages that were installed by dependencies and not needed anymore and LXD:

    # apt-get autoremove
    # apt purge lxd lxd-client

  21. Upgrade packages:

    # apt-get upgrade

    Note: When prompted, you should keep the previous version of Spamassassin configuration file.

  22. Remove packages that were installed by dependencies and not needed anymore:

    # apt-get autoremove

  23. 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)

  24. Remove packages that were installed by dependencies and not needed anymore:

    # apt-get autoremove

  25. Update Plesk to the next available version finishing the dist-upgrade process:

    # plesk installer update

  26. Fix the Bind DNS server defaults file:

    # cp /etc/default/bind9 /etc/default/named

  27. 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

  28. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  29. Reboot the server:

    # shutdown -r now

  30. Check that Plesk and all its services are working.
Dist-upgrade from Ubuntu 16 to Ubuntu 18

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

  1. 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)
  2. Update the current system to the latest available versions:

    # apt-get update && apt-get upgrade

  3. Add to the mariadb config file /etc/mysql/mariadb.conf.d/50-server.cnf the string innodb_fast_shutdown=0 in the [mysqld] section. In case MySQL is installed, add the string into /etc/mysql/my.cnf in the [mysqld] section.
  4. 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.

  5. Remove packages that are no longer supported:

    # apt-get remove samba-common samba-libs samba-vfs-modules

  6. 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

  7. 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 stable

    Note: 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 version x.y.z is the current Plesk installed version, which can be found in the output of the command:
    # plesk -v

  8. Update the repositories:

    # apt-get update

  9. Upgrade the kernel:

    # apt-get install linux-generic

  10. Remove the string innodb_fast_shutdown=0 in the [mysqld] section, added in step 4. of section "Preparing server for upgrade" above.
  11. Reboot the server

    # reboot

  12. Install packages dpkg and apt

    # apt-get install dpkg apt

  13. Upgrade all possible packages:

    # apt-get upgrade

  14. When prompted, choose to keep local version config installed for:
    • /opt/psa/etc/apparmor.d/usr.lib.dovecot.dovecot-lda
    • /etc/awstats/awstats.conf
  15. Execute the dist-upgrade process:

    # apt-get dist-upgrade

  16. 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.

    1. Disable it by removing file /etc/apache2/mods-enabled/proxy_http.load

      # rm /etc/apache2/mods-enabled/proxy_http.load

    2. Start apache:

      # systemctl start apache2.service

  17. 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-*
  18. It is safe to install the maintainer's version for the configuration files below when prompted:
    • /etc/apparmor.d/*
    • /etc/ssh/sshd_config
  19. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  20. Reboot the server.

    # reboot

  21. Check that Plesk and all its services are working.

 

Debian Distributions
Dist-upgrade from Debian 12 to Debian 13 - Automated tool process

Preparing server for upgrade: To avoid extra downtime and/or data loss, make sure to read and understand the following information before using the distupgrade tool:

  • Remote management module must be installed on the server, because in some tests the sshd service could not be started during the process.
  • Read the list of Known issues or limiters for the tool here.
  • Once downloaded check the general stages of the tool with ./debian12to13 --help and the detailed plan with ./debian12to13 --show-plan output.
  • More information can be found here.

Using the tool to upgrade from Debian 12 to Debian 13:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server:

    # wget https://github.com/plesk/debian12to13/releases/download/v1.0.1/debian12to13-1.0.1.zip
    # unzip debian12to13-1.0.1.zip
    # chmod 755 debian12to13

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background with the following command:

    # screen -S debian12to13

    3.1 Run the dist upgrade convert stage by running the tool with the next command. Note that this process may reboot the server a several times:

    # ./debian12to13

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r debian12to13

  4. Reconnect to the server after the above stage completes (around 20-30 minutes) and monitor the status with:

    # ./debian12to13 --status

    or

    # ./debian12to13 --monitor

    • Alternatively the status can be tracked by checking the log file at /var/log/plesk/debian12to13.log. Once the process completes the following message will be observed:

      CONFIG_TEXT: Message from the Plesk debian12to13 tool:
      The server has been upgraded to Debian 13.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with ./debian12to13 --resume option. If the interruption was after the first reboot, restart the process running systemctl restart plesk-dist-upgrader.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./debian12to13 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure be solved try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade take place because packages provided by Debian 13 already installed. Check the status of the conversion process and monitor its progress

Dist-upgrade from Debian 11 to Debian 12 - Automated tool process

Preparing server for upgrade: To avoid extra downtime and/or data loss, make sure to read and understand the following information before using the distupgrade tool:

  • Remote management module must be installed on the server, because in some tests the sshd service could not be started during the process.
  • Read the list of Known issues or limiters for the tool here.
  • Once downloaded check the general stages of the tool with ./debian11to12 --help and the detailed plan with ./debian11to12 --show-plan output. More information can be found here.

Using the tool to upgrade from Debian 11 to Debian 12:

  1. Connect to the server via SSH as root or other sudoer user and run sudo su -.
  2. Download and extract the latest tool version into the server:

    # wget https://github.com/plesk/debian11to12/releases/download/v1.0.3/debian11to12-1.0.3.zip
    # unzip debian11to12-1.0.3.zip
    # chmod 755 debian11to12

  3. In order to monitor the conversion process, we recommend using the 'screen' utility to run the tool in the background with the following command:

    # screen -S debian11to12

    3.1 Run the dist upgrade convert stage by running the tool with the next command. Note that this process may reboot the server a several times:

    # ./debian11to12

    Note: In case the SSH connection to the server is lost, reconnect to the screen session by running screen -r debian11to12

  4. Reconnect to the server after the above stage completes (around 20-30 minutes) and monitor the status with:

    # ./debian11to12 --status

    or

    # ./debian11to12 --monitor

    • Alternatively the status can be tracked by checking the log file at /var/log/plesk/debian11to12.log. Once the process completes the following message will be observed:

      Message from the Plesk debian11to12 tool:
      The server has been upgraded to Debian 12.
      You can remove this message from the /etc/motd file.

Note: If the process was interrupted before the first reboot, restart it with ./debian11to12 --resume option. If the interruption was after the first reboot, restart the process running systemctl restart plesk-dist-upgrader.

Note: If the operation fails before the distupgrade performs during the conversion stage, run ./debian11to12 --revert to restore Plesk to normal operation. The tool will attempt to undo some of the changes it made and restart Plesk services. Once the root cause of the failure be solved try the conversion again.

Warning: Revert cannot be used to undo the changes after the distupgrade take place because packages provided by Debian 12 already installed. Check the status of the conversion process and monitor its progress

Dist-upgrade from Debian 11 to Debian 12 - Manual step by step process

Warning: The dist-upgrade from Debian 11 to Debian 12 is supported since Plesk Obsidian 18.0.57 version.

Warning: The dist-upgrade process from Debian 11 to Debian 12 is supported with MariaDB scenario only.

  1. Connect to the server and perform the process connected as root or by using the # su - or # sudo su -command.
  2. Uninstall unsupported components like 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

  3. Remove packages which were installed by dependencies but aren't required:

    # apt-get autoremove

  4. Execute the command below to be sure that system is up-to-date:

    # plesk sbin pum --update

    OR

    # apt-get update && apt-get upgrade

  5. Run the command to make Plesk up-to-date:

    # plesk installer update

  6. Install aptitude:

    # apt-get install aptitude

  7. Remove repository lists that are related to Plesk:

    # rm -f /etc/apt/sources.list.d/plesk*.list

  8. Replace bullseye sources lists with bookworm ones in /etc/apt/sources.list and /etc/apt/sources.list.d/*.list:

    Note: below is the example for /etc/apt/sources.list file:

    deb http://deb.debian.org/debian bookworm main contrib non-free
    deb-src http://deb.debian.org/debian bookworm main contrib non-free

    deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free
    deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free

    deb http://deb.debian.org/debian bookworm-updates main contrib non-free
    deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free

  9. Make installer to create Plesk sources list for Debian 12:

    # plesk installer --override-os-version 12 --check-updates --skip-cleanup

  10. Change bind-address in the /etc/mysql/my.cnf to accept IPv4 connections (From 10.6.0 :: refers to IPv6 strictly):

    bind-address = ::ffff:127.0.0.1

    To:

    bind-address = 127.0.0.1

  11. Add string below into the /etc/mysql/my.cnf file under [mysqld] section:

    innodb_fast_shutdown=0

  12. Restart MariaDB service to apply the changes:

    # systemctl restart mariadb

  13. Install modern kernel, libc6, python3, mariadb packages with the command:

    Note: In case that the server already runs a higher version of MariaDB e.g. 10.6, remove mariadb-server-10.5 from the below command before run.

    # 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 python3-debianbts [3.1.0 (now)]2 python3-pycurl [7.43.0.6-5 (now)]3 python3-pysimplesoap [1.16.2-3 (now)]4 python3-reportbug [7.10.3+deb11u1 (now)]5 reportbug [7.10.3+deb11u1 (now)]

    Note: when you will be asking to overwrite sshd configuration, left it as is. Also allow automatic restart for services

  14. Remove line below from the /etc/mysql/my.cnf file:

    CONFIG_TEXT: innodb_fast_shutdown=0

  15. Reboot the server
  16. Execute the command below to get Plesk build for Debian 12 OS:

    # plesk installer update --skip-cleanup

  17. 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 {}

  18. Complete distupgrade process:

    # apt-get dist-upgrade

    **Note**: leave configuration for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.
    

    18.1 Optional step: Remove unused packages:

    # apt-get autoremove

    18.2 Optional step: Purge the configuration files of the removed packages:

    # apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`

  19. Restore the Plesk packages configuration:

    # plesk installer update

  20. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  21. Reboot the server
Dist-upgrade from Debian 10 to Debian 11

Warning: The dist-upgrade from Debian 10 to Debian 11 is supported since Plesk Obsidian 18.0.42 version.

Warning: The dist-upgrade process from Debian 10 to Debian 11 is supported with MariaDB scenario only.

  1. Connect to the server and perform the process connected as root or by using the # su - or # sudo su -command.
  2. 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

  3. Remove packages which were installed by dependencies but aren't required:

    # apt-get autoremove

  4. Execute the command below to be sure that system is up-to-date:

    # plesk sbin pum --update

    OR

    # apt-get update && apt-get upgrade

  5. Run the command to make Plesk up-to-date:

    # plesk installer update

  6. Install aptitude:

    # apt-get install aptitude

  7. Remove repository lists that are related to Plesk:

    # rm -f /etc/apt/sources.list.d/plesk*.list

  8. Replace buster sources lists with bullseye 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

  9. Make installer to create Plesk sources list for Debian 11:

    # plesk installer --override-os-version 11 --check-updates --skip-cleanup

  10. Add string below into the /etc/mysql/my.cnf file under [mysqld] section:

    CONFIG_TEXT: innodb_fast_shutdown=0

  11. Restart MariaDB service to apply the changes:

    # systemctl restart mariadb

  12. Install modern kernel, libc6, python3, mariadb packages with the command:

    Note: In case that the server already runs a higher version of MariaDB e.g. 10.6, remove mariadb-server-10.5 from the below command before run.

    # 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

  13. Remove line below from the /etc/mysql/my.cnf file:

    CONFIG_TEXT: innodb_fast_shutdown=0

  14. Reboot the server
  15. Rename configuration from bind9 to named:

    # mv /etc/default/bind9 /etc/default/named

  16. Execute the command below to get Plesk build for Debian 11 OS:

    # plesk installer update --skip-cleanup

  17. 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 {}

  18. Complete distupgrade process:

    # apt-get dist-upgrade

    Note: leave configuration for Postfix, PAM, rsyslog, SpamAssassin, cloud-init and other services as is.

  19. Optional step: Remove unused packages:

    # apt-get autoremove

  20. Optional step: Purge the configuration files of the removed packages:

    # apt-get purge `dpkg -l | grep "^rc" | awk '{print $2}'`

  21. Restore the Plesk packages configuration:

    # plesk installer update

  22. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  23. Reboot the server
Dist-upgrade from Debian 9 to Debian 10

Warning: dist-upgrade from Debian 9 to Debian 10 is supported since 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.

  1. Connect and perform the process connected as root or by using the # su - or # sudo su -command.
  2. 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

  3. 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

  4. Add to the mariadb/mysql config file (Usually /etc/mysql/my.cnf) the string innodb_fast_shutdown=0 in the [mysqld] section.
  5. Restart the DB server to apply changes:

    # systemctl stop mariadb.service ; systemctl start mariadb.service

  6. Update the current system to the latest available versions:

    # apt-get update && apt-get upgrade

  7. 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

  8. Stop grafana service:

    # systemctl stop grafana-server.service

  9. Replace stretch sources lists with buster 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

  10. 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

  11. Temporarily add the following Plesk repositories (e.g. vi /etc/apt/sources.list.d/plesk_temp.list):

    deb https://autoinstall-archives.plesk.com/pool/PSA_18.0.44_9078/ buster alldeb 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

  12. Run apt update to refresh the repositories:

    # apt update

  13. 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.

  14. Remove the temporary sources file created in step 12 (e.g. rm /etc/apt/sources.list.d/plesk_temp.list).
  15. Run plesk installer to update the current packages:

    # plesk installer update --source http://autoinstall-archives.plesk.com

  16. 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

  17. Run apt update again:

    # apt update

  18. Update MariaDB to the next major version provided by the vendor:

    Note: In case that the server already runs a higher version of MariaDB than 10.3, skip this step.

    # apt-get install mariadb-server-10.3

    Warning: MariaDB/MySQL may not start till the reboot is performed.

  19. 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.
  20. When AppArmor was installed, bind service fails to start with permission denied shown at systemctl status bind9 output:

    Resolve it by either disabling AppArmor with following commands or reconfigure AppArmor:

    systemctl stop apparmor
    systemctl restart bind9

  21. Reboot the server to the new kernel:

    # shutdown -r now

  22. Clean packages installed by dependencies and not needed anymore:

    # apt-get autoremove

  23. 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-curlplesk-mail-pc-driver``postfixpsa-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

  24. 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

  25. Run the repair command below to run all needed upgrade scripts:

    # plesk repair installation

  26. Check that Plesk and all its services are working.
  27. Use the following commands to regenerate web server as well as DNS configuration files if needed:

    # plesk repair web
    # plesk repair dns

Was this article helpful?

Comments

32 comments
Date Votes
  • Hi Rick,

    Thank you for bringing this to our attention.

    I've reported the situation with the automated tool for such scenarios and I'm also reviewing the possibilities for a manual process as an alternative. 

    I will get back with updates here once available.
    Regards.

    0
  • In the meantime I did the update manually. Basically with the same steps as in the 11 > 12 upgrade instructions. Ofcourse then leaving out the mariadb part.

    Since debian 13 does not have mysql 8.0, just make sure you do the mysql 8.0 > 8.4 update on Debian 12 before the os upgrade.

    1

Please sign in to leave a comment.