{"id":2044,"date":"2018-06-13T15:49:08","date_gmt":"2018-06-13T15:49:08","guid":{"rendered":"https:\/\/blog.ssdnodes.com\/blog\/?p=2044"},"modified":"2025-05-18T19:36:36","modified_gmt":"2025-05-18T19:36:36","slug":"froxlor-control-panel-ubuntu","status":"publish","type":"post","link":"https:\/\/www.ssdnodes.com\/blog\/froxlor-control-panel-ubuntu\/","title":{"rendered":"How to install Froxlor control panel in Ubuntu 18.04"},"content":{"rendered":"<div class=\"preview__inner-2\">\n<div id=\"preview1\" class=\"g-b g-b--t1of2 split split-preview\">\n<div id=\"preview\" class=\"preview-html\">\n<p>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.<\/p>\n<p>With Froxlor, you can get the raw administrative power of cPanel without paying a dime.<\/p>\n<h2><a id=\"Prerequisites_4\"><\/a>Prerequisites<\/h2>\n<ul>\n<li>A VPS running Ubuntu 18.04. For details on upgrading your Ubuntu 16.04 VPS to 18.04, see our <a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-upgrading-to-ubuntu-18-04-from-ubuntu-16-04\/\">upgrading tutorial<\/a>.<\/li>\n<li>A registered domain name.<\/li>\n<li>A DNS A record that points to your server\u2019s IP address based on the FQDN you want to use. For example, an A record named <code>test<\/code> would point to <code>test.DOMAIN.TLD<\/code>.<\/li>\n<\/ul>\n<h2><a id=\"Notes_11\"><\/a>Notes<\/h2>\n<ul>\n<li>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: <code>VARIABLE<\/code>), you should replace them with your specific details.<\/li>\n<li>In <code>example.ssdnodes.com<\/code>, <code>example<\/code> is the <code>SUBDOMAIN<\/code>, <code>ssdnodes<\/code> is the <code>DOMAIN<\/code>, and <code>.com<\/code> is the <code>TLD<\/code>.<\/li>\n<\/ul>\n<div class=\"cta-inline\"><\/div>\n<h2><a id=\"Step_1_Configure_the_FQDN_of_the_host_18\"><\/a>Step 1. Configure the FQDN of the host<\/h2>\n<p>To change the hostname of your system, use the <code>hostnamectl<\/code> command. <code>hostnamectl<\/code> will directly update the kernel about the change in the hostname, and you don\u2019t need to reboot the machine afterward. We\u2019re going to choose the hostname based on the subdomain we\u2019ll use to access the control panel later.<\/p>\n<pre><code>$ sudo hostnamectl set-hostname SUBDOMAIN\n<\/code><\/pre>\n<p>Next, edit the file \/etc\/hosts and add the following line at the end.<\/p>\n<pre><code>$ sudo vi \/etc\/hosts\nIP_ADDRESS SUBDOMAIN.DOMAIN.TLD SUBDOMAIN\n<\/code><\/pre>\n<p>Here\u2019s an example using a fake IP, <code>panel<\/code> as the subdomain\/hostname, and a domain of mine.<\/p>\n<pre><code>$ sudo vi \/etc\/hosts\n123.456.78.9 panel.dwijadasdey.tk dwijadasdey\n<\/code><\/pre>\n<p>Run the command below to restart network manager to apply above changes:<\/p>\n<pre><code>$ sudo systemctl restart NetworkManager.service\n<\/code><\/pre>\n<p>Check the hostname and FQDN of the host:<\/p>\n<pre><code>$ hostname\npanel\n$ hostname -f\nSUBDOMAIN.DOMAIN.TLD\n<\/code><\/pre>\n<h2><a id=\"Step_2_Install_LAMP_56\"><\/a>Step 2. Install LAMP<\/h2>\n<p>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 <code>tasksel<\/code>, a tool that installs multiple related packages as a co-ordinated \u201ctask\u201d in your system.<\/p>\n<p><code>tasksel<\/code> is installed by default in Ubuntu 18.04. If <code>tasksel<\/code> is missing from your system then install it by issuing following command from the terminal:<\/p>\n<pre><code>$ sudo apt-get install tasksel\n<\/code><\/pre>\n<p>To run tasksel from the command line, type:<\/p>\n<pre><code>$ sudo tasksel\n<\/code><\/pre>\n<p>Tick <code>LAMP Server<\/code> and press your <code>TAB<\/code> 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.<\/p>\n<p><img decoding=\"async\" title=\"Install LAMP server using tasksel\" src=\"https:\/\/lh3.googleusercontent.com\/lwoHWhoThMJyvI1b_eS6pQFuEeiOFj2s1qU__qY2tU-_ZA8gjZe7w-YFEpWrTWHox4UCaq6SOA4T\" alt=\"Install LAMP server\" \/><\/p>\n<p>Find the versions of Apache, MySQL and PHP by issuing following three commands from the terminal.<\/p>\n<pre><code>$ apache2 -v\nServer version: Apache\/2.4.29 (Ubuntu)\nServer built:   2018-04-25T11:38:24\n$ mysql -V\nmysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper\n$ php -v\nPHP 7.2.5-0ubuntu0.18.04.1 (cli) (built: May  9 2018 17:21:02) ( NTS )\nCopyright (c) 1997-2018 The PHP Group\nZend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies\n    with Zend OPcache v7.2.5-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies\n<\/code><\/pre>\n<p>To test the installation of LAMP server, create a <code>phpinfo<\/code> file inside the Apache root directory, which is <code>\/var\/www\/html<\/code>.<\/p>\n<pre><code>$ cd \/var\/www\/html\n$ sudo echo \"&lt;?php echo phpinfo();?&gt;\" &gt; info.php\n<\/code><\/pre>\n<p>Point your favorite web browser to <code>http:\/\/SUBDOMAIN.DOMAIN.TLD\/info.php<\/code>. You can view the php version, system information, build date, and so on. This confirms that the installation of LAMP stack is successful.<\/p>\n<h2><a id=\"Step_3_Configuring_PHPMySQL_for_Froxlor_100\"><\/a>Step 3. Configuring PHP\/MySQL for Froxlor<\/h2>\n<h3><a id=\"Change_the_MySQL_root_password_102\"><\/a>Change the MySQL root password<\/h3>\n<p>MySQL 5.7 uses the <code>auth_socket plugin<\/code> for authenticating users who try to login from within the server itself. This plug-in doesn\u2019t care and doesn\u2019t need a password. It just checks if the user is connecting using a UNIX socket and then compares the user name from the <code>user<\/code> 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.<\/p>\n<p>Log into the MySQL shell as <code>root<\/code> and change the plugin\/password for user <code>root<\/code>:<\/p>\n<pre><code>$ mysql -u root -p\n\nmysql&gt; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD!';\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; FLUSH PRIVILEGES;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt;  quit;\nBye\n<\/code><\/pre>\n<p>Now the Froxlor web installer will be able to connect to the MySQL database from a remote location during installation.<\/p>\n<h3><a id=\"Create_a_database_for_Froxlor_123\"><\/a>Create a database for Froxlor<\/h3>\n<p>While still logged into the MySQL shell, create a database called <code>froxlor<\/code> and an unprivileged user named <code>froxlor<\/code> with a password using the following commands.<\/p>\n<pre><code>mysql&gt; create database froxlor;\n\nmysql&gt; create user 'froxlor'@'localhost' IDENTIFIED BY 'PASSWORD!';\n\nmysql&gt; GRANT ALL PRIVILEGES ON froxlor.* TO 'froxlor'@'localhost' IDENTIFIED BY 'PASSWORD!' WITH GRANT OPTION;\n\nmysql&gt; flush privileges;\n\nmysql&gt; exit;\n<\/code><\/pre>\n<h3><a id=\"Install_the_PHP_extensions_needed_by_Froxlor_139\"><\/a>Install the PHP extensions needed by Froxlor<\/h3>\n<p>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:<\/p>\n<pre><code>$ 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\n$ sudo systemctl restart apache2\n<\/code><\/pre>\n<p>Now the stage is set for installing Froxlor in Ubuntu 18!<\/p>\n<h2><a id=\"Step_4_Install_Froxlor_151\"><\/a>Step 4. Install Froxlor<\/h2>\n<p>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 <code>\/var\/www\/html<\/code> Once unpacked, assign correct ownership to the web root of Apache.<\/p>\n<pre><code>$ cd \/var\/www\/html\n$ sudo wget  https:\/\/files.froxlor.org\/releases\/froxlor-latest.tar.gz\n$ sudo tar -zxvf froxlor-latest.tar.gz\n$ sudo mv froxlor\/* \/var\/www\/html\n$ sudo chown -R www-data:www-data \/var\/www\/html\n$ sudo rm -rf froxlor froxlor-latest.tar.gz\n<\/code><\/pre>\n<p>Now point your web browser to the FQDN you set up in the first step: <code>http:\/\/SUBDOMAIN.DOMAIN.TLD<\/code> In my case, that was <code>http:\/\/panel.dwijadasdey.tk<\/code>. You can also connect to the server using your IP address: <code>http:\/\/IP_ADDRESS<\/code>.<\/p>\n<p>You will be greeted by Froxlor welcome screen.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Install Froxlor: the Froxlor welcome screen\" src=\"https:\/\/lh3.googleusercontent.com\/5-wcfLpIe-7xMK2AUbiBZgpvlBTos2mp0ZooFcoJfBFxtzV4HuIezKFkVPfLFYKKfIqsYvX7lqf_\" alt=\"\" \/><\/p>\n<p>Click the <code>Start install<\/code> link to proceed to the next step.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Install Froxlor: Froxlor system requirements\" src=\"https:\/\/lh3.googleusercontent.com\/KpwoJUjf4LDmyLqvvJphROicm8s5kuXXaOyLGb8ywci9xP4lolssWRiDqEBXthNC57yy2JvsEVbU\" alt=\"enter image description here\" \/><\/p>\n<p>Once all the requirements are met, proceed with installation by providing following information.<\/p>\n<p><strong>Database connection<\/strong><\/p>\n<ul>\n<li>MySQL-Hostname: <code>127.0.0.1<\/code><\/li>\n<li>Database name: <code>froxlor<\/code><\/li>\n<li>Username for the unprivileged MySQL-account: <code>froxlor<\/code><\/li>\n<li>Password for the unprivileged MySQL-account: <code>PASSWORD<\/code><\/li>\n<li>Username for the MySQL-root-account: root<\/li>\n<li>Password for the MySQL-root-account: <code>PASSWORD<\/code><\/li>\n<\/ul>\n<p><strong>Server settings<\/strong><\/p>\n<ul>\n<li>Server name (FQDN, no ip-address): <code>SUBDOMAIN.DOMAIN.TLD<\/code><\/li>\n<li>Server IP: <code>IP_ADDRESS<\/code><\/li>\n<li>Webserver Apache 2.4: <code>Apache 2.4<\/code><\/li>\n<li>HTTP username: <code>www-data<\/code><\/li>\n<li>HTTP groupname: <code>www-data<\/code><\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Install Froxlor: the final installation step\" src=\"https:\/\/lh3.googleusercontent.com\/mPxf3IDprX-3r6gYdMewfKhJzQuyOZoh6VFtgzCMxYP2Ydz_zmAY3ZC-h0TskHLSXbdMtu8bCyn-\" alt=\"\" \/><\/p>\n<p>If everything goes correctly, you will be able to see the following screen with the message \"<strong><em>Froxlor was installed successfully<\/em><\/strong>\"<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Froxlor installed successfully\" src=\"https:\/\/lh3.googleusercontent.com\/bK3Wnn2RJ1wHoU8BuV2DDS6oEEHzJMb51pEzVhGQh3MP8v4Rxti3aNmDBHW1mCy70kpGotubTi0l\" alt=\"enter image description here\" \/><\/p>\n<p>Click the <code>Click here to login<\/code> link.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Installing Froxlor: the Froxlor login screen\" src=\"https:\/\/lh3.googleusercontent.com\/m5xPrhobJQS-yGcIK6dGniiGRX_RQPhzqSgDWRq18ySW4Moy75CH1qyZaY2etyVa9teuiaQnOHUd\" alt=\"enter image description here\" \/><\/p>\n<p>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.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Installing Froxlor: the Froxlor dashboard\" src=\"https:\/\/lh3.googleusercontent.com\/HnL_e9_2uzfT4nda5encF8e7I0AZmG9OR7ikG7ZC_Z3vccdnqSG_33rNaj-aHPP1rUq7lkENUW0v\" alt=\"enter image description here\" \/><\/p>\n<p>The installation of froxlor in Ubuntu 18 is complete! Congratulations!<\/p>\n<p>You can now move on to configure all the default settings through <code>System-&gt;Settings<\/code> 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 <a href=\"https:\/\/github.com\/Froxlor\/Froxlor\/wiki\" target=\"_blank\" rel=\"noopener\">Froxlor documentation<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we&#8217;ll look at how to install Froxlor in Ubuntu 18.04. It&#8217;s pretty straightforward, and once you&#8217;re done, you&#8217;ll be able to perform complex Linux administrative tasks with the help of an easy-to-use interface.<\/p>\n","protected":false},"author":20,"featured_media":2045,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[18,30],"tags":[268,185],"class_list":["post-2044","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-tutorials","tag-froxlor","tag-ubuntu"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/2044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/comments?post=2044"}],"version-history":[{"count":3,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/2044\/revisions"}],"predecessor-version":[{"id":13059,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/2044\/revisions\/13059"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media\/2045"}],"wp:attachment":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media?parent=2044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/categories?post=2044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/tags?post=2044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}