Потребовалась биллинговая система под свои задачи. Решил глянуть open source решения, из тех что глянул — это:
- FossBilling — нашел случайно, потыкал демку на их сайте, показалась интересной.
- Joonte JBs Billing — давно знал, отечественное решение, есть возможность общаться с основным разработчиком напрямую.
В общем выбрал второй вариант. И сразу же первые грабли, нет документации, то что есть на офф сайте реально устарело, мало вероятно что по тем инструкциям получится что то установить. По этому на память решил для себя записать, как установить и настроить эту биллинговую панель.
Развернуть решил на Debian 12, так как почти везде используется он на текущий момент у меня, но не думаю что с другими ОС-ями будут проблемы.
1 2 |
cat /etc/os-release | grep PRET PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" |
После установки системы обязательно обновляем все и ставим нужные пакеты:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# обновляем систему apt update && apt upgrade -y # установка lamp с нужными модулями apt install -y apache2 \ mariadb-server \ php8.2 php8.2-mbstring \ php8.2-xml php8.2-mysql \ php8.2-curl php8.2-gd php8.2-zip \ php8.2-cli php8.2-fpm php8.2-tidy # установка дополнительного ПО apt install htop mc phpmyadmin git memcached php-memcached unzip # первоначальная настройка mariadb mysql_secure_installation |
Биллинговая панель у нас будет лежать на сервере в /var/www/jbs, скачиваем панель и конфигурируем виртуальный хост веб сервера под нее.
1 2 3 4 5 6 7 |
# переходим в каталог www cd /var/www # клонируем репозиторий jbs git clone https://github.com/joonte/jbs.git jbs # выставляем права и пользователя chown -R www-data:www-data /var/www/jbs chmod -R 755 /var/www/jbs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# настройки хоста nano /etc/apache2/sites-available/jbs.conf <VirtualHost *:80> ServerName jbs.nahoste.ru DocumentRoot /var/www/jbs <Directory /var/www/jbs> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/jbs_error.log CustomLog ${APACHE_LOG_DIR}/jbs_access.log combined <FilesMatch "\.php$"> SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/" </FilesMatch> </VirtualHost> # включаем модули a2enmod rewrite proxy_fcgi setenvif # включаем конфигурацию php-fpm a2enconf php8.2-fpm # включаем наш виртуальный хост a2ensite jbs.conf # перезапускаем веб сервер systemctl restart apache2 |
Так же необходимо поправить параметр output_buffering в php, по умолчанию он стоит 4096 необходимо изменить на 0
1 2 3 4 5 6 7 |
# находим php.ini grep -r output_buffering /etc/ # редактируем nano /etc/php/8.2/fpm/php.ini output_buffering = 0 # перезапускаем php-fpm systemctl restart php8.2-fpm |
Установка биллинга через браузер имеет небольшие недочеты, поэтому необходима предварительная подготовка:
1 2 3 4 5 6 7 8 9 |
# редактируем install.settings cd /var/www/jbs/ echo '{"db-server":"localhost","db-port":"3306","db-type":"exists","db-root":"","db-user":"jbs","db-password":"Password","db-name":"jbs"}' > install.settings # создаем пользователя mysql mysql -e "CREATE USER 'jbs'@'localhost' IDENTIFIED BY 'Password';" # создаем базу mysql -e "CREATE DATABASE IF NOT EXISTS jbs;" # выдаем права пользователю на базу mysql -e "GRANT ALL PRIVILEGES ON jbs.* TO 'jbs'@'localhost';" |
После всех приготовлений, можем перейти в браузер и начать установку, в моем случае это http://jbs.nahoste.ru/install
После завершения установки необходимо удалить каталог install:
1 |
rm -rf /var/www/jbs/install |
На этом установка биллинга завершена завершена. Исходя из документации, для входа используем:
- Логин: admin@company.com
- Пароль: default
Дальше производим настройку системы.
Возможна ошибка связанная с TaskLastExecute.txt, решается следующим образом:
1 |
chmod 664 /var/www/billing/hosts/jbs.nahoste.ru/tmp/TaskLastExecute.txt |
Добавить комментарий