Updating ISPConfig 3.1 to ISPConfig 3.2

This tutorial explains the steps to update an ISPConfig 3.1 server to ISPConfig 3.2. This tutorial is compatible with the operating systems CentOS, Debian and Ubuntu.

Please see ISPConfig 3.2 release notes for a list of new features and additional information on ISPConfig 3.2 release.

Check ISPConfig 3.2 system Requirements

ISPConfig 3.2 is compatible with the following operating system versions:

  • CentOS 7
  • CentOS 8
  • Debian 9
  • Debian 10
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Does ISPConfig 3.2 work on older OS?

It might be that it works if the installed default PHP version is min. PHP 5.4. We did not test older versions and you might have to adjust config files manually when they contain settings that are not supported by old software versions that might be in use on a non-supported os.

Install new software dependencies

Some of the features in ISPConfig 3.2 require additional software. This software should be installed before you start the update.

For Debian and Ubuntu

sudo apt-get install bzip2 p7zip-full xz-utils lzip rar unrar-free goaccess dovecot-lmtpd

Note: The rar and unrar-free packages is not available on ARM architecture. This means that the rar mode for website backups won't work, other functions are not affected.

For CentOS 7

sudo yum -y install ncurses-devel gcc geoip-devel tokyocabinet-devel lbzip2 p7zip xz-libs lzip
cd /tmp
wget http://tar.goaccess.io/goaccess-1.4.tar.gz
tar xfz goaccess-1.4.tar.gz
cd goaccess-1.4
sudo ./configure --enable-utf8 --enable-geoip=legacy
sudo make
sudo make install
sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

For CentOS 8

dnf install ncurses-devel gcc geoip-devel tokyocabinet-devel lbzip2 p7zip p7zip-plugins xz-libs lzip
cd /tmp
wget http://tar.goaccess.io/goaccess-1.4.tar.gz
tar xfz goaccess-1.4.tar.gz
cd goaccess-1.4
sudo ./configure --enable-utf8 --enable-geoip=legacy
sudo make
sudo make install
sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

CentOS 7 and 8

There is no free rar package for CentOS on centOS or Epel repository, only a trial version from rarlab. If you want to install it nonetheless, here are the installation steps. Rar is optional and only used as archive option for website backups. When you do not install it, then just rar as a backup format option will not work.

cd /tmp
wget https://www.rarlab.com/rar/rarlinux-x64-5.9.1.tar.gz
tar -zxvf rarlinux-x64-5.9.1.tar.gz
cd rar
sudo cp -v rar unrar /usr/local/bin/

Check for custom configuration file templates

ISPConfig supports custom configuration file templates that are stored in the folder /usr/local/ispconfig/server/conf-custom/. If you created any config templates there, then it's likely that they are not compatible with ISPConfig 3.2. Either remove them (recommended) or create new ones based on the configuration files that ship with ISPConfig 3.2.

You can check if there are custom config files with these commands:

ls -la /usr/local/ispconfig/server/conf-custom/

If the result is like this, then you don't have any custom config file templates:

[[email protected] tmp]# ls -la /usr/local/ispconfig/server/conf-custom/
total 8
drwxr-x---.  6 root root   76 Oct  1 00:02 .
drwxr-x---. 13 root root 4096 Oct  1 00:02 ..
-rwxr-x---.  1 root root   45 Oct  1 00:02 empty.dir
drwxr-x---.  2 root root   23 Oct  1 00:02 error
drwxr-x---.  2 root root   23 Oct  1 00:02 index
drwxr-x---.  2 root root   23 Oct  1 00:02 install
drwxr-x---.  2 root root   23 Oct  1 00:02 mail

So there is nothing to do in this case.

Next, check the install folder:

ls -la /usr/local/ispconfig/server/conf-custom/install/

The following result shows and empty folder without any custom templates:

[[email protected] tmp]# ls -la /usr/local/ispconfig/server/conf-custom/install/
total 4
drwxr-x---. 2 root root 23 Oct  1 00:02 .
drwxr-x---. 6 root root 76 Oct  1 00:02 ..
-rwxr-x---. 1 root root 45 Oct  1 00:02 empty.dir

So no custom templates here that need to be removed or adjusted.

Let's Encrypt for ISPConfig port 8080, Postfix, Dovecot and pure-ftpd

If you have manually configured a Let's Encrypt certificate for the ISPConfig vhost and services like postfix, dovecot, and pure-ftpd, then this might conflict with the new Let#s encrypt functionality that ISPConfig provides for these services. Either keep your old let#s encrypt setup by choosing 'no' when the ISPConfig Updater asks if it shall recreate the SSL Cert, or take care to remove any custom Let's encrypt renewal scripts that you might have installed which might interfere with the new function in ISPConfig.

Update ISPConfig 3.1 to 3.2

Now we can start the update process. The update needs to be run as root user, for Debian, use:

su -

to become root user.

For CentOS and Ubuntu, use:

sudo -s

to become root.

Then the ISPConfig update is started with the command:


Choose "stable" as the update source in the dialog that appears on the screen:

ISPConfig stable update

Note: the available update options differ, depending on your old ISPConfig version. But there is always an option named stable.

The update process will ask a few questions, which are shown below. I've highlighted the recommended answers in red.

 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
 _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |

>> Update

Operating System: Ubuntu 20.04.1 LTS (Focal Fossa)

This application will update ISPConfig 3 on your server.

Shall the script create a ISPConfig backup in /var/backup/ now? (yes,no) [yes]: yes

Creating backup of "/usr/local/ispconfig" directory...
Creating backup of "/etc" directory...
Checking ISPConfig database .. OK
Starting incremental database update.
Loading SQL patch file: /tmp/ispconfig3_install/install/sql/incremental/upd_dev_collection.sql
Reconfigure Permissions in master database? (yes,no) [no]: <-- On multiserver systems, choose yes, on single server systems, choose no.

Reconfigure Services? (yes,no,selected) [yes]: yes

Configuring Postfix
Configuring Dovecot
Configuring Mailman
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Apps vhost
Configuring Jailkit
Configuring Ubuntu Firewall
Configuring Database
Updating ISPConfig
ISPConfig Port [8080]: <-- just hit return to accept the default

Create new ISPConfig SSL certificate (yes,no) [no]: <-- Choose no to keep existing SSL cert, choose yes to create new SSL cert or switch from self-signed to a Let's encrypt SSL certificate.

Reconfigure Crontab? (yes,no) [yes]: yes

Updating Crontab
Restarting services ...
Update finished.

Don't worry when you see some other "Configuring ..." lines, the actual result depends on the software setup of your server.

Need help with the update?

If you need any help with the update, if you have any additional questions on the update process or if you encounter issues after you updated your system, then please make a post that describes your issue in the ISPConfig support forum here at howtoforge:


Please do not use the comment function below this article for individual support questions.

Something went completely wrong and you want to revert to the previous setup?

The ISPConfig updater creates a backup of the whole /etc directory (so all of your config files), the directory /usr/local/ispconfig (the whole previous ISPConfig installation) and the ISPConfig dbispconfig MySQL/MariaDB database. The backup can be found in the folder /var/backup/ there is a sub folder starting with 'ispconfi_' plus server hostname and date of the update. Example:

[[email protected] ~]# ls /var/backup/

This folder contains the file backups as tar.gz files and a SQL dump:

[[email protected] ~]# ls /var/backup/ispconfig_server1.example.com_2020-10-15_19-38/
etc.tar.gz  ispconfig_db_backup.sql  ispconfig_software.tar.gz

Share this page:

Suggested articles

17 Comment(s)

Add comment


By: Marcus at: 2020-10-15 16:48:10

Is billing update needed before this ?

By: till at: 2020-10-15 16:51:44

The Billing module works with 3.2, there are no extra steps for the update needed. If you encounter any issues in Billing module with ISPConfig 3.2, then contact me directly by email or ispconfig.org ticket system.

By: nhybgtvfr at: 2020-10-16 09:20:51

can we update servers with any older 3.1 version directly to 3.2 or do we need to update through any intervening versions first, ie, eg 3.13 -> 3.2  or 3.1.13 -> 3.1.14 -> 3.1.15 -> 3.1.15.p3

By: till at: 2020-10-16 09:38:20

You can update directly to 3.2 from any 3.1 version.

By: Steffan at: 2020-10-16 11:28:20

7z was not working on centos 8

After installing  p7zip-plugins   it works.

By: IceManXS at: 2020-10-17 19:33:57

v3.2 is out! Thank you for your great work!

I updated my test VM just a few hours ago. Now I tried it again on my production VM and got the following error.

PHP Parse error:  syntax error, unexpected '[' in  tmp/update_stable.sh.91aIasfVBa/ispconfig3_install/install/lib/installer_base.lib.php on line 251

Seems there is something wrong now. Did you change something in the last 3 hours or is the problem on my site?

By: David at: 2020-10-18 10:52:33

Is the recommended update order for multi-server setups still secondary server first and primary server last?

By: till at: 2020-10-18 19:00:01

I'll recommend updating master first now. You can set the master to maintenance mode to avoid that customers change settings until the slave nodes are updated.

By: IceManXS at: 2020-10-19 14:03:55

Sorry for my comment yesterday. Wrong site for this kind of question and the problem was my fault. Forgot to switch System PHP back to v7.2 because of testing a old v5.3 with phpBrew.

By: testbeta at: 2020-10-21 21:30:13

Why are Ubuntu/Debian OS-es recommend over CentOS? What are the major caveats? Is this only because of RAR?

By: Aldo Giove at: 2020-10-24 22:55:30


Hi all,

I tried to update from 3.15 to 3.2 but probably I made some errors (I didn't install new package prior to upgrade). Result: after upgrade I can't access ISPConfig panel anymore (500 Internal Server Error).

I tried to revert back to previous ISPConfig version, by restoring the dbispconfig database and all /usr/local/ispconfig files to their previous version, but no luck: still 500 Internal Server Error. I didn't restore /etc files from backup, in order not to make more troubles, since I guess that all /etc files aren't strictly related to the ISPConfig version.

Question: how do I revert back to a functional ISPConfig, even on previous version?

Thank you very much.


By: .vince at: 2020-10-25 08:39:20

Under Debian Buster I had "The following formats can not be used because they are not installed on the webserver: 7z " in Backup tab "compression options".

I got rid of it by installing p7zip-full

By: HSorgYves at: 2020-10-25 10:41:19

What about pigz? Shouldn't we install that package too on Debian?

By: till at: 2020-10-26 07:50:44

@Aldo: Please use the ISPConfig forum here at howtoforge to get support. A 500 error is caused by a failure in your PHP or apache/nginx setup, so a rollback of the update is probably the wrong solution. Look at the webserver error.log of your system to find out what is causing the issue and solve it. Besides that, a partial rollback without restoring etc can't work, that's why your issue is not solved by the partial restore you made.

By: Aldo Giove at: 2020-10-26 10:37:47

@till sorry for posting in the wrong place, I was quite nervous for the things not going well. :-)

Just for information, the problem was solved in the meantime: despite PHP7 was installed, the package php7.0-cgi was missing, so I installed it and the panel came back. Now it appears working without issues.

Thanks a lot and keep up the good work.


By: Carth at: 2020-10-26 16:54:50


after ugrade on Debian 9 autoresponder does not works. What can I do or how can I track why?

Thank you.

By: manu at: 2020-10-31 10:58:20

thank you so much.I had 500 errors after update from 3.1 to 3.2 and the comment helped me.

The one who said to install "php7.0-cgi".

Now it work