How to Install BoxBilling with Apache on Ubuntu Linux
This guide helps you install BoxBilling on Ubuntu Linux using the Apache web server. BoxBilling is a tool to manage client billing, invoices, and payments. You can also use free Letās Encrypt SSL certificates to secure your site.
Why use BoxBilling? It automates your business tasks like sending invoices and collecting payments. What happens when done? You will have a fully functional billing portal running on your own server.
For more details, visit the homepage.
How to install Apache on Ubuntu Linux
Apache is the web server that displays your site to visitors. Run these commands to install it:
sudo apt update
sudo apt install apache2
Use these commands to manage the service:
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl enable apache2
Visit your serverās IP address in a browser to test it.

How to install MariaDB on Ubuntu Linux
BoxBilling needs a database to store information. MariaDB is a fast and secure choice.
sudo apt install mariadb-server mariadb-client
Secure your database with this command:
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.

How to install PHP on Ubuntu Linux
We use PHP 8.3 for this setup. We will use a repository to get the latest version.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Install PHP 8.3 and the required extensions:
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
We will use PHP-FPM with Apacheās proxy module for better performance. Enable the necessary modules:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
Create a configuration file for your site:
sudo nano /etc/apache2/sites-available/boxbilling.conf
Paste this content into the file:
<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:
sudo a2ensite boxbilling.conf
sudo systemctl restart apache2
Set the correct ownership for your files:
sudo chown -R www-data:www-data /var/www/boxbilling
How to create a BoxBilling database
Log into your database console:
sudo mysql -u root -p
Run these commands to create your database and user:
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:
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:
sudo rm -rf /var/www/boxbilling/install
Set the configuration file to be read-only:
sudo chmod 644 /var/www/boxbilling/bb-config.php
Add a cron job to keep your billing tasks running:
sudo crontab -e
Add this line to the file:
*/5 * * * * php /var/www/boxbilling/bb-cron.php





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?
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.
Thanks a lot Sir for your assistance.