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.
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.
Have these prerequisites before you begin. Red text in this tutorial should be changed to match your desired configuration.
@
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
example.com
or froxlor.example.com
. Your FQDN should match the A record you set upNote: 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.
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.
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:
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:
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:
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.
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
.
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.
Now it is time to give Froxlor some information about your configuration. Here are the options you will need to change or set:
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.
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).
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:
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
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.
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.
What this really means is:
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
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.
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.
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.
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.
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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
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:
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 ;)