Instalación FOSSBilling · 15 min read · Oct 20, 2025

Cómo instalar FOSSBilling con Nginx en Rocky Linux 9

FOSSBilling es un sistema de facturación gratuito y de código abierto diseñado para ser fácil para clientes y vendedores. FOSSBilling es un fork de BoxBilling. Proporciona una excelente experiencia para los clientes con una interfaz intuitiva y soporta múltiples pasarelas de pago. FOSSBilling es adecuado para múltiples negocios, desde pequeños hasta medianos o incluso grandes. FOSSBilling puede ayudarte a automatizar tu facturación, pagos entrantes y gestión y comunicación con los clientes.

Instalaré FOSSBilling en un servidor Rocky Linux 9 en esta guía. Este recorrido incluye la instalación del servidor web Nginx, el servidor de base de datos MariaDB, PHP-FPM 8.2 y la herramienta Certbot para generar certificados SSL/TSL. Al final, tendrás una solución de facturación y gestión de clientes que se puede utilizar para tu negocio diario.

Requisitos previos

Para terminar esta guía, necesitarás los siguientes requisitos:

  • Un servidor con Rocky Linux 9 instalado - Este ejemplo utiliza un Rocky Linux con nombre de host ‘ fossbilling-rocky ‘.
  • Un usuario no root con privilegios de administrador sudo/root.
  • SELinux ejecutándose en modo permisivo.
  • Un nombre de dominio apuntando a la dirección IP de tu servidor - Este ejemplo utiliza un subdominio ‘ fossbilling.howtoforge.local ‘.

Si estos requisitos están listos, puedes completar la instalación de FOSSBilling.

Instalando el servidor web Nginx

FOSSBilling se puede ejecutar con los servidores web Nginx y Lighttpd. Esta guía utilizará Nginx como el servidor web. Instalarás Nginx desde el repositorio oficial de Rocky Linux AppStream en este paso.

Para comenzar, asegúrate de que el repositorio EPEL esté agregado a tu sistema. O puedes instalarlo a través del comando dnf a continuación.

sudo dnf install epel-release

A continuación, instala el servidor web Nginx utilizando el siguiente comando dnf. Cuando se te pida, ingresa y para confirmar y presiona ENTER para continuar.

sudo dnf install nginx

Salida:

install nginx

Una vez que Nginx esté instalado, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio Nginx. Esto iniciará y ejecutará Nginx en el puerto HTTP predeterminado 80 y habilitará Nginx para que se ejecute automáticamente al iniciar el sistema.

sudo systemctl start nginx  
sudo systemctl enable nginx

Ahora verifica el estado del servicio Nginx utilizando el siguiente comando systemctl. Deberías recibir una salida que indique que el servicio Nginx está en ejecución y está habilitado.

sudo systemctl status nginx

Salida:

start verify nginx

El servicio Nginx está ahora en ejecución, necesitarás abrir tanto el protocolo HTTP como el HTTPS en firewalld. Para lograr esto, puedes ejecutar el siguiente comando firewall-cmd.

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

Una vez que los protocolos HTTP y HTTPS se hayan agregado a firewalld, ejecuta el siguiente comando para recargar firewalld y aplicar los cambios. Luego, verifica la lista de servicios habilitados en firewalld.

Deberías ver que los protocolos HTTP y HTTPS se han agregado a firewalld.

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

Salida:

setup firewalld

Con esto, has instalado el servidor web Nginx y configurado firewalld para abrir los protocolos HTTP y HTTPS. En el siguiente paso, comenzarás la instalación del servidor de base de datos MariaDB.

Instalando el servidor MariaDB

FOSSBilling utiliza MySQL/MariaDB para almacenar los datos de los usuarios. Requiere al menos MySQL 8 o el servidor MariaDB 10.x. En este paso, instalarás el servidor MariaDB desde el repositorio oficial de Rocky Linux, que es MariaDB 10.5 y es compatible con la última versión de FOSSBilling.

Instala el servidor de base de datos MariaDB en tu sistema Rocky Linux a través del siguiente comando dnf. Ingresa y cuando se te pida y presiona ENTER para continuar.

sudo install mariadb-server

Salida:

install mariadb

Una vez que MariaDB esté instalado, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio MariaDB.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

A continuación, ejecuta el siguiente comando systemctl para verificar el servicio MariaDB y asegurarte de que el servicio esté en ejecución. La salida ‘ active (running) ‘ confirma que el servidor MariaDB está en ejecución. Y la salida ‘ loaded (../mariadb.service; enabled;) ‘ confirma que el servicio MariaDB está habilitado y se ejecutará automáticamente al iniciar el sistema.

sudo systemctl status mariadb

Salida:

start verify mariadb

Con el servidor MariaDB en ejecución, ahora asegurarás MariaDB a través del comando ‘mariadb-secure-installation’. Esto incluye configurar una contraseña de root para MariaDB, deshabilitar el inicio de sesión remoto para el usuario root de MariaDB, etc.

Ejecuta el siguiente comando ‘ mariadb-secure-installation ‘ para asegurar la implementación de MariaDB.

sudo mariadb-secure-installation

Se te preguntará sobre algunas configuraciones de MariaDB a continuación:

  • ¿Cambiar la autenticación local a unix_socket? Ingresa n para no.
  • ¿Configurar la contraseña de root de MariaDB? Ingresa y, luego escribe la nueva contraseña de root de MariaDB y repite.
  • ¿Eliminar el usuario anónimo predeterminado? Ingresa y para confirmar.
  • ¿Deshabilitar el inicio de sesión remoto para el usuario root? Ingresa y para confirmar.
  • ¿Eliminar la base de datos de prueba predeterminada? Ingresa y para confirmar.
  • ¿Recargar los privilegios de la tabla y aplicar cambios? Ingresa y para confirmar.

Con el servidor MariaDB instalado y en ejecución, a continuación crearás una nueva base de datos y usuario de MariaDB que se utilizarán para la instalación de FOSSBilling.

Creando base de datos y usuario

En este paso, crearás una nueva base de datos y usuario de MariaDB que se utilizarán para la instalación de FOSSBilling.

Ejecuta el siguiente comando ‘ mariadb ‘ para iniciar sesión en MariaDB a través del usuario root. Cuando se te pida una contraseña, ingresa tu contraseña de root de MariaDB y presiona ENTER.

sudo mariadb -u root -p

Después de iniciar sesión en el shell de MariaDB, ejecuta las siguientes consultas para crear una nueva base de datos y usuario de MariaDB. En este ejemplo, crearás una nueva base de datos fossbillingdb con el usuario ‘ fossbilling ‘. Además, asegúrate de cambiar la contraseña predeterminada en la consulta a continuación.

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

Salida:

create database user

Por último, ejecuta la siguiente consulta para verificar el usuario de MariaDB fossbilling@localhost para asegurarte de que el usuario tenga privilegios para acceder a la base de datos ‘ fossbillingdb ‘.

La salida ‘GRANT ALL PRIVILEGES ON fossbillingdb. to fossbilling@localhost ‘ confirma que el usuario fossbilling@localhost tiene privilegios para acceder a la base de datos ‘ fossbillingdb* ‘.

Escribe quit para cerrar sesión en el shell de MariaDB.

SHOW GRANTS FOR fossbilling@localhost;  
quit

Salida:

verify user database

Ahora que has creado la base de datos y el usuario de MariaDB para FOSSBilling. En el siguiente paso, instalarás PHP y PHP-FPM en tu servidor Rocky Linux.

Instalando PHP-FPM 8.2

La última versión de FOSSBilling es compatible con PHP 8.x. En este paso, instalarás PHP y PHP-FPM 8.2 a través del repositorio Remi. Así que primero, configurarás el repositorio Remi, instalarás los paquetes PHP y PHP-FPM, y luego configurarás PHP-FPM con el servidor web Nginx.

Agrega el repositorio PHP Remi a través del siguiente comando dnf. Este comando instalará el repositorio Remi en tu sistema Rocky Linux. El archivo RPM ‘remi-release-9.rpm ‘ confirma que esto se puede utilizar para la distribución RHEL 9. Además, ingresa y cuando se te pida y presiona ENTER para continuar.

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

Salida:

install remi repo

A continuación, ejecuta el siguiente comando dnf para restablecer el módulo del repositorio para PHP. Luego, verifica la lista de módulos de repositorio PHP que están disponibles en tu sistema.

sudo dnf module reset php  
sudo dnf module list php

Cuando se te pida configurar la clave GPG para el repositorio Remi, ingresa y para confirmar y presiona ENTER.

accept gpg key

Después de que se ejecute el comando ‘dnf module list php’, verás múltiples versiones de PHP proporcionadas por el repositorio oficial de Rocky Linux AppStream y el repositorio Remi.

list repos

Ejecuta el siguiente comando para habilitar el repositorio PHP para ‘ remi-8.2 ‘. Con esto, cada vez que instales paquetes PHP, estarás instalando paquetes PHP 8.2 desde el repositorio Remi.

Ingresa y cuando se te pida y presiona ENTER para habilitarlo.

sudo dnf module enable php:remi-8.2

Salida:

enable remi repo php 8.2

Con el repositorio Remi de PHP configurado, puedes instalar paquetes PHP.

Ejecuta el siguiente comando dnf para instalar los paquetes PHP y PHP-FPM en tu servidor Rocky Linux. Ingresa y cuando se te pida y presiona ENTER para continuar.

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

Salida:

install php

También se te pedirá que confirmes la clave GPG para el repositorio Remi. Ingresa y para confirmar y presiona ENTER.

accept gpg key

Después de que PHP esté instalado, abre el archivo de configuración de PHP ‘ /etc/php.ini ‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/php.ini

Cambia la configuración predeterminada de PHP con las siguientes líneas.

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

Guarda y cierra el archivo ‘ /etc/php.ini ‘ cuando termines.

Para ejecutar PHP-FPM con Nginx en distribuciones basadas en RHEL, debes asegurarte de que PHP-FPM se esté ejecutando con el usuario y grupo predeterminados ‘ nginx ‘.

En RHEL, el servidor web Nginx se ejecuta por defecto bajo el usuario ‘ nginx ‘. Mientras que en distribuciones basadas en Debian, tanto Nginx como Apache2 se ejecutan bajo el mismo usuario y grupo ‘ www-data ‘.

Abre la configuración del grupo de PHP-FPM ‘ /etc/php-fpm.d/www.conf ‘ utilizando el siguiente comando del editor nano.

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

Cambia los parámetros predeterminados ‘ user ‘ y ‘ group ‘ a ‘ nginx ‘.

user = nginx  
group = nginx

Guarda y cierra el archivo cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio PHP-FPM. Esto iniciará el servicio PHP-FPM con el archivo sock predeterminado ‘/run/php-fpm/www.sock ‘ y habilitará PHP-FPM para que se inicie automáticamente al iniciar el sistema.

La salida ‘Created symlink … ‘ confirma que el servicio PHP-FPM está habilitado.

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

Salida:

start enable php-fpm

Ahora ejecuta el siguiente comando systemctl para verificar el estado del servicio PHP-FPM. Deberías obtener una salida que indique que PHP-FPM está ‘ active (running) ‘, lo que confirma que PHP-FPM está en ejecución. Y la salida ‘ Loaded …/…/; enabled; ‘ confirma que el servicio PHP-FPM está habilitado.

sudo systemctl status php-fpm

Salida:

verify php-fpm

Por último, ejecuta el siguiente comando php para verificar la versión de PHP que está instalada en tu sistema. Luego, verifica la lista de extensiones habilitadas en tu sistema.

Recibirás una salida PHP 8.2 y la lista de extensiones PHP que están habilitadas, y asegúrate de que estas extensiones ‘curl’, ‘openssl’, ‘pdo_mysql’, y ‘zlib’ estén habilitadas.

php --version  
php -m

Salida:

verify php version and extensions

Con esto, has instalado PHP y PHP-FPM 8.2 en el sistema Rocky Linux. También has configurado PHP-FPM para que se ejecute con el servidor web Nginx. En el siguiente paso, comenzarás la instalación de FOSSBilling descargando el código fuente.

Descargando el código fuente de FOSSBilling

En este paso, descargarás el código fuente de FOSSBilling y configurarás el directorio de instalación de FOSSBilling a ‘/var/www/fossbilling’.

Antes de comenzar, ejecuta el siguiente comando dnf para instalar el paquete unzip en tu sistema.

sudo dnf install unzip -y

Ahora crea un nuevo directorio ‘ /var/www/fossbilling ‘ y mueve tu directorio de trabajo a él. Luego, puedes descargar la última versión estable de FOSSBilling a través del comando curl como a continuación.

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

Salida:

download fossbilling

Cuando se descargue el código fuente de FOSSBilling, verás el archivo FOSSBilling.zip en tu directorio de trabajo. Ejecuta el siguiente comando unzip para extraer el archivo ‘FOSSBilling.zip ‘. Luego, cambia la propiedad del directorio de instalación de FOSSBilling ‘ /var/www/fossbilling ‘ al usuario y grupo ‘ nginx ‘.

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

Con el código fuente de FOSSBilling descargado y el directorio de instalación configurado, a continuación configurarás el bloque del servidor Nginx que se utilizará para ejecutar la aplicación web FOSSBilling.

Configurando el bloque del servidor Nginx

En este paso, configurarás un nuevo archivo de configuración del bloque del servidor Nginx que se utilizará para ejecutar la aplicación web FOSSBilling. Antes de comenzar, asegúrate de que tu nombre de dominio esté apuntando a la dirección IP del servidor.

Crea un nuevo archivo de configuración del bloque del servidor Nginx ‘ /etc/nginx/conf.d/fossbilling.conf ‘ utilizando el siguiente comando del editor nano.

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

Agrega las siguientes líneas al archivo. Asegúrate de cambiar el nombre de dominio de instalación 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 el acceso a archivos sensibles y devolver 404 para hacerlo indistinguible de un archivo faltante  
    location ~* .(ini|sh|inc|bak|twig|sql)$ {  
        return 404;  
    }  
     
    # Bloquear el acceso a archivos ocultos excepto para .well-known  
    location ~ /(?!well-known/) {  
        return 404;  
    }  
     
    # Deshabilitar la ejecución de PHP en /uploads  
    location ~* /uploads/.*.php$ {  
        return 404;  
    }  
        
    # Denegar acceso 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 necesita ser cambiado según tu configuración de servidor:  
        # phpx.x es tu configuración de servidor  
        # ejemplos: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock o /run/php/phpx.x-fpm.sock son todas opciones válidas   
        # O incluso localhost:port (El predeterminado 9000 funcionará bien)   
        # Por favor verifica tu configuración 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;  
    }  
}

Guarda y cierra el archivo cuando termines.

A continuación, ejecuta el siguiente comando para verificar la configuración de Nginx. Luego reinicia el servicio Nginx para aplicar los cambios. Si la prueba de configuración de Nginx es exitosa, deberías obtener una salida como ‘ test successful - syntax ok ‘.

sudo nginx -t  
sudo systemctl restart nginx

Salida:

setup nginx server block

En este punto, tienes FOSSBilling ejecutándose con el servidor web Nginx. Pero, todavía está en la conexión HTTP insegura. En el siguiente paso, asegurarás FOSSBilling con certificados SSL/TLS a través de Certbot y Letsencrypt.

Asegurando FOSSBilling con SSL/TLS Letsencrypt

Con la configuración del bloque del servidor Nginx creada, a continuación asegurarás la instalación de FOSSBilling con certificados SSL/TLS, y puedes lograr esto utilizando la herramienta Certbot y certificados SSL gratuitos de Letsencrypt.

Antes de comenzar, asegúrate de que tu nombre de dominio esté apuntando a la dirección IP del servidor y asegúrate de que tienes una dirección de correo electrónico que se utilizará para registrarte en Letsencrypt.

Ahora ejecuta el siguiente comando dnf para instalar Certbot y el complemento Certbot Nginx. Ingresa y cuando se te pida y presiona ENTER para continuar.

sudo dnf install certbot python3-certbot-nginx

Salida:

install certbot

Después de que Certbot esté instalado, ejecuta el siguiente comando para generar certificados SSL/TLS para tu nombre de dominio. Además, asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.

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

Con este comando, se generarán nuevos certificados SSL/TLS para tu nombre de dominio. Además, esto configurará automáticamente HTTPS en tu bloque del servidor Nginx y configurará la redirección automática de HTTP a HTTPS. Tus certificados SSL/TLS se generarán en el directorio ‘/etc/elstencrypt/live/fossbilling.howtoforge.local/ ‘.

Comenzar la instalación de FOSSBilling

Abre tu navegador web y visita el nombre de dominio de tu instalación de FosssBilling (es decir: https://fossbilling.howtoforge.local/).

El instalador de FOSSBilling ahora debería verificar y validar los detalles de tu sistema. Asegúrate de que los requisitos obtengan el estado ‘ Ok ‘ con color verde. Haz clic en Siguiente para continuar.

system checks

Ahora ingresa los detalles de la base de datos MariaDB y el usuario que has creado y haz clic en Siguiente nuevamente.

database settings

A continuación, ingresa los nuevos detalles del administrador para FOSSBilling. Ingresa tu nombre de usuario, dirección de correo electrónico, contraseña y moneda predeterminada. Luego, haz clic en Siguiente para continuar.

setup admin

Cuando la instalación de FOSSBilling sea exitosa, deberías recibir el mensaje ‘ ¡Felicidades! FOSSBilling se instaló correctamente.’.

También verás algunas instrucciones para completar tu instalación de FOSSBilling.

finishing

Regresa a la terminal de tu servidor Rocky Linux y ejecuta los siguientes comandos para finalizar tu instalación de FOSSBilling.

Elimina el directorio ‘ install ‘ de FOSSBilling.

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

Cambia el permiso del archivo de configuración de FOSSBilling ‘ config.php ‘ a 0644. Esto eliminará el permiso de ‘ escritura ‘ para otros y grupos.

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

Crea un nuevo cron para FOSSBilling a través del siguiente comando.

crontab -u nginx -e

Selecciona el editor de código que deseas usar. Luego ingresa las siguientes líneas en el archivo.

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

Guarda el archivo y cierra el editor cuando termines.

finishing

Ahora regresa al navegador web y haz clic en Finalizar.

Ahora obtendrás la siguiente página.

installation finished

Si haces clic en el botón ‘ Área de clientes ‘, serás redirigido a la página de inicio de FOSSBilling.

client area

Si haces clic en el botón ‘ Área de administración ‘, serás redirigido a la página de inicio de sesión del administrador.

Inicia sesión con tu dirección de correo electrónico y contraseña, luego haz clic en ‘ Iniciar sesión ‘.

admin login

Si es exitoso, deberías ver el panel de administración de FOSSBilling.

admin dashboard

Con esto, has terminado la instalación de FOSSBilling y asegurado con certificados SSL/TLS a través de Certbot y Letsencrypt.

Conclusión

En esta guía, has instalado un sistema de facturación y gestión de usuarios de código abierto FOSSBilling en un servidor Rocky Linux 9. También has configurado el stack LEMP (servidor web Nginx, base de datos MariaDB y PHP-FPM) en un sistema Rocky Linux. Además de eso, has asegurado la instalación de FOSSBilling con certificados SSL/TLS generados a través de Certbot y Letsencrypt.

A partir de aquí, ahora puedes usar FOSSBilling para tu negocio. Puedes agregar más usuarios, configurar un servidor SMTP y mucho más.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.