ISPConfig 3.1: Automated installation on Ubuntu 18.04 LTS

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 http://www.ispconfig.org/

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 https://github.com/servisys/ispconfig_setup, developed and maintained free from Servisys by Matteo Temporini with the help of the community.

The script works on many Linux distributions:

  • Debian 9
  • Debian 8
  • Debian 7
  • Ubuntu 14.10
  • Ubuntu 15.10
  • Ubuntu 16.04
  • Ubuntu 18.04
  • Centos 7
  • ISPConfig 3.*

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

Prerequisites

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 https://www.howtoforge.com/tutorial/ubuntu-lts-minimal-server/
  • 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:

cd /tmp; wget --no-check-certificate -O installer.tgz "https://github.com/servisys/ispconfig_setup/tarball/master"; tar zxvf installer.tgz; cd *ispconfig*; bash install.sh

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 (MySQL or MariaDB)
  • Awstats for statistics purpose
  • Clamavd for antivirus
  • Let's encrypt for certificate generation
  • IMAP and POP3 (with courier or dovecot)
  • webmail (with RoundCube)
  • ... 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.3.0.3.1
This software is developed by Temporini Matteo
with the support of the community.
You can visit my website at the followings URLs
http://www.servisys.it http://www.temporini.net
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 installation 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 18.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 18.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...
Reading package lists...
Building dependency tree...
Reading state information...
Package 'apparmor-utils' is not installed, so not removed
The following packages will be REMOVED:
apparmor snapd
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 59.7 MB disk space will be freed.
(Reading database ... 104283 files and directories currently installed.) (Reading database ... Removing snapd (2.34.2+18.04) ...
Removing apparmor (2.12-4ubuntu5) ...
Processing triggers for man-db (2.8.3-2) ...
Reconfigure dash... [DONE]

Installing MariaDB... [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').

Configure PHPMyAdmin

One last question is required to complete the installation.

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

After some time, 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 https://www.howtoforge.com/tutorial/perfect-server-ubuntu-18.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/

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 this installation type, you need to have two servers from where to run this script.

Final consideration

Important: The current version of the install script has an issue, it installs the software spampd which causes the 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 https://github.com/servisys/ispconfig_setup, or contact us on ISPconfig forum.

Share this page:

Suggested articles

10 Comment(s)

Add comment

Comments

By: ustoopia at: 2018-09-29 06:00:56

works great! thanks!

By: Tadeusz Pufa at: 2018-10-06 08:17:04

Hi,

first of all thanks for your work, perfect solution for guys like me! You realy helped me.

I've tried install on fresh Debian 9 and fresh Ubuntu 18.04. On Debian works good, but on Ubuntu installation freeze on step "Updating apt package database and upgrading currently installed packages...". I'm using basic OVH vps and I've tried several times.

Does anyone else have the same problem?

By: Charlie at: 2018-11-25 21:47:54

Hi,

Same problem here. I will try installing it using Ubuntu 16. Did you solve this issue?.

Please, if you did, let me know.

Thanks!

By: John at: 2018-10-19 08:33:49

Works fine!! Thanks you very much.

By: Milo at: 2018-10-23 07:03:40

Hi, I installed on VPS and out of the box, everything works fine, just I am having troubles with send/receive emails. Not even the welcome ISP email. Settings are:/etc/hostname: vm1, /etc/hosts: 11.22.33.44 vm1.domain.tld vm1

at ISPConfig:dns records NS domain.tld. ->IP, vm1, mail -> IP + set up email domain.tld, MX  domain.tld. -> mail.domain.tld., /etc/mailname is mail.domain.tld, postfiix main.cf has myhostname = vm1.domain.tld, + added standard generated SPF, DKIM, DMARC records.

Based on Git's w2c ispconfig3_roundcube procedures I added/set up roundcube account.

No send / receive... any suggestion?

By: Matthew at: 2018-11-06 14:03:32

U must wait 8min+ ...i have Ubuntu 18.04 and worked for me.

By: Ersin ACAR at: 2018-11-21 13:47:11

Hi, installed coplated but web mail dont work

http://domainname.com/webmail   dont work.  How to work webmail?

Thanks

By: Ben Spradling at: 2018-11-24 01:41:12

Hello again. After 6 reinstalls of ubuntu 18.04 Bionic Beaver I was able to get ispconfig install and working.

One note there is no directory /var/lib/roundcube/plugins/ispconfig3_account/config so I am not able to change the config.inc.php. I did a whereis and it can't be located. Note is a minmum installation of ubuntu. 

By: Superhost at: 2018-11-29 20:26:35

Respect! Best open source ISP Installation routine I have seen in years. THX 1 mio.

By: Guilherme Guia at: 2018-12-03 12:26:18

There was a bug in my instalation. I don't know if  this happend with someone, i was unable to sent emails, the following ports were not listening: 587, 465. To fix it i had to edit the following file:  /etc/postfix/master.cf i had to change it to be like this:

[...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...]

 

Best Regards,

Guilherme Guia