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-releaseA 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 nginxSalida:

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 nginxAhora 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 nginxSalida:

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} --permanentUna 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-allSalida:

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-serverSalida:

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 mariadbA 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 mariadbSalida:

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-installationSe 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 -pDespué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:

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;
quitSalida:

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.rpmSalida:

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 phpCuando se te pida configurar la clave GPG para el repositorio Remi, ingresa y para confirmar y presiona ENTER.

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.

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.2Salida:

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-xmlSalida:

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

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.iniCambia 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 = 1000Guarda 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.confCambia los parámetros predeterminados ‘ user ‘ y ‘ group ‘ a ‘ nginx ‘.
user = nginx
group = nginxGuarda 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-fpmSalida:

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-fpmSalida:

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 -mSalida:

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 -yAhora 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.zipSalida:

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/fossbillingCon 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.confAgrega 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 nginxSalida:

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-nginxSalida:

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.localCon 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.

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

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.

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.

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/installCambia 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.phpCrea un nuevo cron para FOSSBilling a través del siguiente comando.
crontab -u nginx -eSelecciona el editor de código que deseas usar. Luego ingresa las siguientes líneas en el archivo.
*/5 * * * * php /var/www/fossbilling/cron.phpGuarda el archivo y cierra el editor cuando termines.

Ahora regresa al navegador web y haz clic en Finalizar.
Ahora obtendrás la siguiente página.

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

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 ‘.

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

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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.