Tutorial

How To Install Froxlor Server Management Panel on Ubuntu 12.04

How To Install Froxlor Server Management Panel on Ubuntu 12.04

Status: Deprecated

This article covers a version of Ubuntu that is no longer supported. If you are currently operate a server running Ubuntu 12.04, we highly recommend upgrading or migrating to a supported version of Ubuntu:

Reason: Ubuntu 12.04 reached end of life (EOL) on April 28, 2017 and no longer receives security patches or updates. This guide is no longer maintained.

See Instead: This guide might still be useful as a reference, but may not work on other Ubuntu releases. If available, we strongly recommend using a guide written for the version of Ubuntu you are using. You can use the search functionality at the top of the page to find a more recent version.

Introduction

Froxlor is a server management control panel that can be used to manage multi-user or shared servers. It is an alternative to cPanel or Webmin that allows system administrators to manage customer contact information, as well as the domain names, email accounts, FTP accounts, support tickets, and webroots that are associated with them.

A caveat about Froxlor: the control panel does not automatically configure the underlying services that it uses. You will need a fairly high level of sysadmin knowledge to set up your web server, mail server, and other services. Once it’s all set up, though, you can do pretty much any sysadmin task from the control panel, with an added layer of customer management.

Prerequisites

Have these prerequisites before you begin. Red text in this tutorial should be changed to match your desired configuration.

  • A registered domain name
  • The domain or subdomain you want to use for Froxlor should have an A record pointing to your server’s IP address. The A record @ specifies the top level of your domain name (example.com), while an A record named froxlor specifies the subdomain froxlor.example.com. The FQDN of the server in the example in this tutorial is example.com
  • If you want to set up email addresses, your MX records also need to point to the server
  • A cloud server (Droplet) running a fresh installation of Ubuntu 12.04. This ensures that the server is free of prior configurations or modifications
  • Make sure to specify your server’s hostname (Droplet Hostname) as your desired Fully Qualified Domain Name (FQDN). For example, example.com or froxlor.example.com. Your FQDN should match the A record you set up
  • A non-root sudo user, in addition to root access
  • Complete the tutorial on How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04. This will install the packages necessary to install and configure Froxlor. While the tutorial was written for Ubuntu 14.04, the installation process works identically on Ubuntu 12.04

Note: At the time of writing, Froxlor is not yet compatible with later versions of Ubuntu, so we will be installing it on Ubuntu 12.04.

Once you access the Droplet, you can verify your hostname with the following command:

hostname

Check your fully-qualified domain name:

hostname -f

Knowing your hostname and FQDN can save headaches with mail servers later on.

Step 1 — Adding Froxlor’s Package Repository

The Froxlor Team does not publish its software on the official Ubuntu package repositories, so you will need to add the address of their repository to your server. To install the add-apt-repository package needed, first install the python-software-properties package.

sudo apt-get install python-software-properties

Then you can add Froxlor’s repository to your server:

sudo add-apt-repository "deb http://debian.froxlor.org wheezy main"

You will need to add the software keys for Froxlor’s repository to your system (again, this is not an official Ubuntu repository).

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key FD88018B6F2D5390D051343FF6B4A8704F9E9BBC

Note: Software keys are used to authenticate the origin of Debian (Ubuntu) software packages. Each repository has its own key that has to be added to Ubuntu manually. When software packages are downloaded, Ubuntu compares the key of the package to the key of the repository it was suppose to come from. If the package is valid, the key will match. The reason you don’t usually have to enter the keys for the official Ubuntu repositories is because they come installed with Ubuntu.

Step 2 — Installing Froxlor

With Froxlor’s repository key added to your server, update your server’s packages list.

sudo apt-get update

Then, install Froxlor. The php5-curl package is necessary for Froxlor to function properly, but at the time this tutorial was written Froxlor does not install php5-curl by itself.

sudo apt-get install froxlor php5-curl

You will notice Froxlor installs many other packages along with it. That is perfectly normal. Froxlor’s ability to manage customer domain names, email accounts, FTP accounts, support tickets, and webroots in one place relies on these dependencies. Dependencies are other packages that a package depends on to operate.

During Froxlor’s installation, some of its dependencies will ask you questions about your desired configuration. This is the first set of installation questions, as you will be installing more of Froxlor’s dependencies later on in Step 4. The first thing you will be asked looks like this:

Create Courier Web-Based Administration Directories? <Yes>

Courier is one of the email servers Froxlor can use. Froxlor does not use Courier as the default Mail Transfer Agent (MTA) because Dovecot uses less memory, but it installs it as a dependency so you need to answer this question. Since you do not want to configure it manually, use your left arrow button to highlight <Yes> in orange and press the ENTER or RETURN key on your keyboard.

The next thing you will see will be this image, or the one after it:

Postfix Configuration (first part): If you have a screen with information but no options to select, go past this screen

At first glance, this does not make sense because nothing will be highlighted in orange to make a selection. That is because you have to press the TAB key on your keyboard, and press ENTER or RETURN, then use your arrow key to select Internet Site from this menu:

Select Postfix Mail Server Type: Internet Site

Then press the ENTER or RETURN key again.

Next, Postfix will ask you a question. Postfix is another mail server that Froxlor can use. Make sure you enter your server’s FQDN as the System mail name. Chances are, it will already be filled out for you. To accept the mail name Postfix suggests for you, press the ENTER or RETURN key.

Enter Postfix FQDN

Lastly, ProFTPD wants to know how it should run. ProFTPD is the default file transfer protocol (FTP) server that Froxlor can use. Make sure standalone is highlighted and press the ENTER or RETURN key.

Once the installation finishes, restart the Apache web server.

sudo service apache2 restart

From this point forward, you can access the Froxlor management panel using your server’s IP Address or FQDN with /froxlor appended. For example, you could visit http://your_server_ip_/froxlor or http://example.com/froxlor.

Step 3 — Configuring Froxlor

Use your favorite web browser to access Froxlor’s management panel on your server. The first time you access the management panel, it will welcome you to Froxlor and tell you Froxlor is not installed yet; hopefully that phrasing will be fixed in a later release of Froxlor. Nonetheless, click on the Start install link.

Froxlor will do a quick check that it has everything it needs on your server to operate properly. All requirements are satisfied should be printed in large green print at the bottom of the page. Click on the Click here to continue link in the bottom right-hand corner of the window.

Froxlor Checking System Requirements…, All requirements are satisfied

Now it is time to give Froxlor some information about your configuration. Here are the options you will need to change or set:

Froxlor Initial Admin, Environment and MySQL configuration

  • Database connection > Password for the unprivileged MySQL-account: This will be the password for a new MySQL account Froxlor sets up to store its configuration settings and customer listings. You will need this password again in Step 4, but you do not need to remember it after that. Use the Secure Password Generator to generate a strong password. An example of a strong password could be &Mk9t(EX"Ce`e?T or w>hCt*5#S+$BePv.
  • Database connection > Password for the MySQL-root account: This is the same password you set in the prerequisite LAMP tutorial when you installed MySQL, for the root MySQL user. Froxlor needs to have access to the root MySQL account so that it can create new MySQL databases and users by itself, which is part of the beauty of Froxlor. You could set up a different privileged MySQL account for added security.
  • Administrator Account > Administrator Username: This is the username you will use to log into Froxlor using a web browser. It is recommended that you change the username to anything that is not the default username admin. In this tutorial, assume the user is named sammy.
  • Administrator Account > Administrator Password + (confirm): This is the password you will use to log into Froxlor using a web browser. You will have to type in this password often; for optimal security, use a complex, long password that can be remembered easily.

The rest of the fields should be fine left with the default settings, if you did your installation on a clean Ubuntu 12.04 Droplet.

Once you are happy with your answers, click on the green Click here to continue button. Froxlor will test to make sure your settings are operational; once it decides they are, Froxlor was installed successfully will be printed in large green print at the bottom of the window.

Use the Click here to login link in the bottom right-hand corner of the window to go to Froxlor’s login page.

To log in, use the username and password you specified in the Administrator Account section of Froxlor’s setup in Step 3. You should also select your preferred language.

Step 4 — Installing and Configuring Froxlor’s Dependencies

At this point Froxlor itself is set up, but the underlying software that it uses to do the heavy lifting is not.

While Froxlor does not make this obvious during the its installation, there is more work to do beyond the initial installation and configuration process. In Froxlor’s current state on your server, it would not be able to operate at its full potential or execute commands on the server on the behalf of the control panel user.

To make Froxlor fully functional, we need to install more packages and run a series of commands on the server. An index of these commands is located in the Configuration menu of Froxlor’s management panel under the Server section.

Visit the Server > Configuration page now.

Froxlor’s configuration index uses three questions to direct you to the right set of commands. The first dropdown menu labeled Distribution needs the distribution of Linux you are running Froxlor on. You are running Ubuntu 12.04; always answer this question as Ubuntu 12.04 (Precise).

Froxlor Configuration Index

The next two menus, Service and Daemon, allow you to specify the category of service and the combination of daemons that you are using. Once you select from all three menus, Froxlor will redirect you to a page describing what to do and which commands to execute on your server. You will have to fill out the combination of these three questions once for each service.

The combination of services and daemons you need to select from the menu, and then execute the commands for, are listed below:

  • Web server: Ubuntu 12.04 (Precise) >> Webserver (HTTP) >> Apache 2
  • Mail sending: Ubuntu 12.04 (Precise) >> Mailserver (SMTP) >> Postfix/Dovecot
  • Mail inboxes: Ubuntu 12.04 (Precise) >> Mailserver (IMAP/POP3) >> Dovecot
  • FTP: Ubuntu 12.04 (Precise) >> FTP-server >> ProFTPd
  • Cron: Ubuntu 12.04 (Precise) >> Others (System) >> Crond (cronscript)

Once you select all three items from the menu, you’ll be brought to a page of commands that need to be run and configuration files that need to be added to the server from the command line.

Froxlor’s configuration instructions assume you will be executing the commands as the root user, so you will need to elevate into a root shell before you begin.

sudo su

Configuration Walkthrough: Mailserver (IMAP/POP3)

We’ll go through one additional server configuration for Froxlor in this tutorial. Once you’ve seen how to do it for the IMAP/POP3 server, you can follow a similar process for the other server components, such as the web server.

Make sure you have Ubuntu 12.04 (Precise) >> Mailserver (IMAP/POP3) >> Dovecot selected from the menu.

The IMAP/POP3 setup contains some oddities that the other sections do not, so this section needs some explaining.

First, Froxlor tells you to execute an apt-get command.

Configuration Index - Dovecot apt-get Command

The problem with this command is that the dovecot-postfix package no longer exists. It has been merged into the mail-stack-delivery package. Omit the dovecot-postfix package from the command and run it like this instead:

apt-get install dovecot-imapd dovecot-pop3d dovecot-mysql mail-stack-delivery

Next, Froxlor asks you to change the following files or create them with the following content if they do not exist.

Configuration Index - Modify /etc/dovecot/conf.d/01-mail-stack-delivery.conf

What this really means is:

  • If the file already exists on the server you have two options: if it’s a fresh installation you can simply rename the old file and replace it with Froxlor’s version. If you have existing configurations you need to preserve, you can merge your existing file with Froxlor’s version
  • If the file does not exist, copy Froxlor’s version of the file onto your server

Since this server has no prior modifications, you do not have to merge the files. You can simply replace the file on your server with Froxlor’s version of the file. To do that, make sure the file path listed above a given text box exists and is empty.

echo > /etc/dovecot/conf.d/01-mail-stack-delivery.conf

To copy the contents of Froxlor’s version of the file to your server, highlight the text from the text box, right click on it and select Copy. Next, open the file on your server in the nano text editor.

nano /etc/dovecot/conf.d/01-mail-stack-delivery.conf

Right click on your Terminal window and select Paste. The contents of the file from Froxlor’s text box will appear inside of nano. Press the CONTROL + X keys simultaneously for a moment. The bottom of nano will ask you this:

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                    
 Y Yes
 N No           ^C Cancel

Press the Y key on your keyboard to save your changes. Press ENTER.

Add the content for the other three files, /etc/dovecot/conf.d/10-auth.conf, /etc/dovecot/conf.d/auth-sql.conf.ext, and /etc/dovecot/dovecot-sql.conf.ext. You can use nano as we did for the first file.

Two of the files should already exist. Before you use nano to add Froxlor’s content for those files, you can back up the originals:

mv /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
mv /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig

Configuration Index - Modify /etc/dovecot/conf.d/01-mail-stack-delivery.conf

For the last file, /etc/dovecot/dovecot-sql.conf.ext, notice how it says Please replace “MYSQL_PASSWORD” on your own. If you forgot your MySQL-password you’ll find it in “lib/userdata.inc.php”. Froxlor is referring to the unprivileged MySQL password you created specifically for Froxlor in Step 3. MYSQL_PASSWORD should be replaced with the unprivileged MySQL password anywhere it appears. Assuming the unprivileged MySQL password you created is &Mk9t(EX"Cee?T, this:

password = MYSQL_PASSWORD

Becomes this:

password = &Mk9t(EX"Cee?T

You should use your own MySQL password to replace MYSQL_PASSWORD.

Execute the chmod command:

chmod 0640 /etc/dovecot/dovecot-sql.conf.ext

Restart the service:

/etc/init.d/dovecot restart

Now you can go back to the Server > Configuration menu and select another dependency to install, such as your web server. Froxlor will show you more commands and configuration files. The rest of Froxlor’s dependency installations and configurations will be straightforward and should be followed as they are presented.

Note that Froxlor’s instructions are not necessarily everything you will need to set up the server. You may have to do some troubleshooting with users, permissions, and other configuration settings from the command line to get everything to work. You can look up the specific server you are trying to install for more instructions. For example, you will likely have to look up additional configuration instructions for Dovecot to get email working.

Adding Customers, Domains, and More

Once you have all of your servers set up on the backend, you can start adding customers, domains, and email addresses through Froxlor. Start by going to the Resources > Customers menu and adding your first customer. You may want to check out the Froxlor demo site to see more configuration options.

Troubleshooting

At this point, Froxlor should be completely configured and functional. If you find that something is not working properly (e.g. cannot access FTP, not sending emails, etc.), you can refer to Froxlor’s forums, AskUbuntu Q&A, or DigitalOcean’s user community.

Please be prepared to post program log files from the /var/log directory on your server to assist community members in resolving your problem. You can use Pastebin.com for posting program logs online.

Conclusion

Froxlor Dashboard

Now that you have installed and configured Froxlor, you have a free alternative to cPanel or Webmin that will help you spend less time configuring and maintaining your multi-user or shared server. To further customize your Froxlor installation, refer to the Server > Settings menu in Froxlor’s control panel. If you choose to change any of the default daemons, remember to follow Froxlor’s configuration instructions, just like we did in the IMAP/POP3 section above.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
10 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Hello guys,

I’m trying to install this on Ubuntu 16.04 with php7, but I can’t because php5-curl is not available and when I try to install just froxlor I received this:

froxlor : Depends: php5 but it is not installable or
                    php5-cgi but it is not installable
           Depends: php5-cli but it is not installable
           Depends: php5-curl but it is not installable
           Depends: php5-mysqlnd but it is not installable or
                    php5-mysql but it is not installable
           Recommends: postfix-mysql but it is not going to be installed or
                       exim4-daemon-heavy but it is not going to be installed
           Recommends: libsasl2-modules-sql but it is not going to be installed
           Recommends: maildrop but it is not going to be installed
           Recommends: dovecot-common or
                       courier-authlib-mysql but it is not going to be installed
           Recommends: dovecot-imapd but it is not going to be installed or
                       courier-imap but it is not going to be installed
           Recommends: dovecot-pop3d but it is not going to be installed or
                       courier-pop but it is not going to be installed
           Recommends: php5-gd but it is not installable
           Recommends: php5-imap but it is not installable
           Recommends: proftpd-mod-mysql but it is not going to be installed or
                       pure-ftpd-mysql but it is not going to be installed
           Recommends: bind9 but it is not going to be installed or
                       pdns-server but it is not going to be installed

How can I do this with php7?

Even I try to install php7-curl and php7.0-curl but I can’t.

Thanks!

After finishing the installation, customer domains will be hosted at /var/customers/ by default. Remember to grant permissions to that directory from the apache2.conf file, otherwise you will get a forbidden error when accessing from the browser.

Add to /etc/apache2/apache2.conf

<Directory /var/customers/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

No matter what I try, on a clean install with only LAMP installed, I cannot get past step 2. Every time I try to go to the browser to continue onto step 3, I get a 404 error.

I have gone so far as to create an entire new droplet from scratch to handle this issue. I’m running 14.04, which by all accounts should be compatible with the most recent version of Froxlor. I even tried changing the kernel to 12.04, no difference.

Any ideas?

First of all, thanks! I got most of it to work. Databases are fine, domains are working and properly mapped.

My emails don’t seem to be working, though. I set a couple of forwarders, but none of them are reaching the destination emails.

Any idea of what might have gone wrong for me?

I didn’t hear about this CP… i’m using VestaCP but i really like this one… I’m gonna give it a try. Thanks for this tutorial :)

Im testing a alternative control panel but for centos call centos-webpanel.com …and setup is very clean… im testing not on prodution server until know more about, but get my attention

I installed everything but when going to my site via it’s IP address for the moment, it still simply shows the Apache message:

It works! This is the default web page for this server. The web server software is running but no content has been added, yet.

Hello Digital Ocean. Nice article. I want to ask if the cross-site scripting vulnerability in Froxlor URL is fixed. I installed Froxlor on my server, but i read about this and now i am scared.

I’m impressed! Offer as many tutorials as you can, since this is understandable and in language that should be efficient and concise for users. I’m sure clear instructions aren’t always easy to find!

I’m running a 14.04.1 droplet, so already looking forward to your follow up tutorial ;)

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.