Follow
Ubuntu Linux

How to Install BoxBilling with Apache on Ubuntu Linux

Richard
Written by
Richard
Apr 23, 2022 Updated Apr 18, 2026 3 min read
Enable Automatic Suspension in Ubuntu Linux Easily
Enable Automatic Suspension in Ubuntu Linux Easily

You can install BoxBilling, an open-source client billing and management system, on Ubuntu Linux using the Apache web server.

BoxBilling automates essential business tasks like generating invoices, managing client accounts, and processing payments directly from your server. This setup is ideal for freelancers and small businesses seeking a powerful, self-hosted solution.

This tutorial guides you through configuring Apache and installing BoxBilling version 4.x on your Ubuntu system, ensuring you have a robust billing portal ready to go.

⚡ Quick Answer

Install BoxBilling by downloading and extracting the files to /var/www/boxbilling. Create a database named boxbilling with a dedicated user. Configure Apache with a virtual host for your domain and enable the necessary PHP modules. Finally, clean up the installer directory and set up a cron job for daily tasks.

How to install Apache on Ubuntu Linux

Apache is the web server that serves your website to visitors. First, install it by running these commands:

🐧Bash / Shell
sudo apt update
sudo apt install apache2

Next, you can manage the Apache service with these commands:

🐧Bash / Shell
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl enable apache2

Finally, test your installation by visiting your server’s IP address in a web browser.

Apache2 test page displayed on Ubuntu Linux
apache2 test page

How to install MariaDB on Ubuntu Linux

BoxBilling needs a database to store information. MariaDB is a fast and secure choice.

🐧Bash / Shell
sudo apt install mariadb-server mariadb-client

Secure your database with this command:

🐧Bash / Shell
sudo mysql_secure_installation

Follow the prompts. Press Enter for the current password. When asked about authentication, choose the default secure option. Answer “y” to remove anonymous users, disallow remote root login, and remove the test database.

mariadb welcome
mariadb ubuntu 1604

How to install PHP on Ubuntu Linux

We’ll use PHP 8.3 for this setup. To ensure you have the latest version, we’ll add a software repository (a source for installing new software).

🐧Bash / Shell
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Install PHP 8.3 and the required extensions:

🐧Bash / Shell
sudo apt install php8.3 php8.3-mysql php8.3-xml php8.3-mbstring php8.3-fpm php8.3-curl php8.3-gd php8.3-zip

General Configuration

For better performance, we’ll configure Apache to use PHP-FPM (FastCGI Process Manager), which handles PHP code execution, along with its proxy module. Enable the necessary modules:

🐧Bash / Shell
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm

Create a configuration file for your site:

🐧Bash / Shell
sudo nano /etc/apache2/sites-available/boxbilling.conf

Paste this content into the file:

💻Code
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/boxbilling
<Directory /var/www/boxbilling/>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Enable the site and restart Apache:

🐧Bash / Shell
sudo a2ensite boxbilling.conf
sudo systemctl restart apache2

Set the correct ownership for your files:

🐧Bash / Shell
sudo chown -R www-data:www-data /var/www/boxbilling

How to create a BoxBilling database

Log into your database console:

🐧Bash / Shell
sudo mysql -u root -p

Run these commands to create your database and user:

💻Code
CREATE DATABASE boxbilling;
CREATE USER 'boxbillinguser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL ON boxbilling.* TO 'boxbillinguser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

How to download BoxBilling

Download and extract the files:

Command Prompt
cd /tmp
wget https://github.com/boxbilling/boxbilling/releases/download/4.22.1.3/BoxBilling.zip
sudo mkdir -p /var/www/boxbilling
sudo unzip BoxBilling.zip -d /var/www/boxbilling

How to setup Let’s Encrypt

To secure your site with SSL, follow the guide here: How to Setup Let’s Encrypt on Ubuntu Linux with Apache – Website for Students.

Finalizing the setup

Once installed, clean up the installer folder for security:

🐧Bash / Shell
sudo rm -rf /var/www/boxbilling/install

Set the configuration file to be read-only:

🐧Bash / Shell
sudo chmod 644 /var/www/boxbilling/bb-config.php

Add a cron job to keep your billing tasks running:

🐧Bash / Shell
sudo crontab -e

Add this line to the file:

🐘PHP
*/5 * * * * php /var/www/boxbilling/bb-cron.php
BoxBilling setup screen on Ubuntu Linux
boxbilling ubuntu set up
BoxBilling database setup wizard on Ubuntu
boxbilling database set up wizard
BoxBilling administrator account creation on Ubuntu
ubuntu boxbilling administrator account
Successful installation confirmation of BoxBilling on Ubuntu
ubuntu boxbilling success install
BoxBilling login screen on Ubuntu Linux
ubuntu boxbilling login

Your BoxBilling installation is now complete and ready for use.

[Y/n] [Y/n] [Y/n] [Y/n] [Y/n] [Y/n]

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 Let's Chat on Ubuntu Linux
Ubuntu Linux How to Install Let's Chat on Ubuntu Linux
How to Delete Let's Encrypt SSL Certificates
Ubuntu Linux How to Delete Let's Encrypt SSL Certificates
Change Power Button Behavior in Ubuntu Linux
Ubuntu Linux Change Power Button Behavior in Ubuntu Linux
How to Install i-doit on Ubuntu with Apache
CMS How to Install i-doit on Ubuntu with Apache

0 Comments

Leave a Comment

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