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

24 Comment(s)

Add comment


By: Marcus

Is billing update needed before this ?

By: till

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

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

You can update directly to 3.2 from any 3.1 version.

By: Steffan

7z was not working on centos 8

After installing  p7zip-plugins   it works.

By: IceManXS

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

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

By: till

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

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

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

By: Aldo Giove


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

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

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

By: till

@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

@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


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

Thank you.

By: manu

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

By: Bashewa

I had 500 internal error to ISPconfig panel on Debian 9 , installing php7.0-cgi fixed it 

By: Florin

Hello, everyone!First of all i want to say: Thank You Till for your work!

As I saw here, I secured ISPconfig by creating the ISPConfig Server site using its host name.

I didn't use a separate script to renew the certificate, but I checked the "Let's Encrypt SSL" box in ispconfig when I created the site.

Then I followed the steps in the "Using the Same Encrypt SSL Certificates for Other Major Services" section (from same tutorial) to use the same certificate for other services. Then I created the script that monitors the certificate renewal, as it appears in the section "[Creating an automatic renewal script for your ISPConfig Pem file (ispserver.pem)]"

From what I could understand from the steps I followed, I did nothing but use the certificate used for the FQDN site, creating links to them for each service I want SSL-ed and, using the icron service, I run the script "Le4ispc_pem.sh" which backs up and creates the ispserver.pem file and restarts the services to use the new certificate. Am I right?

If so, the question now is: do I need to disable icron or make other changes if I choose yes to the question "Create a new ISPConfig SSL certificate (yes, no)" or does ISPConfig do exactly the same thing as Icron?


Do I have an advantage if I choose yes? Or does ISPConfig do the same thing with my script when is runned by icron?Thank You

By: Andrei Coada


goaccess package is available for CentOS 7 & 8 through EPEL.

By: wolf6a

Hi I get this error when trying to update to v3.2: Server's public ip (s) ( not found in A / AAAA records for server.wolf6a.com: how do I fix this

Regards // Roffe

By: wolf6a

I am updating from Debian 10 (Nginx, BIND, Dovecot, ISPConfig 3.1



By: Gwyneth Llewelyn

While this is the wrong place to answer (you should use the forums for that!), the problem seems to be that you don't have the reverse DNS set up correctly:

This is the forward DNS, configured correctly:

$ dig server.wolf6a.com


server.wolf6a.com. 7200 IN A

but the reverse DNS is not correct:

$ dig -x

[...] 600 IN PTR 44-233.soderhamn.com.

This is something that you cannot 'fix' locally; rather, you'll have to ask your upstream provider to do it on your behalf (I'm assuming you're using Binero or one of their resellers/partners).

The main reason for making sure that both the forward and the reverse DNS match is because, these days, almost no mail server will accept mail coming from a server with badly configured DNS — for the simple reason that that's how a majority of spammers/scammers configure their machines.

If you're not interested in using your own server for sending and receiving email (i.e. you are able to forward it upstream to your provider for delivery, and, conversely, you can use fetchmail to get email stored elsewhere into your local mailboxes), you might get away with a wrongly configured DNS setup. But that's certainly not recommended: a proper DNS configuration is a requirement for anyone wishing to (re)sell web hosting services (and if you aren't doing that, why would you be so interested in using ISPConfig? ????)

By: Thierry



Suite à la Maj de isconfig 3.1 à suppérieur


j'ai ce message:


[email protected]:~# PHP Warning:  Packets out of order. Expected 1 received 0. Packet size=30 in /tmp/update_runner.sh.a4PzS2UHHR/install/lib/mysql.lib.php on line 207


Avez-vous une idée d'ou cela peut venir.


Quand me connecte au serveur à l'interface en 8080 , j'ai une erreur 500