Instalação FOSSBilling · 15 min read · Oct 20, 2025

Como Instalar o FossBilling com Nginx no Rocky Linux 9

FOSSBilling é um sistema de faturamento gratuito e de código aberto projetado para ser fácil para clientes e vendedores. FOSSBilling é um fork do BoxBilling. Ele fornece uma excelente experiência para os clientes com uma interface intuitiva e suporta múltiplos gateways de pagamento. FOSSBilling é adequado para vários negócios, desde pequenos a médios ou até grandes empresas. FOSSBilling pode ajudá-lo a automatizar sua faturação, pagamentos recebidos e gerenciamento e comunicação com clientes.

Neste guia, instalarei o FOSSBilling em um servidor Rocky Linux 9. Este passo a passo inclui a instalação do servidor web Nginx, do servidor de banco de dados MariaDB, do PHP-FPM 8.2 e da ferramenta Certbot para gerar certificados SSL/TSL. No final, você terá uma solução de faturamento e gerenciamento de clientes que pode ser usada para o seu dia a dia nos negócios.

Pré-requisitos

Para finalizar este guia, você precisará dos seguintes requisitos:

  • Um servidor com Rocky Linux 9 instalado - Este exemplo usa um Rocky Linux com hostname ‘fossbilling-rocky‘.
  • Um usuário não-root com privilégios de administrador sudo/root.
  • SELinux em execução no modo permissivo.
  • Um nome de domínio apontado para o endereço IP do seu servidor - Este exemplo usa um subdomínio ‘fossbilling.howtoforge.local‘.

Se esses requisitos estiverem prontos, você pode concluir a instalação do FOSSBilling.

Instalando o Servidor Web Nginx

O FOSSBilling pode ser executado com os servidores web Nginx e Lighttpd. Este guia usará o Nginx como servidor web. Você instalará o Nginx do repositório oficial do Rocky Linux AppStream nesta etapa.

Para começar, certifique-se de que o repositório EPEL está adicionado ao seu sistema. Ou você pode instalá-lo via o comando dnf abaixo.

sudo dnf install epel-release

Em seguida, instale o servidor web Nginx usando o comando dnf abaixo. Quando solicitado, digite y para confirmar e pressione ENTER para prosseguir.

sudo dnf install nginx

Saída:

install nginx

Uma vez que o Nginx estiver instalado, execute o comando systemctl abaixo para iniciar e habilitar o serviço Nginx. Isso iniciará e executará o Nginx na porta HTTP padrão 80 e habilitará o Nginx para ser executado automaticamente na inicialização do sistema.

sudo systemctl start nginx  
sudo systemctl enable nginx

Agora verifique o status do serviço Nginx usando o utilitário de comando systemctl abaixo. Você deve receber uma saída indicando que o serviço Nginx está em execução e habilitado.

sudo systemctl status nginx

Saída:

start verify nginx

O serviço Nginx está agora em execução, você precisará abrir ambos os protocolos HTTP e HTTPS no firewalld. Para conseguir isso, você pode executar o comando firewall-cmd abaixo.

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

Uma vez que os protocolos HTTP e HTTPS foram adicionados ao firewalld, execute o comando abaixo para recarregar o firewalld e aplicar as alterações. Em seguida, verifique a lista de serviços habilitados no firewalld.

Você deve ver que os protocolos HTTP e HTTPS foram adicionados ao firewalld.

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

Saída:

setup firewalld

Com isso, você instalou o servidor web Nginx e configurou o firewalld para abrir os protocolos HTTP e HTTPS. Na próxima etapa, você iniciará a instalação do servidor de banco de dados MariaDB.

Instalando o Servidor MariaDB

O FOSSBilling usa MySQL/MariaDB para armazenar os dados dos usuários. É necessário pelo menos o MySQL 8 ou o servidor MariaDB 10.x. Nesta etapa, você instalará o servidor MariaDB do repositório oficial do Rocky Linux, que é o MariaDB 10.5 e é compatível com a versão mais recente do FOSSBilling.

Instale o servidor de banco de dados MariaDB no seu sistema Rocky Linux via o comando dnf abaixo. Digite y quando solicitado e pressione ENTER para prosseguir.

sudo install mariadb-server

Saída:

install mariadb

Uma vez que o MariaDB estiver instalado, execute o utilitário de comando systemctl abaixo para iniciar e habilitar o serviço MariaDB.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Em seguida, execute o comando systemctl abaixo para verificar o serviço MariaDB e garantir que o serviço está em execução. A saída ‘active (running)‘ confirma que o servidor MariaDB está em execução. E a saída ‘loaded (../mariadb.service; enabled;)‘ confirma que o serviço MariaDB está habilitado e será executado automaticamente na inicialização do sistema.

sudo systemctl status mariadb

Saída:

start verify mariadb

Com o servidor MariaDB em execução, agora você irá proteger o MariaDB via o comando ‘mariadb-secure-installation’. Isso inclui configurar uma senha root para o MariaDB, desabilitar o login remoto para o usuário root do MariaDB, etc.

Execute o comando ‘mariadb-secure-installation‘ abaixo para proteger a implantação do MariaDB.

sudo mariadb-secure-installation

Você será questionado sobre algumas configurações do MariaDB abaixo:

  • Mudar a autenticação local para unix_socket? Digite n para não.
  • Configurar a senha root do MariaDB? Digite y, em seguida, digite a nova senha root do MariaDB e repita.
  • Remover o usuário anônimo padrão? Digite y para confirmar.
  • Desabilitar o login remoto para o usuário root? Digite y para confirmar.
  • Remover o banco de dados de teste padrão? Digite y para confirmar.
  • Recarregar privilégios de tabela e aplicar alterações? Digite y para confirmar.

Com o servidor MariaDB instalado e em execução, você irá criar um novo banco de dados MariaDB e um usuário que serão usados para a instalação do FOSSBilling.

Criando Banco de Dados e Usuário

Nesta etapa, você criará um novo banco de dados MariaDB e um usuário que serão usados para a instalação do FOSSBilling.

Execute o comando ‘mariadb‘ abaixo para fazer login no MariaDB via o usuário root. Quando solicitado por uma senha, digite sua senha root do MariaDB e pressione ENTER.

sudo mariadb -u root -p

Após fazer login no shell do MariaDB, execute as seguintes consultas para criar um novo banco de dados MariaDB e um usuário. Neste exemplo, você criará um novo banco de dados fossbillingdb com o usuário ‘fossbilling‘. Além disso, certifique-se de alterar a senha padrão na consulta abaixo.

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

Saída:

create database user

Por fim, execute a consulta abaixo para verificar o usuário MariaDB fossbilling@localhost para garantir que o usuário tem privilégios para acessar o banco de dados ‘fossbillingdb‘.

A saída ‘GRANT ALL PRIVILEGES ON fossbillingdb. to fossbilling@localhost‘ confirma que o usuário fossbilling@localhost tem privilégios para acessar o banco de dados ‘fossbillingdb*’.

Digite quit para sair do shell do MariaDB.

SHOW GRANTS FOR fossbilling@localhost;  
quit

Saída:

verify user database

Agora que você criou o banco de dados MariaDB e o usuário para o FOSSBilling. Na próxima etapa, você instalará o PHP e o PHP-FPM no seu servidor Rocky Linux.

Instalando PHP-FPM 8.2

A versão mais recente do FOSSBilling é suportada com PHP 8.x. Nesta etapa, você instalará o PHP e o PHP-FPM 8.2 via o repositório Remi. Então, primeiro, você configurará o repositório Remi, instalará os pacotes PHP e PHP-FPM e, em seguida, configurará o PHP-FPM com o servidor web Nginx.

Adicione o repositório PHP Remi via o comando dnf abaixo. Este comando instalará o repositório Remi no seu sistema Rocky Linux. O arquivo RPM ‘remi-release-9.rpm’ confirma que isso pode ser usado para a distribuição RHEL 9. Além disso, digite y quando solicitado e pressione ENTER para prosseguir.

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

Saída:

install remi repo

Em seguida, execute o comando dnf abaixo para redefinir o módulo do repositório para PHP. Depois, verifique a lista de módulos do repositório PHP que estão disponíveis no seu sistema.

sudo dnf module reset php  
sudo dnf module list php

Quando solicitado a configurar a chave GPG para o repositório Remi, digite y para confirmar e pressione ENTER.

accept gpg key

Após o comando ‘dnf module list php’ ser executado, você verá várias versões do PHP fornecidas pelo repositório oficial do Rocky Linux AppStream e pelo repositório Remi.

list repos

Execute o comando abaixo para habilitar o repositório PHP para ‘remi-8.2‘. Com isso, toda vez que você instalar pacotes PHP, estará instalando pacotes PHP 8.2 do repositório Remi.

Digite y quando solicitado e pressione ENTER para habilitá-lo.

sudo dnf module enable php:remi-8.2

Saída:

enable remi repo php 8.2

Com o repositório PHP Remi configurado, você pode instalar pacotes PHP.

Execute o comando dnf abaixo para instalar os pacotes PHP e PHP-FPM no seu servidor Rocky Linux. Digite y quando solicitado e pressione ENTER para prosseguir.

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

Saída:

install php

Você também será solicitado a confirmar a chave GPG para o repositório Remi. Digite y para confirmar e pressione ENTER.

accept gpg key

Após o PHP ser instalado, abra o arquivo de configuração do PHP ‘/etc/php.ini‘ usando o comando do editor nano abaixo.

sudo nano /etc/php.ini

Altere a configuração padrão do PHP com as seguintes linhas.

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

Salve e saia do arquivo ‘/etc/php.ini‘ quando terminar.

Para executar o PHP-FPM com o Nginx em distribuições baseadas em RHEL, você deve garantir que o PHP-FPM esteja em execução com o usuário e grupo padrão ‘nginx‘.

No RHEL, o servidor web Nginx é executado por padrão sob o usuário ‘nginx‘. Enquanto em distribuições baseadas em Debian, tanto o Nginx quanto o Apache2 estão sendo executados sob o mesmo usuário e grupo ‘www-data‘.

Abra a configuração do pool do PHP-FPM ‘/etc/php-fpm.d/www.conf‘ usando o comando do editor nano abaixo.

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

Altere os parâmetros padrão ‘user‘ e ‘group‘ para ‘nginx‘.

user = nginx  
group = nginx

Salve e feche o arquivo quando terminar.

Em seguida, execute o utilitário de comando systemctl abaixo para iniciar e habilitar o serviço PHP-FPM. Isso iniciará o serviço PHP-FPM com o arquivo sock padrão ‘/run/php-fpm/www.sock‘ e habilitará o PHP-FPM para iniciar automaticamente na inicialização do sistema.

A saída ‘Created symlink …‘ confirma que o serviço PHP-FPM está habilitado.

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

Saída:

start enable php-fpm

Agora execute o comando systemctl abaixo para verificar o status do serviço PHP-FPM. Você deve obter uma saída indicando que o PHP-FPM está ‘active (running)‘, o que confirma que o PHP-FPM está em execução. E a saída ‘Loaded …/…/; enabled;‘ confirma que o serviço PHP-FPM está habilitado.

sudo systemctl status php-fpm

Saída:

verify php-fpm

Por fim, execute o comando php abaixo para verificar a versão do PHP que está instalada no seu sistema. Em seguida, verifique a lista de extensões habilitadas no seu sistema.

Você receberá uma saída PHP 8.2 e a lista de extensões PHP que estão habilitadas, e certifique-se de que essas extensões ‘curl’, ‘openssl’, ‘pdo_mysql’ e ‘zlib’ estão habilitadas.

php --version  
php -m

Saída:

verify php version and extensions

Com isso, você instalou o PHP e o PHP-FPM 8.2 no sistema Rocky Linux. Você também configurou o PHP-FPM para ser executado com o servidor web Nginx. Na próxima etapa, você iniciará a instalação do FOSSBilling baixando o código-fonte.

Baixando o Código-Fonte do FOSSBilling

Nesta etapa, você baixará o código-fonte do FOSSBilling e configurará o diretório de instalação do FOSSBilling para ‘/var/www/fossbilling’.

Antes de começar, execute o comando dnf abaixo para instalar o pacote unzip no seu sistema.

sudo dnf install unzip -y

Agora crie um novo diretório ‘/var/www/fossbilling‘ e mova seu diretório de trabalho para ele. Em seguida, você pode baixar a versão estável mais recente do FOSSBilling via o comando curl como abaixo.

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

Saída:

download fossbilling

Quando o código-fonte do FOSSBilling for baixado, você verá o arquivo FOSSBilling.zip em seu diretório de trabalho. Execute o comando unzip abaixo para extrair o arquivo ‘FOSSBilling.zip’. Em seguida, mude a propriedade do diretório de instalação do FOSSBilling ‘/var/www/fossbilling‘ para o usuário e grupo ‘nginx‘.

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

Com o código-fonte do FOSSBilling baixado e o diretório de instalação configurado, você irá configurar o bloco do servidor Nginx que será usado para executar o aplicativo web FOSSBilling.

Configurando o Bloco do Servidor Nginx

Nesta etapa, você configurará um novo arquivo de configuração do bloco do servidor Nginx que será usado para executar o aplicativo web FOSSBilling. Antes de começar, certifique-se de que seu nome de domínio está apontado para o endereço IP do servidor.

Crie um novo arquivo de configuração do bloco do servidor Nginx ‘/etc/nginx/conf.d/fossbilling.conf‘ usando o comando do editor nano abaixo.

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

Adicione as seguintes linhas ao arquivo. Certifique-se de alterar o nome de domínio de instalação de destino ‘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;  
    
    # Bloquear acesso a arquivos sensíveis e retornar 404 para torná-los indistinguíveis de um arquivo ausente  
    location ~* .(ini|sh|inc|bak|twig|sql)$ {  
        return 404;  
    }  
     
    # Bloquear acesso a arquivos ocultos, exceto para .well-known  
    location ~ /(?!well-known/) {  
        return 404;  
    }  
     
    # Desabilitar execução de PHP em /uploads  
    location ~* /uploads/.*\.php$ {  
        return 404;  
    }  
        
    # Negar acesso 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 precisa ser alterado de acordo com sua configuração de servidor:  
        # phpx.x é sua configuração de servidor  
        # exemplos: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock ou /run/php/phpx.x-fpm.sock são todas opções válidas   
        # Ou até mesmo localhost:port (O padrão 9000 funcionará bem)   
        # Por favor, verifique sua configuração de servidor  
        
        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;  
    }  
}

Salve e saia do arquivo quando terminar.

Em seguida, execute o comando abaixo para verificar a configuração do Nginx. Depois, reinicie o serviço Nginx para aplicar as alterações. Se o teste da configuração do Nginx for bem-sucedido, você deve obter uma saída como ‘teste bem-sucedido - sintaxe ok‘.

sudo nginx -t  
sudo systemctl restart nginx

Saída:

setup nginx server block

Neste ponto, você tem o FOSSBilling em execução com o servidor web Nginx. Mas, ainda está na conexão HTTP insegura. Na próxima etapa, você irá proteger o FOSSBilling com certificados SSL/TLS via Certbot e Letsencrypt.

Protegendo o FOSSBilling com SSL/TLS Letsencrypt

Com a configuração do bloco do servidor Nginx criada, você irá proteger a instalação do FOSSBilling com certificados SSL/TLS, e você pode conseguir isso usando a ferramenta Certbot e certificados SSL gratuitos do Letsencrypt.

Antes de começar, certifique-se de que seu nome de domínio está apontado para o endereço IP do servidor e certifique-se de que você possui um endereço de e-mail que será usado para se registrar no Letsencrypt.

Agora execute o comando dnf abaixo para instalar o Certbot e o plugin Certbot Nginx. Digite y quando solicitado e pressione ENTER para prosseguir.

sudo dnf install certbot python3-certbot-nginx

Saída:

install certbot

Após o Certbot ser instalado, execute o comando abaixo para gerar certificados SSL/TLS para seu nome de domínio. Além disso, certifique-se de alterar o nome de domínio e o endereço de e-mail no seguinte comando.

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

Com este comando, os novos certificados SSL/TLS serão gerados para seu nome de domínio. Além disso, isso configurará automaticamente o HTTPS no seu bloco do servidor Nginx e configurará o redirecionamento automático de HTTP para HTTPS. Seus certificados SSL/TLS são gerados no diretório ‘/etc/elstencrypt/live/fossbilling.howtoforge.local/‘.

Iniciar a Instalação do FOSSBilling

Abra seu navegador web e visite o nome de domínio da sua instalação do FosssBilling (ou seja: https://fossbilling.howtoforge.local/).

O instalador do FOSSBilling agora deve verificar e validar os detalhes do seu sistema. Certifique-se de que os requisitos tenham o status ‘Ok‘ com a cor verde. Clique em Próximo para continuar.

system checks

Agora insira os detalhes do banco de dados MariaDB e do usuário que você criou e clique em Próximo novamente.

database settings

Em seguida, insira os novos detalhes do administrador para o FOSSBilling. Insira seu nome de usuário, endereço de e-mail, senha e moeda padrão. Então, clique em Próximo para continuar.

setup admin

Quando a instalação do FOSSBilling for bem-sucedida, você deve receber a mensagem ‘Parabéns! O FOSSBilling foi instalado com sucesso.’

Você também verá algumas instruções para concluir sua instalação do FOSSBilling.

finishing

Volte ao terminal do seu servidor Rocky Linux e execute os seguintes comandos para finalizar sua instalação do FOSSBilling.

Remova o diretório ‘install‘ do FOSSBilling.

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

Altere a permissão do arquivo de configuração do FOSSBilling ‘config.php‘ para 0644. Isso removerá a permissão ‘de escrita‘ para outros e grupos.

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

Crie um novo cron para o FOSSBilling via o comando abaixo.

crontab -u nginx -e

Selecione o editor de código que você deseja usar. Em seguida, insira as seguintes linhas no arquivo.

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

Salve o arquivo e saia do editor quando terminar.

finishing

Agora volte ao navegador web e clique em Concluir.

Você agora verá a seguinte página.

installation finished

Se você clicar no botão ‘Área do Cliente‘, será redirecionado para a página inicial do FOSSBilling.

client area

Se você clicar no botão ‘Área do Administrador‘, será redirecionado para a página de login do administrador.

Faça login com seu endereço de e-mail e senha, e clique em ‘Entrar‘.

admin login

Se for bem-sucedido, você verá o painel de administração do FOSSBilling.

admin dashboard

Com isso, você agora terminou a instalação do FOSSBilling e a protegeu com certificados SSL/TLS via Certbot e Letsencrypt.

Conclusão

Neste guia, você instalou um sistema de faturamento e gerenciamento de usuários de código aberto FOSSBilling em um servidor Rocky Linux 9. Você também configurou a pilha LEMP (servidor web Nginx, banco de dados MariaDB e PHP-FPM) em um sistema Rocky Linux. Além disso, você protegeu a instalação do FOSSBilling com certificados SSL/TLS gerados via Certbot e Letsencrypt.

A partir daqui, você pode agora usar o FOSSBilling para o seu negócio. Você pode adicionar mais usuários, configurar um servidor SMTP e muito mais.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.