Установка FOSSBilling · 13 min read · Oct 20, 2025
Как установить FOSSBilling с Nginx на Rocky Linux 9

FOSSBilling — это бесплатная и открытая система выставления счетов, разработанная для удобства клиентов и продавцов. FOSSBilling является форком BoxBilling. Она предоставляет отличный опыт для клиентов с интуитивно понятным интерфейсом и поддерживает несколько платежных шлюзов. FOSSBilling подходит для различных бизнесов, от малых до средних или даже крупных. FOSSBilling может помочь вам автоматизировать выставление счетов, поступление платежей и управление клиентами и коммуникацией.
В этом руководстве я установлю FOSSBilling на сервер Rocky Linux 9. Этот пошаговый процесс включает установку веб-сервера Nginx, сервера баз данных MariaDB, PHP-FPM 8.2 и инструмента Certbot для генерации SSL/TSL сертификатов. В конце у вас будет решение для выставления счетов и управления клиентами, которое можно использовать в повседневном бизнесе.
Предварительные требования
Чтобы завершить это руководство, вам понадобятся следующие требования:
- Сервер с установленным Rocky Linux 9 — в этом примере используется Rocky Linux с именем хоста ‘fossbilling-rocky‘.
- Непривилегированный пользователь с правами администратора sudo/root.
- SELinux, работающий в режиме permissive.
- Доменное имя, указывающее на IP-адрес вашего сервера — в этом примере используется поддомен ‘fossbilling.howtoforge.local‘.
Если эти требования готовы, вы можете завершить установку FOSSBilling.
Установка веб-сервера Nginx
FOSSBilling может работать с веб-серверами Nginx и Lighttpd. В этом руководстве будет использоваться Nginx в качестве веб-сервера. На этом этапе вы установите Nginx из официального репозитория Rocky Linux AppStream.
Для начала убедитесь, что репозиторий EPEL добавлен в вашу систему. Или вы можете установить его с помощью команды dnf ниже.
sudo dnf install epel-releaseЗатем установите веб-сервер Nginx, используя команду dnf ниже. Когда будет предложено, введите y для подтверждения и нажмите ENTER для продолжения.
sudo dnf install nginxВывод:

После установки Nginx выполните следующую команду systemctl, чтобы запустить и включить службу Nginx. Это запустит Nginx на стандартном HTTP-порту 80 и позволит Nginx автоматически запускаться при старте системы.
sudo systemctl start nginx
sudo systemctl enable nginxТеперь проверьте статус службы Nginx, используя следующую команду systemctl. Вы должны получить вывод, что служба Nginx работает и включена.
sudo systemctl status nginxВывод:

Служба Nginx теперь работает, вам нужно открыть как HTTP, так и HTTPS протоколы в firewalld. Для этого вы можете выполнить следующую команду firewall-cmd.
sudo firewall-cmd --add-service={http,https} --permanentПосле добавления протоколов HTTP и HTTPS в firewalld выполните следующую команду, чтобы перезагрузить firewalld и применить изменения. Затем проверьте список включенных служб в firewalld.
Вы должны увидеть, что протоколы HTTP и HTTPS добавлены в firewalld.
sudo firewall-cmd --reload
sudo firewall-cmd --list-allВывод:

Таким образом, вы установили веб-сервер Nginx и настроили firewalld для открытия протоколов HTTP и HTTPS. На следующем этапе вы начнете установку сервера баз данных MariaDB.
Установка сервера MariaDB
FOSSBilling использует MySQL/MariaDB для хранения данных пользователей. Требуется как минимум MySQL 8 или сервер MariaDB 10.x. На этом этапе вы установите сервер MariaDB из официального репозитория Rocky Linux, который является MariaDB 10.5 и совместим с последней версией FOSSBilling.
Установите сервер баз данных MariaDB на вашу систему Rocky Linux с помощью команды dnf ниже. Введите y, когда будет предложено, и нажмите ENTER для продолжения.
sudo install mariadb-serverВывод:

После установки MariaDB выполните следующую команду systemctl, чтобы запустить и включить службу MariaDB.
sudo systemctl start mariadb
sudo systemctl enable mariadbЗатем выполните следующую команду systemctl, чтобы проверить службу MariaDB и убедиться, что служба работает. Вывод ‘active (running)‘ подтверждает, что сервер MariaDB работает. А вывод ‘loaded (../mariadb.service; enabled;)‘ подтверждает, что служба MariaDB включена и будет автоматически запущена при старте системы.
sudo systemctl status mariadbВывод:

С сервером MariaDB, работающим, теперь вам нужно защитить MariaDB с помощью команды ‘mariadb-secure-installation’. Это включает в себя настройку пароля root для MariaDB, отключение удаленного входа для пользователя root MariaDB и т.д.
Выполните следующую команду ‘mariadb-secure-installation‘, чтобы защитить развертывание MariaDB.
sudo mariadb-secure-installationВам будет предложено ответить на некоторые настройки MariaDB ниже:
- Переключить локальную аутентификацию на unix_socket? Введите n для нет.
- Установить пароль root для MariaDB? Введите y, затем введите новый пароль root для MariaDB и повторите.
- Удалить пользователя по умолчанию? Введите y для подтверждения.
- Отключить удаленный вход для пользователя root? Введите y для подтверждения.
- Удалить тестовую базу данных по умолчанию? Введите y для подтверждения.
- Перезагрузить привилегии таблиц и применить изменения? Введите y для подтверждения.
С установленным и работающим сервером MariaDB, теперь вы создадите новую базу данных MariaDB и пользователя, которые будут использоваться для установки FOSSBilling.
Создание базы данных и пользователя
На этом этапе вы создадите новую базу данных MariaDB и пользователя, которые будут использоваться для установки FOSSBilling.
Выполните следующую команду ‘mariadb‘, чтобы войти в MariaDB через пользователя root. Когда будет предложено ввести пароль, введите ваш пароль root для MariaDB и нажмите ENTER.
sudo mariadb -u root -pПосле входа в оболочку MariaDB выполните следующие запросы, чтобы создать новую базу данных MariaDB и пользователя. В этом примере вы создадите новую базу данных fossbillingdb с пользователем ‘fossbilling‘. Также убедитесь, что вы изменили пароль по умолчанию в следующем запросе.
CREATE DATABASE fossbillingdb;
CREATE USER fossbilling@localhost IDENTIFIED BY 'password';
GRANT ALL ON fossbillingdb.* TO fossbilling@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;Вывод:

Наконец, выполните следующий запрос, чтобы проверить пользователя MariaDB fossbilling@localhost, чтобы убедиться, что у пользователя есть привилегии для доступа к базе данных ‘fossbillingdb‘.
Вывод ‘GRANT ALL PRIVILEGES ON fossbillingdb. to fossbilling@localhost‘ подтверждает, что у пользователя fossbilling@localhost есть привилегии для доступа к базе данных ‘fossbillingdb*’.
Введите quit, чтобы выйти из оболочки MariaDB.
SHOW GRANTS FOR fossbilling@localhost;
quitВывод:

Теперь, когда вы создали базу данных MariaDB и пользователя для FOSSBilling. На следующем этапе вы установите PHP и PHP-FPM на своем сервере Rocky Linux.
Установка PHP-FPM 8.2
Последняя версия FOSSBilling поддерживается с PHP 8.x. На этом этапе вы установите PHP и PHP-FPM 8.2 через репозиторий Remi. Сначала вы настроите репозиторий Remi, установите пакеты PHP и PHP-FPM, а затем настроите PHP-FPM с веб-сервером Nginx.
Добавьте репозиторий PHP Remi с помощью команды dnf ниже. Эта команда установит репозиторий Remi на вашу систему Rocky Linux. RPM файл ‘remi-release-9.rpm‘ подтверждает, что он может быть использован для дистрибуции RHEL 9. Также введите y, когда будет предложено, и нажмите ENTER для продолжения.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpmВывод:

Затем выполните следующую команду dnf, чтобы сбросить модуль репозитория для PHP. Затем проверьте список модулей репозитория PHP, доступных на вашей системе.
sudo dnf module reset php
sudo dnf module list phpКогда будет предложено настроить GPG-ключ для репозитория Remi, введите y для подтверждения и нажмите ENTER.

После выполнения команды ‘dnf module list php’ вы увидите несколько версий PHP, предоставленных официальным репозиторием Rocky Linux AppStream и репозиторием Remi.

Выполните следующую команду, чтобы включить репозиторий PHP для ‘remi-8.2‘. С этим, каждый раз, когда вы устанавливаете пакеты PHP, вы будете устанавливать пакеты PHP 8.2 из репозитория Remi.
Введите y, когда будет предложено, и нажмите ENTER для его включения.
sudo dnf module enable php:remi-8.2Вывод:

С настроенным репозиторием PHP Remi вы можете установить пакеты PHP.
Выполните следующую команду dnf, чтобы установить пакеты PHP и PHP-FPM на ваш сервер Rocky Linux. Введите y, когда будет предложено, и нажмите ENTER для продолжения.
sudo dnf install php php-fpm php-mysql php-curl php-cli php-zip php-common php-mbstring php-xmlВывод:

Вам также будет предложено подтвердить GPG-ключ для репозитория Remi. Введите y для подтверждения и нажмите ENTER.

После установки PHP откройте файл конфигурации PHP ‘/etc/php.ini‘ с помощью следующей команды редактора nano.
sudo nano /etc/php.iniИзмените конфигурацию PHP по умолчанию следующими строками.
upload_max_filesize = 16M
post_max_size = 32M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000Сохраните и выйдите из файла ‘/etc/php.ini‘, когда закончите.
Чтобы запустить PHP-FPM с Nginx на дистрибутивах на основе RHEL, вы должны убедиться, что PHP-FPM работает с пользователем и группой по умолчанию ‘nginx‘.
На RHEL веб-сервер Nginx по умолчанию работает под пользователем ‘nginx‘. В то время как на дистрибутивах на основе Debian как Nginx, так и веб-сервер Apache2 работают под одним и тем же пользователем и группой ‘www-data‘.
Откройте конфигурацию пула PHP-FPM ‘/etc/php-fpm.d/www.conf‘ с помощью следующей команды редактора nano.
sudo nano /etc/php-fpm.d/www.confИзмените параметры ‘user‘ и ‘group‘ по умолчанию на ‘nginx‘.
user = nginx
group = nginxСохраните и закройте файл, когда закончите.
Затем выполните следующую команду systemctl, чтобы запустить и включить службу PHP-FPM. Это запустит службу PHP-FPM с файлом сокета по умолчанию ‘/run/php-fpm/www.sock‘ и позволит PHP-FPM автоматически запускаться при старте системы.
Вывод ‘Created symlink …‘ подтверждает, что служба PHP-FPM включена.
sudo systemctl start php-fpm
sudo systemctl enable php-fpmВывод:

Теперь выполните следующую команду systemctl, чтобы проверить статус службы PHP-FPM. Вы должны получить вывод, что PHP-FPM ‘active (running)‘, что подтверждает, что PHP-FPM работает. А вывод ‘Loaded …/…/; enabled;‘ подтверждает, что служба PHP-FPM включена.
sudo systemctl status php-fpmВывод:

Наконец, выполните следующую команду php, чтобы проверить версию PHP, установленную на вашей системе. Затем проверьте список включенных расширений на вашей системе.
Вы получите вывод PHP 8.2 и список включенных расширений PHP, и убедитесь, что эти расширения ‘curl’, ‘openssl’, ‘pdo_mysql’ и ‘zlib’ включены.
php --version
php -mВывод:

Таким образом, вы установили PHP и PHP-FPM 8.2 на систему Rocky Linux. Вы также настроили PHP-FPM для работы с веб-сервером Nginx. На следующем этапе вы начнете установку FOSSBilling, загрузив исходный код.
Загрузка исходного кода FOSSBilling
На этом этапе вы загрузите исходный код FOSSBilling и настроите каталог установки FOSSBilling на ‘/var/www/fossbilling’.
Перед тем как начать, выполните следующую команду dnf, чтобы установить пакет unzip на вашу систему.
sudo dnf install unzip -yТеперь создайте новый каталог ‘/var/www/fossbilling‘ и переместите ваш рабочий каталог в него. Затем вы можете загрузить последнюю стабильную версию FOSSBilling с помощью команды curl, как показано ниже.
mkdir -p /var/www/fossbilling; cd /var/www/fossbilling
curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zipВывод:

Когда исходный код FOSSBilling будет загружен, вы увидите файл FOSSBilling.zip в вашем рабочем каталоге. Выполните следующую команду unzip, чтобы извлечь файл ‘FOSSBilling.zip‘. Затем измените владельца каталога установки FOSSBilling ‘/var/www/fossbilling‘ на пользователя и группу ‘nginx‘.
unzip FOSSBilling.zip
sudo chown -R nginx:nginx /var/www/fossbillingС загруженным исходным кодом FOSSBilling и настроенным каталогом установки вы теперь настроите блок сервера Nginx, который будет использоваться для запуска веб-приложения FOSSBilling.
Настройка блока сервера Nginx
На этом этапе вы настроите новый файл конфигурации блока сервера Nginx, который будет использоваться для запуска веб-приложения FOSSBilling. Прежде чем начать, убедитесь, что ваше доменное имя указывает на IP-адрес сервера.
Создайте новый файл конфигурации блока сервера Nginx ‘/etc/nginx/conf.d/fossbilling.conf‘ с помощью следующей команды редактора nano.
sudo nano /etc/nginx/conf.d/fossbilling.confДобавьте следующие строки в файл. Обязательно измените целевое доменное имя установки ‘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;
# Блокировать доступ к конфиденциальным файлам и возвращать 404, чтобы сделать их неотличимыми от отсутствующего файла
location ~* .(ini|sh|inc|bak|twig|sql)$ {
return 404;
}
# Блокировать доступ к скрытым файлам, кроме .well-known
location ~ /(?!well-known/) {
return 404;
}
# Отключить выполнение PHP в /uploads
location ~* /uploads/.*\.php$ {
return 404;
}
# Запретить доступ к /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 необходимо изменить в соответствии с вашей настройкой сервера:
# phpx.x — это ваша настройка сервера
# примеры: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock или /run/php/phpx.x-fpm.sock — все это допустимые варианты
# Или даже localhost:port (по умолчанию 9000 будет работать нормально)
# Пожалуйста, проверьте вашу настройку сервера
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;
}
}Сохраните и выйдите из файла, когда закончите.
Затем выполните следующую команду, чтобы проверить конфигурацию Nginx. Затем перезапустите службу Nginx, чтобы применить изменения. Если тест конфигурации Nginx успешен, вы должны получить вывод, такой как ‘тест успешен - синтаксис в порядке‘.
sudo nginx -t
sudo systemctl restart nginxВывод:

На данный момент у вас работает FOSSBilling с веб-сервером Nginx. Но он все еще находится в небезопасном HTTP-соединении. На следующем этапе вы защитите FOSSBilling с помощью SSL/TLS сертификатов через Certbot и Letsencrypt.
Защита FOSSBilling с помощью SSL/TLS Letsencrypt
С созданной конфигурацией блока сервера Nginx вы теперь защитите установку FOSSBilling с помощью SSL/TLS сертификатов, и вы можете достичь этого, используя инструмент Certbot и бесплатные SSL сертификаты от Letsencrypt.
Прежде чем начать, убедитесь, что ваше доменное имя указывает на IP-адрес сервера и убедитесь, что у вас есть адрес электронной почты, который будет использоваться для регистрации в Letsencrypt.
Теперь выполните следующую команду dnf, чтобы установить Certbot и плагин Certbot Nginx. Введите y, когда будет предложено, и нажмите ENTER для продолжения.
sudo dnf install certbot python3-certbot-nginxВывод:

После установки Certbot выполните следующую команду, чтобы сгенерировать SSL/TLS сертификаты для вашего доменного имени. Также убедитесь, что вы изменили доменное имя и адрес электронной почты в следующей команде.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d fossbilling.howtoforge.localС этой командой новые SSL/TLS сертификаты будут сгенерированы для вашего доменного имени. Также это автоматически настроит HTTPS на вашем блоке сервера Nginx и настроит автоматическую переадресацию с HTTP на HTTPS. Ваши SSL/TLS сертификаты сгенерированы в директории ‘/etc/elstencrypt/live/fossbilling.howtoforge.local/‘.
Начало установки FOSSBilling
Откройте веб-браузер и посетите доменное имя вашей установки FosssBilling (т.е.: https://fossbilling.howtoforge.local/).
Установщик FOSSBilling теперь должен проверить и подтвердить детали вашей системы. Убедитесь, что требования получают статус ‘Ок‘ зеленым цветом. Нажмите Далее, чтобы продолжить.

Теперь введите данные базы данных MariaDB и пользователя, которые вы создали, и снова нажмите Далее.

Далее введите новые данные администратора для FOSSBilling. Введите ваше имя пользователя, адрес электронной почты, пароль и валюту по умолчанию. Затем нажмите Далее, чтобы продолжить.

Когда установка FOSSBilling будет успешной, вы должны получить сообщение ‘Поздравляем! FOSSBilling был успешно установлен.’
Вы также увидите некоторые инструкции для завершения вашей установки FOSSBilling.

Вернитесь к терминалу вашего сервера Rocky Linux и выполните следующие команды, чтобы завершить установку FOSSBilling.
Удалите директорию ‘ install ‘ FOSSBilling.
sudo rm -rf /var/www/fossbilling/installИзмените разрешение файла конфигурации FOssBilling ‘ config.php ‘ на 0644. Это удалит разрешение ‘ запись ‘ для других и групп.
sudo chmod 0644 /var/www/fossbilling/config.phpСоздайте новый cron для FOSSBilling с помощью следующей команды.
crontab -u nginx -eВыберите редактор кода, который вы хотите использовать. Затем введите следующие строки в файл.
*/5 * * * * php /var/www/fossbilling/cron.phpСохраните файл и выйдите из редактора, когда закончите.

Теперь вернитесь в веб-браузер и нажмите Завершить.
Теперь вы получите следующую страницу.

Если вы нажмете кнопку ‘Клиентская зона‘, вы будете перенаправлены на главную страницу FOSSBilling.

Если вы нажмете кнопку ‘Административная зона‘, вы будете перенаправлены на страницу входа администратора.
Войдите с вашим адресом электронной почты и паролем, затем нажмите ‘Войти‘.

Если все прошло успешно, вы должны увидеть панель управления администратора FOSSBilling.

Таким образом, вы завершили установку FOSSBilling и защитили его с помощью SSL/TLS сертификатов через Certbot и Letsencrypt.
Заключение
В этом руководстве вы установили открытую систему выставления счетов и управления пользователями FOSSBilling на сервере Rocky Linux 9. Вы также настроили стек LEMP (веб-сервер Nginx, базу данных MariaDB и PHP-FPM) на системе Rocky Linux. Кроме того, вы защитили установку FOSSBilling с помощью SSL/TLS сертификатов, сгенерированных через Certbot и Letsencrypt.
Теперь вы можете использовать FOSSBilling для вашего бизнеса. Вы можете добавлять больше пользователей, настраивать SMTP-сервер и многое другое.
Get new posts in your inbox
No spam. Unsubscribe anytime.