How to install Froxlor control panel in Ubuntu 18.04
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.
- 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
testwould point to
- 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.
To change the hostname of your system, use the
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
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
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.
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
$ 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.
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
$ 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.
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;
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!
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:
You will be greeted by Froxlor welcome screen.
Start install link to proceed to the next step.
Once all the requirements are met, proceed with installation by providing following information.
- Database name:
- Username for the unprivileged MySQL-account:
- Password for the unprivileged MySQL-account:
- Username for the MySQL-root-account: root
- Password for the MySQL-root-account:
- Server name (FQDN, no ip-address):
- Server IP:
- Webserver Apache 2.4:
- HTTP username:
- HTTP groupname:
If everything goes correctly, you will be able to see the following screen with the message “Froxlor was installed successfully”
Click here to login link.
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.
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.