How to Install BoxBilling with Apache on Ubuntu Linux
Installing BoxBilling on Ubuntu Linux with the Apache web server lets you manage clients and automate billing for your business. BoxBilling is free, open-source software that helps you create invoices, track clients, and handle payments right from your own server.
This setup is perfect for freelancers or small businesses wanting a flexible, self-hosted billing system. You’ll learn how to set up Apache and install BoxBilling, specifically version 4.x, on your Ubuntu machine.
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
Installing Apache on Ubuntu is a key step for getting your BoxBilling site online. Apache is the web server software that will display your website to visitors. You can install it using commands in your terminal.
sudo apt update
sudo apt install apache2Next, you can manage the Apache service with these commands:
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl enable apache2Finally, test your installation by visiting your server’s IP address in a web browser.

How to install MariaDB on Ubuntu Linux
BoxBilling needs a database to store all its important information, and installing MariaDB on Ubuntu is a great way to set this up. You’ll need to install the MariaDB server and client packages, and then secure your installation.
sudo apt install mariadb-server mariadb-clientSecure your database with this command:
sudo mysql_secure_installationFollow 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
To make BoxBilling work correctly, you need to install PHP 8.3 on Ubuntu. This involves adding a special software source to ensure you get the latest version. Then, you install PHP 8.3 along with the specific extensions BoxBilling requires.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt updateInstall 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-zipGeneral Configuration
Configuring Apache to work with PHP-FPM helps BoxBilling run smoothly and quickly. PHP-FPM (FastCGI Process Manager) is a process manager for PHP that helps Apache process PHP code more efficiently. We will enable necessary Apache modules, configure PHP-FPM, and create a specific site file for BoxBilling.
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpmCreate a configuration file for your site:
sudo nano /etc/apache2/sites-available/boxbilling.confPaste 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 apache2Set the correct ownership for your files:
sudo chown -R www-data:www-data /var/www/boxbillingHow to create a BoxBilling database
Log into your database console:
sudo mysql -u root -pRun 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/boxbillingHow to setup Let’s Encrypt
To secure your site with SSL, follow this guide: How to Setup Let’s Encrypt on Ubuntu Linux with Apache – Website for Students.
Finalizing the setup
Finalizing the BoxBilling setup on Ubuntu involves cleaning out installer files for security. For added security, you should also make the configuration file read-only to protect sensitive settings. Finally, adding a cron job ensures background billing tasks run automatically.
sudo rm -rf /var/www/boxbilling/installSet the configuration file to be read-only:
sudo chmod 644 /var/www/boxbilling/bb-config.phpAdd a cron job to keep your billing tasks running:
sudo crontab -eAdd 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.