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.
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 afterwards. 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 completed within minutes.
Find the versions of Apache, MySQL and PHP by issuing the 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 "" > 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.