How to install Froxlor control panel in Ubuntu 18.04

How to install Froxlor

Froxlor is an open source lightweight server management control panel to effectively manage web hosting, domain names, FTP accounts, email accounts, support tickets and customers that are associated with them, and is licensed under GPL 2.0. In this tutorial, we’ll look at how to install Froxlor in Ubuntu 18.04.

With Froxlor, you can get the raw administrative power of cPanel without paying a dime.

Prerequisites

  • A VPS running Ubuntu 18.04. For details on upgrading your Ubuntu 16.04 VPS to 18.04, see our upgrading tutorial.
  • A registered domain name.
  • A DNS A record that points to your server’s IP address based on the FQDN you want to use. For example, an A record named test would point to test.DOMAIN.TLD.

Notes

  • This tutorial uses variables to represent user-specific configurations, such as server IP addresses, passwords, domain names, and more. Whenever you see one of these variables (which appear like so: VARIABLE), you should replace them with your specific details.
  • In example.ssdnodes.com, example is the SUBDOMAIN, ssdnodes is the DOMAIN, and .com is the TLD.

Step 1. Configure the FQDN of the host

To change the hostname of your system, use the hostnamectl command. hostnamectl will directly update the kernel about the change in the hostname, and you don’t need to reboot the machine afterward. We’re going to choose the hostname based on the subdomain we’ll use to access the control panel later.

$ sudo hostnamectl set-hostname SUBDOMAIN

Next, edit the file /etc/hosts and add the following line at the end.

$ sudo vi /etc/hosts
IP_ADDRESS SUBDOMAIN.DOMAIN.TLD SUBDOMAIN

Here’s an example using a fake IP, panel as the subdomain/hostname, and a domain of mine.

$ sudo vi /etc/hosts
123.456.78.9 panel.dwijadasdey.tk dwijadasdey

Run the command below to restart network manager to apply above changes:

$ sudo systemctl restart NetworkManager.service

Check the hostname and FQDN of the host:

$ hostname
panel
$ hostname -f
SUBDOMAIN.DOMAIN.TLD

Step 2. Install LAMP

Unlike other hosting panels, Froxlor does not come with a pre-installed LAMP stack. The easiest and fastest way of installing a LAMP stack is to use tasksel, a tool that installs multiple related packages as a co-ordinated “task” in your system.

tasksel is installed by default in Ubuntu 18.04. If tasksel is missing from your system then install it by issuing following command from the terminal:

$ sudo apt-get install tasksel

To run tasksel from the command line, type:

$ sudo tasksel

Tick LAMP Server and press your TAB key once followed by the enter key. You will be prompted to provide a root password for MySQL and the installation will be complete within minutes.

Install LAMP server

Find the versions of Apache, MySQL and PHP by issuing following three commands from the terminal.

$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2018-04-25T11:38:24
$ mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper
$ php -v
PHP 7.2.5-0ubuntu0.18.04.1 (cli) (built: May  9 2018 17:21:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.5-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

To test the installation of LAMP server, create a phpinfo file inside the Apache root directory, which is /var/www/html.

$ cd /var/www/html
$ sudo echo "<?php echo phpinfo();?>" > info.php

Point your favorite web browser to http://SUBDOMAIN.DOMAIN.TLD/info.php. You can view the php version, system information, build date, and so on. This confirms that the installation of LAMP stack is successful.

Step 3. Configuring PHP/MySQL for Froxlor

Change the MySQL root password

MySQL 5.7 uses the auth_socket plugin for authenticating users who try to login from within the server itself. This plug-in doesn’t care and doesn’t need a password. It just checks if the user is connecting using a UNIX socket and then compares the user name from the user table. To allow Froxlor can connect to the MySQL database from remote location, you need to change the plugin and set the password at the same time, in the same command.

Log into the MySQL shell as root and change the plugin/password for user root:

$ mysql -u root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD!';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql>  quit;
Bye

Now the Froxlor web installer will be able to connect to the MySQL database from a remote location during installation.

Create a database for Froxlor

While still logged into the MySQL shell, create a database called froxlor and an unprivileged user named froxlor with a password using the following commands.

mysql> create database froxlor;

mysql> create user 'froxlor'@'localhost' IDENTIFIED BY 'PASSWORD!';

mysql> GRANT ALL PRIVILEGES ON froxlor.* TO 'froxlor'@'localhost' IDENTIFIED BY 'PASSWORD!' WITH GRANT OPTION;

mysql> flush privileges;

mysql> exit;

Install the PHP extensions needed by Froxlor

Although installation of PHP was finished in Step 2, Froxlor still requires few more php extensions. Install those extensions by issuing following commands from the terminal, and then restart Apache:

$ sudo apt-get install php7.2-xml php7.2-posix php7.2-mbstring php7.2-curl php7.2-bcmath php7.2-zip php7.2-json
$ sudo systemctl restart apache2

Now the stage is set for installing Froxlor in Ubuntu 18!

Step 4. Install Froxlor

Download the latest Froxlor version and unpack it inside default root of Apache so that all the files and folders for Froxlor can be found inside /var/www/html Once unpacked, assign correct ownership to the web root of Apache.

$ cd /var/www/html
$ sudo wget  https://files.froxlor.org/releases/froxlor-latest.tar.gz
$ sudo tar -zxvf froxlor-latest.tar.gz
$ sudo mv froxlor/* /var/www/html
$ sudo chown -R www-data:www-data /var/www/html
$ sudo rm -rf froxlor froxlor-latest.tar.gz

Now point your web browser to the FQDN you set up in the first step: http://SUBDOMAIN.DOMAIN.TLD In my case, that was http://panel.dwijadasdey.tk. You can also connect to the server using your IP address: http://IP_ADDRESS.

You will be greeted by Froxlor welcome screen.

Click the Start install link to proceed to the next step.

enter image description here

Once all the requirements are met, proceed with installation by providing following information.

Database connection

  • MySQL-Hostname: 127.0.0.1
  • Database name: froxlor
  • Username for the unprivileged MySQL-account: froxlor
  • Password for the unprivileged MySQL-account: PASSWORD
  • Username for the MySQL-root-account: root
  • Password for the MySQL-root-account: PASSWORD

Server settings

  • Server name (FQDN, no ip-address): SUBDOMAIN.DOMAIN.TLD
  • Server IP: IP_ADDRESS
  • Webserver Apache 2.4: Apache 2.4
  • HTTP username: www-data
  • HTTP groupname: www-data

If everything goes correctly, you will be able to see the following screen with the message “Froxlor was installed successfully

enter image description here

Click the Click here to login link.

enter image description here

To login to the Froxlor panel, provide the admin username and password and click the login button. You will be redirected to the Froxlor dashboard to configure it according to your your requirements.

enter image description here

The installation of froxlor in Ubuntu 18 is complete! Congratulations!

You can now move on to configure all the default settings through System->Settings menu. Once you are done with that, you can create customers, add IPs/ports, create domains, and much more. To explore more about Froxlor, be sure to check out the Froxlor documentation.

Get 24GB RAM for $9.99/mo!

Save $3,960 with SSD Nodes versus competitors like Digital Ocean or Amazon Lightsail.

Snag limited-time prices: