Skip to content
Follow
CMS Ubuntu Linux

How to Install FossBilling with Nginx on Ubuntu Linux

Richard
Written by
Richard
May 1, 2023 Updated Jun 19, 2026 4 min read
How to Install Google Chrome on Ubuntu Linux
How to Install Google Chrome on Ubuntu Linux

You can install FossBilling with Nginx on Ubuntu Linux to create your own self-hosted client billing and automation system.

FossBilling is an open-source solution that streamlines invoicing, payment processing, and customer management for your business. By setting it up on your Ubuntu server, you gain complete control over your sensitive client data and operational workflows.

This tutorial guides you through the process of installing FossBilling using the Nginx web server on Ubuntu 22.04 LTS. You’ll configure the necessary server blocks and database for a robust billing platform.

⚡ Quick Answer

Install Nginx and PHP-FPM using `sudo apt install nginx php-fpm php-mysql`. Then, download FOSSBilling, configure Nginx with a site file, and run the web-based setup wizard. Finally, set up the cron job with `sudo crontab -u www-data -e`.

Install Nginx on Ubuntu Linux

Nginx is a fast web server that FOSSBilling needs, and installing it on Ubuntu is straightforward. Open your terminal and run ‘sudo apt update’ to refresh your software list, then install Nginx with ‘sudo apt install nginx’.

  1. Open your terminal and update your software list: sudo apt update
  2. Install Nginx: sudo apt install nginx

You can manage the Nginx service with these commands:

  • Stop: sudo systemctl stop nginx
  • Start: sudo systemctl start nginx
  • Enable at startup: sudo systemctl enable nginx

Check if it works by visiting your server IP address in a web browser.

Install Nginx web server on Ubuntu Linux
Install Nginx web server on Ubuntu Linux
You should see the Nginx welcome page. For more detailed guidance, check out the How to install Nginx on Ubuntu guide.

Install MariaDB on Ubuntu Linux

MariaDB is the database FOSSBilling uses to keep all your billing details safe. To install MariaDB on Ubuntu, first get the repository helper with ‘sudo apt install software-properties-common curl’. Then, add the MariaDB repository using the curl command, and finally install the server with ‘sudo apt install mariadb-server’.

  1. Install the repository helper: sudo apt install software-properties-common curl
  2. Add the MariaDB repo: curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  3. Install the server: sudo apt install mariadb-server

Start and enable the service: sudo systemctl enable --now mariadb. For more help, visit How to install MariaDB on Ubuntu Linux.

Create FOSSBilling database

FOSSBilling needs its own database to store your billing information. First, make your MariaDB installation more secure by running ‘sudo mysql_secure_installation’ and following the steps. Next, log into MariaDB with ‘sudo mariadb’ and create the ‘fossdb’ database and ‘fossdbuser’ with the right permissions.

sudo mysql_secure_installation

Follow the on-screen prompts. Now, create your database:

  1. Log in: sudo mariadb
  2. Run these commands:
    CREATE DATABASE fossdb;
    CREATE USER fossdbuser@localhost IDENTIFIED BY 'your_password';
    GRANT ALL ON fossdb.* TO fossdbuser@localhost WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    exit

Install PHP-FPM on Ubuntu Linux

FOSSBilling runs using PHP, and PHP-FPM helps your server communicate with PHP scripts efficiently. To install PHP-FPM and the needed modules on Ubuntu, simply run the command ‘sudo apt install php-fpm php-mysql php-intl php-curl php-cli php-zip php-common php-mbstring php-xml’.

sudo apt install php-fpm php-mysql php-intl php-curl php-cli php-zip php-common php-mbstring php-xml

Enable it to start automatically: sudo systemctl enable --now php8.3-fpm (Note: replace the asterisk with your installed PHP version, e.g., `php8.1-fpm`, by running `php -v`).

General: Configure Nginx

Setting up Nginx correctly is key for FOSSBilling to work. You’ll need to create a directory for FOSSBilling using ‘sudo mkdir -p /var/www/fossbilling’ and set the correct owner with ‘sudo chown -R www-data:www-data /var/www/fossbilling’. Then, create the Nginx configuration file at ‘/etc/nginx/sites-available/fossbilling.conf’.

sudo mkdir -p /var/www/fossbilling
sudo chown -R www-data:www-data /var/www/fossbilling

Now, create the configuration file:

sudo nano /etc/nginx/sites-available/fossbilling.conf

Paste your server settings into this file, save it, and then enable this new configuration:

sudo ln -s /etc/nginx/sites-available/fossbilling.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Download and Setup

It’s time to download FOSSBilling and finish the setup. Go to your temporary directory by running ‘cd /tmp’, then download the latest stable version with ‘curl https://fossbilling.org/downloads/stable -L –output FOSSBilling.zip’. Unzip it into your web directory using ‘sudo unzip FOSSBilling.zip -d /var/www/fossbilling’, and then follow the on-screen wizard by visiting your domain.

cd /tmp
curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zip
sudo unzip FOSSBilling.zip -d /var/www/fossbilling

Visit your domain in a browser.

FOSSBilling setup wizard on Ubuntu Linux
FOSSBilling setup wizard on Ubuntu Linux
Follow the setup wizard to connect your database (
Entering database information in FOSSBilling setup
Entering database information in FOSSBilling setup
) and create an admin account (
Creating admin account in FOSSBilling on Ubuntu
Creating admin account in FOSSBilling on Ubuntu
). Finally, remove the installation folder for security:

sudo rm -rf /var/www/fossbilling/install

Set up the background task (cron job):

sudo crontab -u www-data -e

Add this line: */5 * * * * php /var/www/fossbilling/cron.php

Completing FOSSBilling setup on Ubuntu Linux
Completing FOSSBilling setup on Ubuntu Linux
You are now ready to log in to your dashboard.
FOSSBilling dashboard interface on Ubuntu Linux
FOSSBilling dashboard interface on Ubuntu Linux
For SSL setup, see How to setup Let’s Encrypt with Nginx web server.

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.

📚 Related Tutorials

How to Install Monica CRM on Ubuntu with Nginx
CMS How to Install Monica CRM on Ubuntu with Nginx
How to Install FreeScout with Nginx on Ubuntu Linux
CMS How to Install FreeScout with Nginx on Ubuntu Linux
How to Install JasperReports Server on Ubuntu Linux
CMS How to Install JasperReports Server on Ubuntu Linux

No comments yet — be the first to share your thoughts!

Leave a Comment

Your email address will not be published. Required fields are marked *