ISPConfig 3.1: Automated installation on Debian 9

This tutorial exists for these OS versions

On this page

  1. Download and preparation
  2. ISPConfig 3 Installation
  3. Standard mode

Warning: This install third party install script for ISPConfig is for ISPConfig 3.1 only, it is not compatible with the current ISPConfig 3.2. Using it to install ISPConfig 3.2 will result in a non-working setup. Use the official installation guides (Perfect server tutorials) instead to install your server or use the official ISPConfig auto-installer:

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.

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 with the help of the community.


The script, for now, works only on the following distribution

  • Debian 9 Stretch
  • Debian 8 Jessie
  • Debian 7 Wheezy
  • Ubuntu 14.04 Trusty
  • Ubuntu 15.10 Willy
  • Ubuntu 16.04 Xenial Xerus
  • Ubuntu 18.04 Bionic Beaver
  • CentOS 7
  • Raspbian

and uses the script of ISPConfig 3.x.

For each of the mentioned distribution, the server must be prepared following the Perfect Minimal Setup guide for each distro which can be found on HowtoForge.

In this guide we'll install on Debian 9, so please before we start, prepare the server following

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:

cd /tmp; wget --no-check-certificate -O installer.tgz ""; tar zxvf installer.tgz; cd *ispconfig*; bash

Now you had a folder called ispconfig_setup-master in your /tmp directory.

ISPConfig 3 Installation

Now the process to install our ISPConfig control panel with the autoinstall script will start automatically. 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 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
  • IMAP and POP3 (with courier or dovecot)
  • webmail (with RoundCube or squirellmail)
  • ... and obviously ISPConfig

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

Now the install process begin, we can see now the following output:

Welcome to ISPConfig Setup Script v.
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/Hangouts: [email protected]
Skype: matteo.temporini
ISPConfig 3 System installer

This script will do a nearly unattended installation of
all software needed to run ISPConfig 3.
When this script starts running, it will 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: Debian GNU/Linux 9 (stretch)
Processor (CPU): Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
CPU Cores: 4
Architecture: x86_64 (64-bit)
Total memory (RAM): 2.004 MiB (2.101 MB)
Total swap space: 2.045 MiB (2.145 MB)
Graphics Processor (GPU): VMware SVGA II Adapter
Computer name: debian9
IPv4 address:
Time zone: Europe/Rome (CEST, +0200)

Virtual Machine (VM) hypervisor: vmware

Installing for this Linux Distribution: debian9
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 Debian 9 Stretch.

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 MySql password
  • Next you had to choose between Apache and Nginx
  • Next you can choose to install php5.6 concurrently with php7 wich is the defaul php version for Debian 9
  • Next you will be asked to choss to install HHVM (Hip Hop Virtual Machine)
  • Next you will be asked for PHPMyAdmin installation
  • Next you had to choose to update virus definition (recommend to say yes)
  • Next you had to choose to enable or not quota (recommend to say yes)
  • Next you had to choose between mail server type dovecot or courier
  • Next you had to choose to enable or not JailKit
  • Next you had to choose between Roundcube and SquirrelMail
  • The last thing at this chapter is standard o 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 feature 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 choose if enable or not DKIM (recommended to say no, because not supported natively in ISPConfig yet, Dkim will be part of the next ISPConfig release)
  • Next you have to choose between Roundcube and Squirellmail (Note: in Debian 8 this option is not available as there is no RoundCube package for Debian 8 yet and Squirellmail will be the default)
  • 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:

Preparing to install... [DONE]

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

Installing basic packages (OpenSSH server, NTP, binutils, etc.)... [DONE]

Changing the default shell from dash to bash... [DONE]

Installing Database server (MariaDB)... [DONE]

Restarting MariaDB... [DONE]

Installing Web server (Apache) and modules... [DONE]

Installing PHP and modules... [DONE]

Installing PHP-FPM... [DONE]

Installing needed programs for PHP and Apache (mcrypt, etc.)... [DONE]




Configurazione di dbconfig-mysql (2.0.8)...

Configurazione di php-bz2 (1:7.0+49)...

Configurazione di phpmyadmin (4:4.6.6-4)...

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

The final thing to do is to set a secure password for the RoundCube remote user in ISPConfig control panel which the install script has added. To do so follow these steps:

Connect to ISPConfig: https://YOURIP:8080, go to System > User Management > Remote Users and click on the user roundcube in the list:

Enter a secure password for the user...

Then click on Save.

Then edit the file /var/lib/roundcube/plugins/ispconfig3_account/config/ and set the password you inserted in ispconfig. See the following example:

$rcmail_config['remote_soap_pass'] = 'password';

In my case, I've used "roundcube" as "password" for the password (please don't use this password in a production environment for obviously security reasons).

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.

Final consideration

Important: The current version of the install script has an issue, it installs the software spampd which causes the postfix mail system to fail. Spampd is not used nor required by ISPConfig and needs to be uninstalled to get the mail system up. To fix the issue, run these commands:

apt-get -y remove spampd
service postfix restart

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

38 Comment(s)

Add comment


By: jboud

Wow, didn't expect for it to work so smooth. Thanks for this man, worked like expected.

By: Leandro

work fine!, the folder /var/lib/roundcube/plugins/ispconfig3_account not exist ubuntu 18.04

By: ben

Well done! ISPConfig installed and configured correctly.

After performing a fresh installation of ISPConfig 3.1 on Debian 9.5, it reached the Apache2 default page instead of the ISPConfig home/login page using only the IP address. Not https://ip address or https://ipaddress:8080 can be reached.

Any help will be much appreciated.

By: till

Please run the debug script and post the output of it in a new forum thread so we can help you to find out what went wrong during install.

By: BenCode

Thanks Till. I have just performing a debug script for this instattion, and the result has been posted as a new thread under ISPConfig 3 forum. Please take a look at your convenience.  

By: mattheoh

Amazing ! Great Job :)

Thanks a lot.

By: doe

when I run the command "bash", it says "bash: sh: no such file or directory". PLEASE HELP !

By: Matt

I am able to access everything but ispconfig when using the public ip and port number(8080).

I believe it has to do with setting up phpmyadmin(the bug mentioned) but I am unable to figure out what exactly needs changing as ip/phpMyAdmin loads.

I'm using debian 9

Ideas anyone?

By: Matt

Everything run smoothly but at the end I get error 

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

By: till

Take a look in the nginx error.log or use the commands mentioned in the error message to find out why it failed to start. If you need further help, please post in the ISPConfig installation support forum:

By: Aris Dizdarevic

Great, works like a charm...


I noticed one thig regarding Pure-FTPD:

debian pure-ftpd[28216]: ([email protected]?) [DEBUG] Couldn't load the DH parameters file /etc/ssl/private/pure-ftpd-dhparams.pem


Create pure-ftpd-dhparams.pem by executing:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072

service pure-ftpd-mysql restart

By: corto

hello, really good work!

how can i install PHP 7.1 on debian 9 ?


By: till
By: anon

On Debian 9 all went smoothly.

Unable to login as admin using the hostname URL, only via IP address URL.

By: till

Check the DNS record of your hostname to ensure it points to the correct server.

By: igor

Doesn't work, as always.

It seems that manuals always lies

To all the liers:


On Debian 9 ispconfig won't work, i tested it myself.

This stupid "ispconfig" needs php5.0 and looking for php5-fpm

look into /etc/nginx/sites-available/ispconfig.vhost

What a stupid config, look at "fastcgi_pass"...


where is "apps.conf"  and "ispconfig.conf" php-fpm pool configs?

this stupid panel tried to install them into /etc/php5/fpm/pool.d 

instead of at least /etc/php/5.6/fpm/pool.d


This stupid behavior will work like a charm only on Debian 8

By: till

Hello Igor,

you installed an old ISPConfig version. There was an issue with ISPConfig 3.1.13 in combination with Debian 9.8 (and only Debian 9.8, not any other prior Debian 9 release as it was detected as Debian 8, see ISPConfig blog) in the past which has been resolved in ISPConfig 3.1.13p1 already several weeks ago, the issue in ISPConfig has been resolved on the same day it was reported btw. So before telling anyone a lier, install the current version and not an old release before start complaining.


I installed several ISPConfig 3.1.13p1 servers with Debian 9.8 in the past week, so I can say it works there without issues.


To fix your current server which runs the old ISPConfig version, all you have to do is to run an ISPConfig update with the command:


select 'stable' as update source and choose to reconfigure services during update when the installer asks for it, that's all.

By: Christian

Many thanks. Runs fine except seems not to take into account my options...

Server runs fine.

By: arnold61

quota failed with seperate /var partition.

By: anthonyinit

I never expected this to work wow man this is just amazing. few click and the installation is complete 100% without a single error.

Thank you so much 

By: kookos

This is what i get when i use the automatic install.. and this is what is on line 353: IncludeOptional conf.d/*.conf

httpd.service - The Apache HTTP Server

   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)

   Active: failed (Result: exit-code) since Fri 2019-04-19 17:32:33 EDT; 2s ago

     Docs: man:httpd(8)


  Process: 19957 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)

  Process: 19955 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)

 Main PID: 19955 (code=exited, status=1/FAILURE)


Apr 19 17:32:33 ns515186 systemd[1]: Starting The Apache HTTP Server...

Apr 19 17:32:33 ns515186 httpd[19955]: httpd: Syntax error on line 353 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/suphp.conf: Cannot load /usr/lib64/httpd/modules/ into server: /usr/lib64/httpd/modules/ cannot open shared object file: No such file or directory

Apr 19 17:32:33 ns515186 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE

Apr 19 17:32:33 ns515186 kill[19957]: kill: cannot find process ""

Apr 19 17:32:33 ns515186 systemd[1]: httpd.service: control process exited, code=exited status=1

Apr 19 17:32:33 ns515186 systemd[1]: Failed to start The Apache HTTP Server.

Apr 19 17:32:33 ns515186 systemd[1]: Unit httpd.service entered failed state.

Apr 19 17:32:33 ns515186 systemd[1]: httpd.service failed.



After many trials setting it up manually, finally you made a installation script. Works perfect....Thx

By: kam

Every time I am using this script it dies on

Adding new user `debian-spamd' (UID 119) with group `debian-spamd' ..Not creating home directory `/var/lib/spamassassin'.Setting up libconvert-tnef-perl (0.18-1) ...Setting up amavisd-new (1:2.10.1-4) ...Creating/updating amavis user account...Job for amavis.service failed because the control process exited withSee "systemctl status amavis.service" and "journalctl -xe" for detailinvoke-rc.d: initscript amavis, action "start" failed.? amavis.service - LSB: Starts amavisd-new mailfilter   Loaded: loaded (/etc/init.d/amavis; generated; vendor preset: enab   Active: failed (Result: exit-code) since Fri 2019-05-24 06:02:56 U     Docs: man:systemd-sysv-generator(8)  Process: 27597 ExecStart=/etc/init.d/amavis start (code=exited, sta

And every time i forgot to exclude amavis from install

By: till

That's probably not an issue of the install script, it works fine for me without problems. Most likely the hostname of your system is not setup properly when amavis fails on your server. The hostname has to be an fqdn subdomain. Check with:


hostname -f


it must return something like 'server1.yourdomain.tld'. if it returns just e.g. 'server1', then the hostname is not setup properly and amavis will fail during install. And amavis should not be excluded form install as the mail system will be very limited without it and it will fail later, e.g. no spamfilter, no antivirus filter and no DKIM signing of emails.

By: Cedric

Hi there! Install script worked fine, however SMTP on webmail seems not to work. I'm testing on the hostname domain with an e-mail account, but "message is sending" keeps running. Anyone an idea? Thanks!

By: helios842000

hi, sorry for delay, have you fixed that? If I can help you

By: guel

The script is awesome. But I´d like to install Nginx instead of Apache. But I can´t figure out how to choose. It always select Apache.

Any suggestions. Thanks in advance.

By: Sergey

please do on debian 10

By: yourfriend

+1 Debian10 pls.

By: Nico

For Raspian10, in V3.0.5, edit $DISTRO\ to change "unrar" by "unrar-nonfree".

Works fine.

By: Nico

Erratum for raspian10: replace "unrar" by "unrar-free"

By: Mac

Did an install just now (March 5, 2020) on Ubunto 18.04 and got an error when it was installing Jailkit at the end; it said an install file was not found and the script advised me to start over again.  So I will try again tomorrow. In the meantime is this a known issue or a glitch that will hopefully not repeat...?    Will rerunning the script be possible, or should I wipe the system and re-install ubunto...?

By: samuel

bonjour, je sais pas pourquoi arrive a cette etape rien fonction plus

Installing Antivirus utilities (Amavisd-new, ClamAV), Spam filtering (SpamAssass                                                                                        in), Greylisting (Postgrey) and Rootkit detection (rkhunter)... (This may take a                                                                                        while. Do not abort it...)

Error: The following command failed: apt-get -y install amavisd-new spamassassin                                                                                         clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchange                                                                                        s libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libi                                                                                        o-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl libdbd-mysql-perl postgr                                                                                        ey rkhunter systemd unrar-free p7zip rpm2cpio tnef razor pyzor libmail-dkim-perl


 le premiere jour j'ai installer cela a pris d'un coup maintenant il refuse completment de s'installer de nouveau


qui peux m'aide svp

By: patrick

Error: The following command failed: apt-get -y install haveged

By: Peter

+1 make a debian 10 version pls! ty :)

By: Kevin S

The linked script includes Debian 10 too..


Then edit the file /var/lib/roundcube/plugins/ispconfig3_account/config/ and set the password you inserted in ispconfig. See the following example:

$rcmail_config['remote_soap_pass'] = 'password';



$config['soap_url'] = '';

be changed too?  Localhost?  Server's IP?  or FQDN?

By: Tony

Please remove this article, this is a waste of time. Tried on over 5 differents company VPS and password never work using admin/admin.



By: till

1) The password is never 'admin' in recent ISPConfig 3 versions. The password is displayed by the ISPConfig installer at the end of the install.

2) The introductory text in this guide tells you to use the new auto-installer instead of the one described in the guide as the old autoinstall script from servisys is not compatible with ISPConfig 3.2. Why did you not follow the advice at the beginning of the guide to use the new auto-installer?

3) In case you missed writing down the password at the end of the installation, you can reset it easily at any time: