How to install ISPConfig on CentOS 7.x?

This article will help you on how to install ISPConfig on CentOS 7.x

ISP config is an open-source control panel for Linux that has easy to use web interface which helps you to manage Websites, DNS records, Email addresses, FTP, database, etc.

In this article, we will install ISP config 3 on CentOS 7.x.

System requirements


  1. A server is running with CentOS 7.x
  2. Access to the root user.

Follow these steps to install the ISP config on CentOS 7.x

Step 1: Connect to your server and update all the installation packages

You can connect to your server through SSH as a root user or as a user with Sudo privileges. To do that, enter the following command in your terminal.

# ssh [email protected]_address -p Port_number
Note: Replace the IP_address and port_number with your servers actual IP and SSH port.

Once you are logged in to the server, you have to enter the following commands in the terminal to update all your currently installed packages to their latest available versions.

# yum -y update

The update process may take 10-15 minutes depending on your server resources.

Once the Yum updates finished, you will have to enable the required package for the ISPConfig by installing the Development Tools bundle. Type the following command in the terminal to allow it to.

# yum -y groupinstall 'Development Tools'

This process may take around 10 minutes to complete.

Step 2: Install LAMP Stack.

Once the system is up to date, you need to install the LAMP stack with Apache, MariaDB, PHP, NTP, and PHPMyAdmin.

Initiate the following command into your terminal to install it on your server.

# yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin 

This process may take a few minutes to complete it.

Once the LAMP stack has been successfully installed on your server, enter the following commands to start and enable the MariaDB service on your server.

# systemctl start mariadb.service
# systemctl enable mariadb.service

The next command is optional, but we recommend it. You can run the following command if you want to secure your MariaDB server by disallowing remote root access, removing the test database, and creating a root password.

# mysql_secure_installation 
In the field, enter current root password: Press the Enter key - we don't have a password currently set.
In the set root password: Type Y and press the enter key.
In the New password field: Type a password which you want to set for the root user.
In the re-enter new password field: Type the same password which you have entered in the New password field.
In the Remove anonymous users field: Type Y and press the enter key.
In the Disallow root login remotely field: Type Y and press the enter key.
In the Remove test database and access to its field: Type Y and press the enter key.
In the Reload privilege table now field: Type Y and press the enter key.

Once all the above steps are completed, we need to restart the MariaDB server so that the changes take effect. Enter the following command to restart the MariaDB server.

# systemctl restart mariadb.service 


Step 3: Install Dovecot

To install Dovecot on your server you have to execute the following command in the terminal.

# yum -y install dovecot dovecot-mysql dovecot-pigeonhole

This process will take some time to complete.

Once the dovecot is installed, create a dovecot-sql.conf file using the following command. After then you will have to make a symbolic link pointing back to the file you just created. Type following command to do that.

# touch /etc/dovecot/dovecot-sql.conf
# ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf

Now use below commands to restart and enable the Dovecot service on the server.

# systemctl restart dovecot.service
# systemctl enable dovecot.service


Step 4: Install Amavisd-new, ClamAV, and SpamAssassin

For installing ClamAV, Amavisd, and SpamAssassin along with all of their additional required packages, enter the following command in the terminal.

# yum -y install amavisd-new spamassassin clamav clamd clamav-update unzip bzip2 unrar perl-DBD-mysql 


Step 5: Install PHP and Apache2 Modules

In this step, we will install some required Apache and PHP modules, such as mod_php, mod_fcgid, php-MySQL, and so on. To proceed with the installation of the modules, use the below command in the terminal.

# yum -y install php-ldap php-mysql php-odbc php-pear php php-devel php-gd php-imap php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel mod_fcgid php-cli httpd-devel php-fpm perl-libwww-perl ImageMagick libxml2 libxml2-devel python-devel 

This process may take a few seconds to complete it.

Step 6: Install PureFTPd

The FTP protocol is the most popular method for transferring files from one server to another. To use this protocol, you will need to install an FTP server first. We will install PureFTP server because it is simple to install and easy-to-use.

To install it on your server you need to execute the following command in the terminal.

# yum -y install pure-ftpd


Step 7: Install BIND

BIND is one of the most commonly used Domain Name System software packages available on the Internet. For ISPConfig to manage and configure the DNS settings,type the following command in the terminal to install BIND package.

# yum -y install bind bind-utils


Step 8: Install ISPConfig

Once we finish all previous steps, we can start to download and install ISPConfing 3 on the server. We will use the following wget command to copy the package from the officially provided web link of ISPConfig.

We need to change the directory to /opt/ and download the ISPConfig packages, run the next two commands to do it.

# cd /opt/
# wget

Once the package has been downloaded, we need to unzip it in order to use it. You can Unzip it with the following command:

# tar -zxvf ISPConfig-3-stable.tar.gz

Then use the following command to change the directory where the install script is placed.

# cd ispconfig3_install/install/ 

Now, we will run the installation through the php program by running the following command in the terminal.

# php -q install.php

This process may take some time to complete.

After the installation is completed, we can configure the ISP Config 3. Go to the Initial configuration section.

In the Select language field: Press enter to set the English language.
In the Installation mode field: Press enter if you want to go with Standard installation.
In the Full qualified hostname (FQDN) of the server field: Enter a fully qualified hostname.

Next is Database Configurations:

In the MySQL server hostname [localhost] field: Press enter to use localhost as a hostname.
In the MySQL root username [root] field: Press enter to use root as a username.
In the MySQL root password field: Enter the password of the root user and press enter.
In the MySQL database to create [dbispconfig]: Enter the name of the database which you want to create it.
In the MySQL charset [utf8]: Press enter to use UTFS as a MySQL charset.

Now, the system will generate a 4096 bit RSA private key to write a new private key to smtpd.key file. It is for postfix (Mail Server). We need to enter information that will be incorporated into a certificate request.

Country Name (2 letter code) [XX]: Enter the name of your country in 2 letter code.
State or Province Name (full name) []: Enter the name of your state in full name.
Locality Name (e.g., city) [Default City]: Enter your city name.
Organization Name (e.g., company) [Default Company Ltd]: Enter the name of your company.
Organizational Unit Name (e.g., section) []: Enter the unit name of your company.
Common Name (e.g., your name or your server's hostname) []: Enter your server hostname or domain name.
Email Address []: Enter an email address on which you want to receive an update.


Once you press enter, the system will be configured with all of its required packages.

In the ISPConfig Port field: Enter the port number on which you want to run or listen to ISPConfig control panel. If you want to run on the default port 8080, then press enter.
In the Admin Password file: Enter a password which you want to set for an admin user.
In the re-enter admin password field: Enter the same password which you have used in the admin password field.

If you want to secure the web interface of the ISPConfig then enter y in the field "Do you want a secure SSL Connection to the ISPConfig web interface?"

You are about to be asked to enter information that will be incorporated into your certificate. Enter the information for generating the RSA key to establish its SSL connection.

After then, you will be asked to configure some extra attributes, whether to choose the default or change as per your requirements.

In a challenge password field: Press enter to do not set any password.
In an optional company name field: Press enter to do not set any name.

Then it will be writing RSA key, configure DB server and restart its services to complete the ISPConfig installation setup.

Step 9: ISPConfig Login

Now that the installation is completed, you can access the ISPConfig control panel from your web browser.

Open your preferred web browser and type your server IP address with the default configured port for ISPConfig, as shown below.



That's it we have successfully installed the ISPConfig on CentOS 7.x

Related Articles

How to Install LEMP Stack (Nginx, MariaDB, PHP7.2) on Ubuntu 18.04 LTS?

Nginx, MariaDB and PHP7.2 are called (LEMP). Following are the steps to install LEMP on Ubuntu...

How To Install Docker on Ubuntu 18.04?

Docker is a container-based tool used to create, deploy, and run the applications by using...

How to change the MySQL timeout limit in Linux?

Please refer to the following article to change the MySQL timeout error.  Log in to your...

How To Configure Redis Caching to Speed Up WordPress on Ubuntu 18.04?

Redis is an open-source in-memory data structure store. It can be used as a DB and cache. It...

How to install ISPConfig on Ubuntu 18.04?

This article will help you on how to install ISPConfig on Ubuntu 18.04. ISPConfig is an open...

  • 0 Users Found This Useful

Was this answer helpful?