There is a new version of this tutorial available for Ubuntu 18.04 (Bionic Beaver).

ISPConfig 3.1: Automated installation on Debian and Ubuntu

As you might know, ISPConfig is one of the best free open source hosting control panels available to manage Linux hosting servers in single and multi-server environments.

With version 3.1, a lot of great features were introduced, you can get a full list here at

Today you will see how to deploy and install this amazing control panel with the ispconfig_setup script. This script is available for free on GitHub at, developed and maintained free from Servisys by Matteo Temporini with the help of the community.

The script works on many Linux distributions:

  • Debian 7
  • Debian 8
  • Debian 9
  • Ubuntu 14.10
  • Ubuntu 15.10
  • Ubuntu 16.04
  • Centos 7

In this article, we'll see how to use it to on Ubuntu 16.04.


There are some prerequisites needed to use this script:

  • The installation works only on a fresh installed (empty) server, so if you already had installed something (like Apache, MySql or something else needed by ISPConfig) the install script may not work, or cause strange things.
  • For the installation of the server, before you start, I'll suggest you to follow this guide
  • A working internet connection on your server.

Download and preparation

Now we download and decompress the files needed for the installation, to do so, we execute the following commands as root user:

apt-get update && apt-get -y upgrade
apt-get install -y unzip
cd /tmp
wget --no-check-certificate -O installer.tgz ""
tar zxvf installer.tgz
cd *ispconfig*

Now you have a folder called servisys-ispconfig_setup-SOMETHING in your /tmp directory, SOMETHING will change in form of the version number you are using, but do not bother about that.

ISPConfig 3.1 Installation

Now it's time to install our ISPConfig control panel with the autoinstall script. The script has two install modes: the standard mode and the expert mode.

The two modes are similar, the main difference is that in standard mode the ISPConfig installation is completely unattended, with the expert mode you can configure your ISPConfig for special environments like a multiserver setup, mirror or to select only some services to be configured.

In the standard setup the following components will be installed:

  • Web Server (Apache or Nginx)
  • FTP server (with pureftpd)
  • DNS Server (bind9)
  • MySQL server as database server
  • Awstats for statistics purpose
  • Clamavd for antivirus
  • Let's encrypt for certificate generation
  • IMAP and POP3 (with courier or dovecot)
  • webmail (with RoundCube or squirellmail)
  • ... and obviously ISPConfig

Let's start with the common commands for both modes, then we follow the install process from both modes.

At this point, the process should already be started, we can see the following output

Welcome to ISPConfig Setup Script v.2.2.1
This software is developed by Temporini Matteo
with the support of the community.
You can visit my website at the followings URLS
and contact me with the following information
contact email/hangout: [email protected]
skype: matteo.temporini
ISPConfig 3 System installer

This script will do a nearly unattended intallation of
all software needed to run ISPConfig 3.
When this script starts running, it'll keep going all the way
So before you continue, please make sure the following checklist is ok:

- This is a clean standard clean installation for supported systems
- Internet connection is working properly

The detected Linux Distribution is: Ubuntu 16.04.1 LTS

Is this correct? (y/n)

At this point, the installation process checks your distribution to detect if the installed OS is compatible with the script, in my case, it will detect Ubuntu 16.04.1 LTS.

If it's correct for you press 'y', and now you'll be asked some question before the automated install process will start. If you don't know the answer to a question then choose the default by just hitting enter.

  • You will be asked for the Mysql version: Mysql o Mariadb
  • You will be asked for the MySql password
  • Next, you have to choose between Apache and Nginx
  • Next, you will be asked for Xcache (compression system for PHP)
  • Next, you will be asked for the PHPMyAdmin installation
  • Next, you have to choose between mail server type dovecot or courier
  • Next, you have to choose to update virus definition (recommend to say yes)
  • Next, you have to choose to enable or not quota (recommend to say yes)
  • The last thing at this chapter is standard or expert mode installation

Standard mode

So we choose standard mode installation, the fastest and most easy way to install ISPConfig in a single server setup with all features enabled.

In case that you don't know what to respond to a question, simply hit enter, the defaults are good in most cases.

  • Next you have to choose to install Jailkit (attention: Jailkit as normal installation, could only be installed now)
  • Next you have to write data for you SSL certificate for ispconfig: Country, State, Locality, Organization, Organization Unit
  • Next you'll be asked for SSL Configuration: Country, STATE, Locality, Organization, Organization Unit

Now you can go to take a coffee and relax, waiting for the install process to finish.

When everything is installed you can see something similar on the console:

Checking internet connection... OK

Installing pre-required packages
whiptail found: OK

Updating apt and upgrading currently installed packages... [DONE]

Installing basic packages...
Lettura elenco dei pacchetti...
Generazione albero delle dipendenze...
Lettura informazioni sullo stato...
Il pacchetto "apparmor-utils" non è installato e quindi non è stato rimosso
I seguenti pacchetti saranno RIMOSSI:
apparmor liblxc1 lxc-common lxd snapd ubuntu-core-launcher
0 aggiornati, 0 installati, 6 da rimuovere e 0 non aggiornati.
Dopo quest'operazione, verranno liberati 53,5 MB di spazio su disco.
(Lettura del database... 91867 file e directory attualmente installati.) (Lettura del database...
Rimozione di snapd (2.15.2ubuntu1)...
Warning: Stopping snapd.service, but it can still be activated by:
Rimozione di ubuntu-core-launcher (
Rimozione di lxd (2.0.4-0ubuntu1~ubuntu16.04.1)...
Warning: Stopping lxd.service, but it can still be activated by:
Rimozione di lxc-common (2.0.4-0ubuntu1~ubuntu16.04.2)...
Rimozione di apparmor (2.10.95-0ubuntu2.2)...
Rimozione di liblxc1 (2.0.4-0ubuntu1~ubuntu16.04.2)...
Elaborazione dei trigger per man-db (2.7.5-1)...
Elaborazione dei trigger per libc-bin (2.23-0ubuntu3)...
Reconfigure dash... [DONE]

Installing MySQL... [DONE]

Installing Apache and Modules... [DONE]

Installing PHP and Modules... [DONE]

Installing needed Programs for PHP and Apache... [DONE]

Attention: When asked 'Configure database for phpmyadmin with dbconfig-common?' select 'NO'
Due to a bug in dbconfig-common, this can't be automated.
Press ENTER to continue...

Due to a bug in dbconfig-common we can't automate the PHPMyAdmin installation for now. Hit 'enter' and on the next question select 'NO' (attention because the default is 'YES').

One last question, is required to complete the installation.

As a new feature in ispconfig, native support for Let's encrypt as been introduced, wich allows you to create SSL certificate completely free and supported from all major browser.

To complete the installation of the script certbot you will be prompted with this warning message:

Elaborazione dei trigger per libc-bin (2.23-0ubuntu3)...
Attention: answer no to next Question Dialog
Press ENTER to continue...

After hit "enter" and waiting for some package to be installed you'll be asked for

Letsencrypt screen

Here select "no".

After some time the Ispconfig 3.1 will start install and ask for Mysql Port and Admin password.

You can both times hit enter, or change if you want. In future ispconfig releases, this question will be removed so you can skip this questions.

Expert mode

The only difference with the standard mode is the ISPconfig installation script, that is not automated yet and has to be run manually. As mentioned before, this is necessary for multiserver setups, single server setups that run just some services and cluster setups.

For detailed installation process of ISPConfig, you can refer to the following article

Multiserver and cluster setup considerations

This kind of configuration has been implemented in this script, but for now, they are working only for Debian 8, and no other distributions.

For installation and use you need to have two server,s from where to run this script.

Final consideration

After everything is installed, you can check for errors or strange things with the command

cat /var/log/ispconfig_setup.log

As the script is in constant development any help or suggestion will be appreciated, you can follow us on GitHub at the url, or contact us on ISPconfig forum.

Share this page:

Suggested articles

57 Comment(s)

Add comment


By: Chris

Great! Thanks a lot.

By: Alexandros Ioannides

Very good work. However why install php5 instead of php7 in Ubuntu 16.04? (and PHP7-FPM for nginx setup).

Also, roundcube is missing with nginx setup.

By: Carras

I was getting a 502 error untill I did "apt-get -y install php7.0-fpm".I'm with you, it should install php7-fpm on nginx setup.

By: Michael Kennedy

Thank you for adding Ubuntu 16.04.  Saving me so much time.

By: MikySal78

ling Certbot-auto... /tmp/servisys-ispconfig_setup-cf9d1ed/distros/debian8/ riga 64: certbot-auto: comando non trovato

By: Steve

Installing Certbot-auto... /tmp/servisys-ispconfig_setup-cf9d1ed/distros/debian8/ line 64: certbot-auto: command not found

Same here, bump!

By: Israel

I found one bug. You have to enable client functions inside System > Remote users > Roundcube in order to enable functions like autoreply, change password, forwarding etc inside roundcube.

By: raykai

Let's encrypt is just not working no matter what .... but does work on Debian 7 and 8

By: Jack

Hi.  This is a great script and it saved me a ton of time.  Thanks so much for creating it.  However, when installing on Ubuntu 16.04LTS I get the following error:

Errors were encountered while processing:


Any ideas why that would be happening?

By: Jack

I scrolled back through the install, and found these two error messages:

invoke-rc.d: initscript mysql, action "start" failed.

dpkg: error processing package mysql-server-5.7 (--configure):

 subprocess installed post-installation script returned error exit status 1

dpkg: dependency problems prevent configuration of mysql-server:

 mysql-server depends on mysql-server-5.7; however:

  Package mysql-server-5.7 is not configured yet.


dpkg: error processing package mysql-server (--configure):

 dependency problems - leaving unconfigured

Setting up php7.0-fpm (7.0.8-0ubuntu0.16.04.3) ...

invoke-rc.d: initscript php7.0-fpm, action "start" failed.

dpkg: error processing package php7.0-fpm (--configure):

 subprocess installed post-installation script returned error exit status 1

I am hosting with a container-based VPS provider.

By: Atok

Hi! I successfully installed ISPConfig 3, following this tutorial. But as I was in step "No names were found in your configuration files. ... . Would you like to continue?" I select "yes", and directed to a panel where I have to specify domain, separated by commas, because I can't move my keyboard to "no". I moved, but, It's just not moving.But I just kept hitting enter and left it empty. Then, my question, do I have to reconfigure something in somewhere else? Is my installation healthy? Thanks!

By: jbonlinea

excellent ! works great  thank's

I faced the same issue than Atok, but everythning seems to work well anyway!

By: Raeco

How i can access roundcube in Debian 8 install with nginx

By: Randall Paul Allen

My installation using this script was unsuccessful.  After completion, when I went to I got:

Bad Request


Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please.

Before using this script, I twice tried doing a manual installation on Centos 7,3, using the instructions "The Perfect Server CentOS 7.2 with Apache, Postfix, Dovecot, Pure-FTPD, BIND and ISPConfig 3.1" (  Both of those attempts also gave me the "bad request" error message, which is why I tried the ubuntu script.

Any ideas what I should do to get ispconfig installed (preferably on Centos)?


By: till

The reason for your error is not a problem in the ispconfig installation, it is a problem that you mixed up http and https. Use and not to access ispconfig.

By: Rand

The script does not allow you to select NO after installing let's encrypt.  But it seems like everything is working. 

Are there any new steps that need to be taken? 

Thank You!

By: Hans

Yeah, I'm looking for this too.

In my case just showing Ok and Cancel

By: chipi

How long does the installation? Initial Installation in just four hours.

By: Ahmed

Thanks for the script , but how to navigate from one choice to the other ; also is it possible to replace mariadb with percona after installation , thanks again

By: Yassine

Hello,thank you for all tuto!i had installed this script on my Ubuntu 14.04 LTS server & i have https problem (non secure)also what is the admin user/pass for SquirrelMail ?Regard,

By: concept21

How do I configure phpmyadmin after I have installed ISPConfig with the help of this script?

My system is Ubuntu 16.04, ISPConfig 3.1.2.

By: Dave

So ISPConfig is installed and configured correctly but I have no way of logging in as the root login won't work for the login. Did I miss a configuration step? 

By: till

The ISPConfig administrative username is "admin" and not "root", the default password "admin".

By: Alexander

ISPConfig-Webinterface don't work for me with admin:admin. PHPmyAdmin ist working with "root" and "mysecretpassword"

By: till

The default password is not 'admin' anymore, ISPConfig sets a randowm password during install and the ISPConfig installer shows the password during install. If this auto installer did not show you a password that ISPConfig created, then reset the password as shown here:

By: Rauli

after installing on an Orange Pi board in Armbian mainline 5.35 image, I had to go into http://(your ip address)/phpmyadmin select the dbispconfig database, click "SQL" and enter without quotes "UPDATE sys_user SET passwort = md5('admin') WHERE username = 'admin';" and click GO to reset the admin password after install. admin/admin did not work after fresh install! Also has to edit the to remove installation of clamav which is bloated.

By: Roger Mialkowski

Hello, great script! I am doing a multiserver Debian 8 install. On my secondary (slave) server, I couldn't get connected to the master in the script even though I had the grant privileges lines on the master's database. Turns out I needed to install mysql-server on the secondary (slave) via "apt-get install mysql-server" so that the script could continue. Now it completed successfully. I just have to test everything.


By: Andrew

I am having one issue with this script. I am using it on AWS and at one point it gets stuck trying to assign a FQDN. I get the error msg that the FQDN may not be empty and then it gets stuck in an endless loop. When I do the whole setup from start to finish manually I can input the FQDN in for my AWS instance and then it works. Is there any way I can stop the script and input the proper FQDN?

By: Standy

I want login with admin:admin but not working. Please help

By: xalu

Thank you so muchq!  Saves so much time.

By: kuba

Work this guide (identically) with Debian 9?

By: Harry

This automated installation did not work for me on a fresh Ubuntu 16.04. I reformatted and re-installed the OS 3 times on a VPS and could not get Ispconfig installed this way. The manual install instructions from elsewhere on this website worked fine though.

By: Carlos Valente

Apache doesn't start (ubuntu 16.04.3 - 64Bits, in mode Standard):

service apache2 status

? apache2.service - LSB: Apache2 web server   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)  Drop-In: /lib/systemd/system/apache2.service.d           ??apache2-systemd.conf   Active: inactive (dead) since Sex 2017-10-27 17:50:10 BRST; 1min 51s ago     Docs: man:systemd-sysv-generator(8)  Process: 3386 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)  Process: 3367 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)Out 27 17:50:10 servidor apache2[3367]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:443Out 27 17:50:10 servidor apache2[3367]: (98)Address already in use: AH00072: make_sock: could not bind to address 27 17:50:10 servidor apache2[3367]: no listening sockets available, shutting downOut 27 17:50:10 servidor apache2[3367]: AH00015: Unable to open logs Out 27 17:50:10 servidor apache2[3367]: Action 'start' failed.Out 27 17:50:10 servidor apache2[3367]: The Apache error log may have more information.Out 27 17:50:10 servidor apache2[3367]:  *Out 27 17:50:10 servidor apache2[3386]:  * Stopping Apache httpd web server apache2Out 27 17:50:10 servidor apache2[3386]:  *Out 27 17:50:10 servidor systemd[1]: Started LSB: Apache2 web server.

By: George Nicolaou

I used ubutu 16.04 and roundcube for webmail. Had the forementioned 404 issue when going to /webmail



After initial installation and configuration 


When trying to access the webmail at https://YOURIP:8080/webmail/ you get a 404 error. If we select roundcube as our default webmail client


To solve this issue run these commands in sequence 


1. cat >> /etc/apache2/conf-available/local.conf <<EOF

   Alias /webmail /var/lib/roundcube



2. a2enconf local

3. service apache2 restart

This should solve the issue for you. At least it did for me 

By: Thomas

Just a quick comment. this script is great. the only thing I would like to point out is that if you are doing a multi server setup using this script, you need to run apt-get install mysql-client before running the script on the slave servers. if you do not, you will get an error saying it cannot connect to the master server. this is apparently because the script tries to connect before mysql-client is installed. hope this helps some people out there. 

By: Mike

Why is MailMan not included in the Debian and the Ubuntu?

By: DylanPedro



When choosing the web server as nginx and then choosing to also install phpmyadmin later another question is asked if you want to configure phpmyadmin for either apache or lighttpd, but the webserve chosen is nginx?

By: till

Choose none of the two options, the debian installer cannot configure phpmyadmin for nginx. ispconfig configures phpmyadmin on port 8081 automatically.

By: Ofer

The phpmyadmin version is  4.54 (.1deb2ubuntu2).  The server is ubuntu 16.04

Can I upgrade to version  4.77 ?

By: tripp

Can't logon to ISPconfig after using script. The defaults don't work and the script didn't ask for me to provide a pass during install. I had so much hope for this. Thanks anyway.

By: till

The solution for your problem has been posted in the comments already.

By: Christian Wolff

Thank you very much for this tutorial! I tried it 3 times with a fresh minimal Ubuntu 16.04.4 server which the provider of my vServer (server4you) has set up, but unfortunately it didn't work.

When I open the URL I only see the Apache2 Ubuntu Default Page ... 

Can someone help me? Here are some error messages, maybe they are relevant? 

"no crontab for root"

"no crontab for getmail"

and earlier: "[INFO] haveged not detected - DNSSEC can fail"

and earlier: "Errors were encountered while processing: pure-ftpd-mysql

E: Sub-process /usr/bin/dpkg returned an error code (1)"

and earlier: "Settung up pure ftpd-mysql (1.0.36-3.2build1) ... /var/lib/dpkg/info/pure-ftpd-mysql (--configure): subprocess installed post-installation script returned error exit status 127"

and eearlier: "Updating ClamAV. Please Wait ... ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

ERROR: /var/log/clamav/freshclam.log is locked by another process"

and earlier: " line 153: InstallWebmail: command not found

Checking and disabling Sendmail"

and earlier "Installing PureFTPd... sed: can't read /etc/inetd.conf: No such file or directory"

Has anyone an idea what went wrong here?


no crontab for root no crontab for getmail no crontab for root no crontab for getmail

By: till

The crontab messages are fine and no errors, the messages just mean that there was no crontab before. Autoinstallers might fail when the base image f a server is very different from a standard installation of the chosen operating system. In such a case, it is better to use the manual installation procedure as shown here:

By: Christian Wolff

Great! I didn't know there was a manual installation... thank you so much! I will try that :) 

By: ustoopia

Works perfectly on Debian 9.3. Thanks!!!

By: Siridion M. Cabudlan

Good Day Sir, please help me.

I configure ISPConfig Setup Script v.3.0.2 on ubuntu server 16.04 LTS. 

The setup produce error message "InstallWebmail: command not found".


By: Heman Dona

I would like to say you,i feel so glad to come here often your study material so good and beneficial for me and also other member of your blog. I appreciate it. Keep writing!

By: Jonas

You really should add a link to this AT THE TOP of the "The Perfect Server"-article. It would have saved me sooooooo much time ;)

By: Manfred

Nice script - but a lot of problems!

(Test environment: openvz VPS with ubuntu 16.04.4 LTS minimal. After getting some experience, all questions during installation have been answered by confirming the defaults, except the following: dbconfig-common: no; webmailer: roundcube; update Antivirus Database during install: no.)

Here are some of the Problems I was facing:

- Although ISPconfig web port is selectable (in expert mode), it seems that "8080" is hardcoded in some places. For example, the final message "Now you can connect to your ISPConfig installation..." shows always 8080, even if another port has been selected.

- Calling the ISPconfig Webinterface shows only the Apache default page ("it works").

- Installation of RoundCube doesn't seem to work: ./ line 153: InstallWebmail: command not found

- Calling shows source (!) of /usr/share/phpmyadmin/index.php

- "You want to update Antivirus Database during install?" Can't be answered with yes, as this later leads to:ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).ERROR: /var/log/clamav/freshclam.log is locked by another process

- The described certbot prompt didn't appear at all.

And some minor flaws (only for sake of completeness):

- List of supported distributions doesn't correspond with the linked minimal installation (which is for Ubuntu 17.10).

- This Message doesn't appear as intended (did you miss an -e somewhere?): Installing Anti-Virus & utilities... [\033[0;31m(THIS TAKES SOME TIME. DON'T ABORT !!!)\033[0m]\n


This is not a complaint, only a feedback. My conclusion: The script doesn't seem to be reliable enough for a serious and proper server setup, so it's unusable for me. Of course, all problems could be debugged, fixed or circumvented anyhow, but that would probably need more time than the script can save. So I prefer manual installation, although it's boring ... ;-)


By: gLeW

Hi i have a problem.

I have a VPS on Digital Ocean.

I already configure all the DNS on Digital ocean.

after finish the tutorial, when i put showme the login page but i put the user and password and not working sendme again to the login page (the user and password are correct)

when i go to

https://ipaddress:8080 go to the login page, when i put the user and pass, enter without problem.


i dont know what happend



By: gLeW

Hi thanks fot the tuto.


I have a question, before make this tutorial we nade to configure somethinglike the hostname, or not?


Only install a fresh ubuntu and run the script.



By: gLeW

Hi i hava a question I just completed the guide,

at the end you show me 3 web addresses one for the control panel, another for phpmyadmin and the last for the webmail


the one of the webmail does not work I must enable something ???



I install, nginx and roundcube

By: chris

after the ispconfig update the autoinstall doesn´t work.

Installation completed.

Restarting nginx (via systemctl): nginx.service.

sed: can't read /etc/php/7.0/apache2/php.ini: No such file or directory

Well done ISPConfig installed and configured correctly :D 

Now you can connect to your ISPConfig installation at or https://IP_ADDRESS:8080

You can visit my GitHub profile at

You had to edit user/pass /var/lib/roundcube/plugins/ispconfig3_account/config/ of roudcube user, as the one you inserted in ISPconfig 

Phpmyadmin is accessibile at or http://IP_ADDRESS:8081/phpmyadmin

Webmail is accessibile at or http://IP_ADDRESS:8081/webmail

By: marc

wis this would run on mint 18.3 since at the core of mint is ubuntu!

By: Cam line 153: InstallWebmail: command not found


is this going to be a problem with this install?

By: Cam

 whats the default login details???

By: hotjer

@CamPassword is randomly created and shown in the installation proces. You should be able to change the password with the following process: