This document will help guide you through upgrading a Debian 7 (Wheezy) server to a Debian 8 (Jessie) server.
We highly recommend that you perform all of these steps on a test system before making changes to your production server -- that way, you can minimize downtime by knowing what all to expect.
These steps are a succinct version of the full Debian upgrade guide available here: http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.en.html
You should plan for some downtime -- there are big differences between the two distributions, and things don't always go as smoothly as we'd hope. The Debian release notes suggest making sure you have console access during the upgrade process, as certain changes could potentially cause issues during the boot process.
Make sure you have full backups of everything on your server that's important to you. At the very least, you'll want to generate full backups of all your Virtual Servers. You may also want to make a backup of everything in /etc. Additionally, the Debian release notes suggest backing up /var/lib/dpkg and /var/lib/apt/extended_states prior to an upgrade.
Make sure your system is fully up to date by running this command:
apt-get update && apt-get upgrade
Verify that it finishes completely and without errors.
Run this command to see if there are any packages in an incomplete state:
If there are, you'll need to fix those packages before continuing with the upgrade.
**Reset Dependency Flags**
These packages are already installed, but the following command will tell apt not include them anytime "apt-get autoremove" is run:
apt-get install bind9 spamassassin spamc procmail libnet-ssleay-perl libpg-perl libdbd-pg-perl libdbd-mysql-perl quota iptables openssl python mailman subversion ruby irb rdoc ri mysql-server mysql-client mysql-common postgresql postgresql-client awstats webalizer proftpd webmin usermin webmin-virtual-server libcrypt-ssleay-perl webmin-virtual-server-theme webmin-virtualmin-dav webmin-virtualmin-svn webmin-virtualmin-awstats webmin-virtualmin-mailman webmin-virtualmin-htpasswd clamav-base clamav-daemon clamav clamav-freshclam clamav-docs clamav-testfiles libapache2-mod-fcgid scponly apache2 apache2-doc libapache2-svn libsasl2-2 libsasl2-modules sasl2-bin usermin-virtual-server-theme procmail-wrapper php-pear php5 php5-cgi webmin-security-updates
Edit `/etc/apt/sources.list`, and change any reference of *wheezy* to *jessie*.
**Third party repositories**
Also in `/etc/apt/sources.list`, if you happen to have any third party repositories enabled, such as DotDeb, you may want to comment those out until after the upgrade.
**Update Package Metadata**
Update the package metadata by running:
**Note Regarding Prompts**
The next few steps will have you installing various packages. Some of those will ask you questions. The defaults to those questions are typically fine. That said -- be sure to fully read all the questions so that you understand what changes are being made.
You can now begin the upgrade process with this command:
That will take some time to run, but it will ask you questions along the way, so you'll need to babysit the process.
When the upgrade completes, perform a reboot. When your system comes back online, there's just a few more things to change.
There were some significant changes made to Apache. You'll need to make the following updates to /etc/apache2/apache2.conf:
Comment out the following lines that appear in the apache2.conf:
Comment out this line from `/etc/apache2/mods-enabled/ssl.conf`:
Re-enable Apache modules that were automatically disabled during the upgrade:
Then restart Apache:
service apache2 restart
**Log into Virtualmin**
Log into Virtualmin, and you should see a notice at the top where it detects the change to Debian 8. Click the `Update Detected Operating System` button.
Next, go into System Settings, and run the Re-Check Config, and verify that it doesn't detect any problems.
You should now be finished. Now is the time to test everything and make sure it all works as expected!