Installazione FOSSBilling · 14 min read · Oct 20, 2025

Come installare FOSSBilling con Nginx su Rocky Linux 9

FOSSBilling è un sistema di fatturazione gratuito e open-source progettato per essere facile per clienti e venditori. FOSSBilling è un fork di BoxBilling. Fornisce un’esperienza eccellente per i clienti con un’interfaccia intuitiva e supporta più gateway di pagamento. FOSSBilling è adatto per più aziende, da piccole a medie o anche grandi imprese. FOSSBilling può aiutarti ad automatizzare la tua fatturazione, i pagamenti in entrata e la gestione e comunicazione con i clienti.

Installerò FOSSBilling su un server Rocky Linux 9 in questa guida. Questo walkthrough include l’installazione del server web Nginx, del server di database MariaDB, di PHP-FPM 8.2 e dello strumento Certbot per generare certificati SSL/TSL. Alla fine, avrai una soluzione di fatturazione e gestione dei clienti che può essere utilizzata per la tua attività quotidiana.

Requisiti

Per completare questa guida, avrai bisogno dei seguenti requisiti:

  • Un server con Rocky Linux 9 installato - Questo esempio utilizza un Rocky Linux con hostname ‘fossbilling-rocky‘.
  • Un utente non root con privilegi di amministratore sudo/root.
  • SELinux in esecuzione in modalità permissive.
  • Un nome di dominio puntato all’indirizzo IP del tuo server - Questo esempio utilizza un sottodominio ‘fossbilling.howtoforge.local‘.

Se questi requisiti sono pronti, puoi completare l’installazione di FOSSBilling.

Installazione del server web Nginx

FOSSBilling può essere eseguito con i server web Nginx e Lighttpd. Questa guida utilizzerà Nginx come server web. Installerai Nginx dal repository ufficiale Rocky Linux AppStream in questo passaggio.

Per iniziare, assicurati che il repository EPEL sia aggiunto al tuo sistema. Oppure puoi installarlo tramite il comando dnf qui sotto.

sudo dnf install epel-release

Successivamente, installa il server web Nginx utilizzando il comando dnf qui sotto. Quando richiesto, inserisci y per confermare e premi INVIO per procedere.

sudo dnf install nginx

Output:

install nginx

Una volta installato Nginx, esegui il comando systemctl qui sotto per avviare e abilitare il servizio Nginx. Questo avvierà e eseguirà Nginx sulla porta HTTP predefinita 80 e abiliterà Nginx per essere eseguito automaticamente all’avvio del sistema.

sudo systemctl start nginx  
sudo systemctl enable nginx

Ora verifica lo stato del servizio Nginx utilizzando il comando systemctl qui sotto. Dovresti ricevere un output che indica che il servizio Nginx è in esecuzione e che è abilitato.

sudo systemctl status nginx

Output:

start verify nginx

Il servizio Nginx è ora in esecuzione, dovrai aprire sia il protocollo HTTP che HTTPS su firewalld. Per ottenere questo, puoi eseguire il comando firewall-cmd qui sotto.

sudo firewall-cmd --add-service={http,https} --permanent

Una volta aggiunti i protocolli HTTP e HTTPS a firewalld, esegui il comando qui sotto per ricaricare firewalld e applicare le modifiche. Quindi, verifica l’elenco dei servizi abilitati su firewalld.

Dovresti vedere che i protocolli HTTP e HTTPS sono stati aggiunti a firewalld.

sudo firewall-cmd --reload  
sudo firewall-cmd --list-all

Output:

setup firewalld

Con questo, hai installato il server web Nginx e configurato firewalld per aprire i protocolli HTTP e HTTPS. Nel passaggio successivo, inizierai l’installazione del server di database MariaDB.

Installazione del server MariaDB

FOSSBilling utilizza MySQL/MariaDB per memorizzare i dati degli utenti. Richiede almeno MySQL 8 o il server MariaDB 10.x. In questo passaggio, installerai il server MariaDB dal repository ufficiale Rocky Linux, che è MariaDB 10.5 ed è compatibile con l’ultima versione di FOSSBilling.

Installa il server di database MariaDB sul tuo sistema Rocky Linux tramite il comando dnf qui sotto. Inserisci y quando richiesto e premi INVIO per procedere.

sudo install mariadb-server

Output:

install mariadb

Una volta installato MariaDB, esegui il comando systemctl qui sotto per avviare e abilitare il servizio MariaDB.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Successivamente, esegui il comando systemctl qui sotto per verificare il servizio MariaDB e assicurarti che il servizio sia in esecuzione. L’output ‘active (running)‘ conferma che il server MariaDB è in esecuzione. E l’output ‘loaded (../mariadb.service; enabled;)‘ conferma che il servizio MariaDB è abilitato e verrà eseguito automaticamente all’avvio del sistema.

sudo systemctl status mariadb

Output:

start verify mariadb

Con il server MariaDB in esecuzione, ora dovrai proteggere MariaDB tramite il comando ‘mariadb-secure-installation’. Questo include la configurazione di una password di root per MariaDB, la disabilitazione del login remoto per l’utente root di MariaDB, ecc.

Esegui il comando ‘mariadb-secure-installation‘ qui sotto per proteggere il deployment di MariaDB.

sudo mariadb-secure-installation

Ti verrà chiesto di alcune configurazioni di MariaDB qui sotto:

  • Passare l’autenticazione locale a unix_socket? Inserisci n per no.
  • Configurare la password di root di MariaDB? Inserisci y, quindi digita la nuova password di root di MariaDB e ripeti.
  • Rimuovere l’utente anonimo predefinito? Inserisci y per confermare.
  • Disabilitare il login remoto per l’utente root? Inserisci y per confermare.
  • Rimuovere il database di test predefinito? Inserisci y per confermare.
  • Ricaricare i privilegi delle tabelle e applicare le modifiche? Inserisci y per confermare.

Con il server MariaDB installato e in esecuzione, creerai ora un nuovo database MariaDB e un utente che verranno utilizzati per l’installazione di FOSSBilling.

Creazione del database e dell’utente

In questo passaggio, creerai un nuovo database MariaDB e un utente che verranno utilizzati per l’installazione di FOSSBilling.

Esegui il comando ‘mariadb‘ qui sotto per accedere a MariaDB tramite l’utente root. Quando ti viene chiesto di inserire una password, inserisci la tua password di root di MariaDB e premi INVIO.

sudo mariadb -u root -p

Dopo aver effettuato l’accesso alla shell di MariaDB, esegui le seguenti query per creare un nuovo database MariaDB e un utente. In questo esempio, creerai un nuovo database fossbillingdb con l’utente ‘fossbilling‘. Assicurati anche di cambiare la password predefinita nella query qui sotto.

CREATE DATABASE fossbillingdb;  
CREATE USER fossbilling@localhost IDENTIFIED BY 'password';  
GRANT ALL ON fossbillingdb.* TO fossbilling@localhost WITH GRANT OPTION;  
FLUSH PRIVILEGES;

Output:

create database user

Infine, esegui la query qui sotto per verificare l’utente MariaDB fossbilling@localhost per assicurarti che l’utente abbia privilegi per accedere al database ‘fossbillingdb‘.

L’output ‘GRANT ALL PRIVILEGES ON fossbillingdb. to fossbilling@localhost‘ conferma che l’utente fossbilling@localhost ha privilegi per accedere al database ‘fossbillingdb*’.

Digita quit per disconnetterti dalla shell di MariaDB.

SHOW GRANTS FOR fossbilling@localhost;  
quit

Output:

verify user database

Ora che hai creato il database MariaDB e l’utente per FOSSBilling. Nel passaggio successivo, installerai PHP e PHP-FPM sul tuo server Rocky Linux.

Installazione di PHP-FPM 8.2

L’ultima versione di FOSSBilling è supportata con PHP 8.x. In questo passaggio, installerai PHP e PHP-FPM 8.2 tramite il repository Remi. Quindi prima, configurerai il repository Remi, installerai i pacchetti PHP e PHP-FPM, quindi configurerai PHP-FPM con il server web Nginx.

Aggiungi il repository PHP Remi tramite il comando dnf qui sotto. Questo comando installerà il repository Remi sul tuo sistema Rocky Linux. Il file RPM ‘remi-release-9.rpm’ conferma che questo può essere utilizzato per la distribuzione RHEL 9. Inoltre, inserisci y quando richiesto e premi INVIO per procedere.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

Output:

install remi repo

Successivamente, esegui il comando dnf qui sotto per ripristinare il modulo del repository per PHP. Quindi, verifica l’elenco dei moduli del repository PHP disponibili sul tuo sistema.

sudo dnf module reset php  
sudo dnf module list php

Quando ti viene chiesto di configurare la chiave GPG per il repository Remi, inserisci y per confermare e premi INVIO.

accept gpg key

Dopo che il comando ‘dnf module list php’ è stato eseguito, vedrai più versioni di PHP fornite dal repository ufficiale Rocky Linux AppStream e dal repository Remi.

list repos

Esegui il comando qui sotto per abilitare il repository PHP per ‘remi-8.2‘. Con questo, ogni volta che installerai pacchetti PHP, installerai pacchetti PHP 8.2 dal repository Remi.

Inserisci y quando richiesto e premi INVIO per abilitarlo.

sudo dnf module enable php:remi-8.2

Output:

enable remi repo php 8.2

Con il repository Remi di PHP configurato, puoi installare i pacchetti PHP.

Esegui il comando dnf qui sotto per installare i pacchetti PHP e PHP-FPM sul tuo server Rocky Linux. Inserisci y quando richiesto e premi INVIO per procedere.

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

Output:

install php

Ti verrà anche chiesto di confermare la chiave GPG per il repository Remi. Inserisci y per confermare e premi INVIO.

accept gpg key

Dopo che PHP è stato installato, apri il file di configurazione PHP ‘/etc/php.ini‘ utilizzando il comando dell’editor nano qui sotto.

sudo nano /etc/php.ini

Cambia la configurazione predefinita di PHP con le seguenti righe.

upload_max_filesize = 16M   
post_max_size = 32M   
memory_limit = 256M   
max_execution_time = 600   
max_input_vars = 3000   
max_input_time = 1000

Salva ed esci dal file ‘/etc/php.ini‘ quando hai finito.

Per eseguire PHP-FPM con Nginx su distribuzioni basate su RHEL, devi assicurarti che PHP-FPM venga eseguito con l’utente e il gruppo predefiniti ‘nginx‘.

Su RHEL, il server web Nginx viene eseguito per impostazione predefinita sotto l’utente ‘nginx‘. Mentre su distribuzioni basate su Debian, sia Nginx che Apache2 vengono eseguiti sullo stesso utente e gruppo ‘www-data‘.

Apri la configurazione del pool PHP-FPM ‘/etc/php-fpm.d/www.conf‘ utilizzando il comando dell’editor nano qui sotto.

sudo nano /etc/php-fpm.d/www.conf

Cambia i parametri predefiniti ‘user‘ e ‘group‘ in ‘nginx‘.

user = nginx  
group = nginx

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando systemctl qui sotto per avviare e abilitare il servizio PHP-FPM. Questo avvierà il servizio PHP-FPM con il file sock predefinito ‘/run/php-fpm/www.sock‘ e abiliterà PHP-FPM per avviarsi automaticamente all’avvio del sistema.

L’output ‘Created symlink …‘ conferma che il servizio PHP-FPM è abilitato.

sudo systemctl start php-fpm  
sudo systemctl enable php-fpm

Output:

start enable php-fpm

Ora esegui il comando systemctl qui sotto per verificare lo stato del servizio PHP-FPM. Dovresti ricevere un output che indica che PHP-FPM è ‘active (running)‘, il che conferma che PHP-FPM è in esecuzione. E l’output ‘Loaded …/…/; enabled;‘ conferma che il servizio PHP-FPM è abilitato.

sudo systemctl status php-fpm

Output:

verify php-fpm

Infine, esegui il comando php qui sotto per verificare la versione di PHP installata sul tuo sistema. Quindi, verifica l’elenco delle estensioni abilitate sul tuo sistema.

Riceverai un output PHP 8.2 e l’elenco delle estensioni PHP che sono abilitate, e assicurati che queste estensioni ‘curl’, ‘openssl’, ‘pdo_mysql’ e ‘zlib’ siano abilitate.

php --version  
php -m

Output:

verify php version and extensions

Con questo, hai installato PHP e PHP-FPM 8.2 sul sistema Rocky Linux. Hai anche configurato PHP-FPM per essere eseguito con il server web Nginx. Nel passaggio successivo, inizierai l’installazione di FOSSBilling scaricando il codice sorgente.

Download del codice sorgente di FOSSBilling

In questo passaggio, scaricherai il codice sorgente di FOSSBilling e configurerai la directory di installazione di FOSSBilling in ‘/var/www/fossbilling’.

Prima di iniziare, esegui il comando dnf qui sotto per installare il pacchetto unzip sul tuo sistema.

sudo dnf install unzip -y

Ora crea una nuova directory ‘/var/www/fossbilling‘ e sposta la tua directory di lavoro al suo interno. Quindi, puoi scaricare l’ultima versione stabile di FOSSBilling tramite il comando curl qui sotto.

mkdir -p /var/www/fossbilling; cd /var/www/fossbilling  
curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zip

Output:

download fossbilling

Quando il codice sorgente di FOSSBilling è stato scaricato, vedrai il file FOSSBilling.zip nella tua directory di lavoro. Esegui il comando unzip qui sotto per estrarre il file ‘FOSSBilling.zip’. Quindi, cambia la proprietà della directory di installazione di FOSSBilling ‘/var/www/fossbilling‘ all’utente e al gruppo ‘nginx‘.

unzip FOSSBilling.zip  
sudo chown -R nginx:nginx /var/www/fossbilling

Con il codice sorgente di FOSSBilling scaricato e la directory di installazione configurata, configurerai ora il blocco del server Nginx che verrà utilizzato per eseguire l’applicazione web FOSSBilling.

Configurazione del blocco del server Nginx

In questo passaggio, configurerai una nuova configurazione del blocco del server Nginx che verrà utilizzata per eseguire l’applicazione web FOSSBilling. Prima di iniziare, assicurati che il tuo nome di dominio sia puntato all’indirizzo IP del server.

Crea un nuovo file di configurazione del blocco del server Nginx ‘/etc/nginx/conf.d/fossbilling.conf‘ utilizzando il comando dell’editor nano qui sotto.

sudo nano /etc/nginx/conf.d/fossbilling.conf

Aggiungi le seguenti righe al file. Assicurati di cambiare il nome di dominio di installazione target ‘fossbilling.howtoforge.local‘.

server {  
    listen 80;  
    
    set $root_path '/var/www/fossbilling';  
    server_name fossbilling.howtoforge.local;  
    
    index index.html index.htm index.php;  
    root $root_path;  
    try_files $uri $uri/ @rewrite;  
    sendfile off;  
      
    include /etc/nginx/mime.types;  
    
    # Blocca l'accesso a file sensibili e restituisci 404 per renderlo indistinguibile da un file mancante  
    location ~* .(ini|sh|inc|bak|twig|sql)$ {  
        return 404;  
    }  
    
    # Blocca l'accesso a file nascosti tranne per .well-known  
    location ~ /
    
    # Disabilita l'esecuzione di PHP in /uploads  
    location ~* /uploads/.*\.php$ {  
        return 404;  
    }  
    
    # Negare l'accesso a /data  
    location ~* /data/ {  
        return 404;  
    }  
    
    location @rewrite {  
        rewrite ^/page/(.*)$ /index.php?_url=/custompages/$1;  
        rewrite ^/(.*)$ /index.php?_url=/$1;  
    }  
    
    location ~ \.php {  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        
        # fastcgi_pass deve essere cambiato in base alla configurazione del tuo server:  
        # phpx.x è la tua configurazione del server  
        # esempi: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock o /run/php/phpx.x-fpm.sock sono tutte opzioni valide   
        # O anche localhost:port (Default 9000 funzionerà bene)   
        # Si prega di controllare la configurazione del server  
        
        fastcgi_pass unix:/run/php-fpm/www.sock;  
        
        fastcgi_param PATH_INFO       $fastcgi_path_info;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_intercept_errors on;  
        
        include fastcgi_params;  
    }  
    
    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {  
        root $root_path;  
        expires off;  
    }  
}

Salva ed esci dal file quando hai finito.

Successivamente, esegui il comando qui sotto per verificare la configurazione di Nginx. Quindi riavvia il servizio Nginx per applicare le modifiche. Se il test della configurazione di Nginx ha esito positivo, dovresti ricevere un output come ‘test successful - syntax ok‘.

sudo nginx -t  
sudo systemctl restart nginx

Output:

setup nginx server block

A questo punto, hai FOSSBilling in esecuzione con il server web Nginx. Ma, è ancora in una connessione HTTP non sicura. Nel passaggio successivo, proteggerai FOSSBilling con certificati SSL/TLS tramite Certbot e Letsencrypt.

Protezione di FOSSBilling con SSL/TLS Letsencrypt

Con la configurazione del blocco del server Nginx creata, proteggerai ora l’installazione di FOSSBilling con certificati SSL/TLS, e puoi ottenere questo utilizzando lo strumento Certbot e certificati SSL gratuiti da Letsencrypt.

Prima di iniziare, assicurati che il tuo nome di dominio sia puntato all’indirizzo IP del server e assicurati di avere un indirizzo email che verrà utilizzato per registrarsi a Letsencrypt.

Ora esegui il comando dnf qui sotto per installare Certbot e il plugin Certbot Nginx. Inserisci y quando richiesto e premi INVIO per procedere.

sudo dnf install certbot python3-certbot-nginx

Output:

install certbot

Dopo che Certbot è stato installato, esegui il comando qui sotto per generare certificati SSL/TLS per il tuo nome di dominio. Inoltre, assicurati di cambiare il nome di dominio e l’indirizzo email nel comando seguente.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d fossbilling.howtoforge.local

Con questo comando, i nuovi certificati SSL/TLS verranno generati per il tuo nome di dominio. Inoltre, questo configurerà automaticamente HTTPS sul tuo blocco del server Nginx e configurerà il reindirizzamento automatico da HTTP a HTTPS. I tuoi certificati SSL/TLS vengono generati nella directory ‘/etc/elstencrypt/live/fossbilling.howtoforge.local/‘.

Inizio dell’installazione di FOSSBilling

Apri il tuo browser web e visita il nome di dominio della tua installazione di FOSSBilling (cioè: https://fossbilling.howtoforge.local/).

L’installer di FOSSBilling dovrebbe ora controllare e verificare i dettagli del tuo sistema. Assicurati che i requisiti ottengano lo stato ‘Ok‘ con colore verde. Clicca su Avanti per continuare.

system checks

Ora inserisci i dettagli del database MariaDB e dell’utente che hai creato e clicca su Avanti di nuovo.

database settings

Successivamente, inserisci i nuovi dettagli dell’amministratore per FOSSBilling. Inserisci il tuo nome utente, indirizzo email, password e valuta predefinita. Quindi, clicca su Avanti per continuare.

setup admin

Quando l’installazione di FOSSBilling ha successo, dovresti ricevere il messaggio ‘Congratulazioni! FOSSBilling è stato installato con successo.’

Vedrai anche alcune istruzioni per completare la tua installazione di FOSSBilling.

finishing

Torna al terminale del tuo server Rocky Linux e esegui i seguenti comandi per completare la tua installazione di FOSSBilling.

Rimuovi la directory ‘install‘ di FOSSBilling.

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

Cambia i permessi del file di configurazione di FOSSBilling ‘config.php‘ in 0644. Questo rimuoverà il permesso di ‘scrittura‘ per altri e gruppi.

sudo chmod 0644 /var/www/fossbilling/config.php

Crea un nuovo cron per FOSSBilling tramite il comando qui sotto.

crontab -u nginx -e

Seleziona l’editor di codice che desideri utilizzare. Quindi inserisci le seguenti righe nel file.

*/5 * * * * php /var/www/fossbilling/cron.php

Salva il file ed esci dall’editor quando hai finito.

finishing

Ora torna al browser web e clicca su Fine.

Riceverai ora la seguente pagina.

installation finished

Se clicchi sul pulsante ‘Area Clienti‘, verrai reindirizzato alla home page di FOSSBilling.

client area

Se clicchi sul pulsante ‘Area Admin‘, verrai reindirizzato alla pagina di accesso dell’amministratore.

Accedi con il tuo indirizzo email e password, quindi clicca su ‘Accedi‘.

admin login

Se hai successo, dovresti vedere il cruscotto di amministrazione di FOSSBilling.

admin dashboard

Con questo, hai ora completato l’installazione di FOSSBilling e protetto con certificati SSL/TLS tramite Certbot e Letsencrypt.

Conclusione

In questa guida, hai installato un sistema di fatturazione open-source e gestione utenti FOSSBilling su un server Rocky Linux 9. Hai anche configurato lo stack LEMP (server web Nginx, database MariaDB e PHP-FPM) su un sistema Rocky Linux. Inoltre, hai protetto l’installazione di FOSSBilling con certificati SSL/TLS generati tramite Certbot e Letsencrypt.

Da qui, puoi ora utilizzare FOSSBilling per la tua attività. Puoi aggiungere più utenti, configurare un server SMTP e molto altro.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.