Поиск по сайту:

Как установить BoxBilling на Debian 11


На этой странице

  1. Предпосылки
  2. Установка и настройка PHP
  3. Установка Nginx и MariaDB
  4. Настройка базы данных MariaDB
  5. Настройка новой базы данных и пользователя для BoxBilling
  6. Скачивание исходного кода BoxBilling
  7. Настройка Nginx для BoxBilling
  8. Установка и настройка BoxBilling
  9. Установка поста BoxBilling
  10. Вход на страницу администрирования BoxBilling
  11. Заключение

BoxBilling — это программное обеспечение для выставления счетов, написанное на PHP. Это бесплатный биллинг с открытым исходным кодом, который прост в использовании как для клиентов, так и для продавцов. BoxBilling предоставляет клиентам удобный интерфейс благодаря интуитивно понятному интерфейсу, а также поддерживает несколько платежных шлюзов.

В этом руководстве мы покажем вам, как установить BoxBilling с Nginx, PHP-FPM и MariaDB в Debian 11 Bullseye.

Предпосылки

  • Сервер Debian 11 Bullseye.
  • Пользователь с привилегиями sudo root.
  • Доменное имя или субдомен указывают на IP-адрес сервера. Особенно в производственных условиях.

Установка и настройка PHP

Сначала вы установите и настроите PHP-FPM в своей системе Debian. для последней версии BoxBilling требуется PHP-FPM 7.4 или выше, который является версией PHP по умолчанию в репозитории Debian.

Прежде чем приступить к работе, обновите индекс пакетов Debian с помощью приведенной ниже команды apt.

sudo apt update

После обновления репозитория выполните следующую команду, чтобы установить PHP-FPM со всеми дополнительными расширениями для BoxBilling.

sudo apt install php-fpm php-cli php-common php-zip php-mysql php-gd php-intl php-curl php-imap php-mbstring php-xml php-json libpcre3 openssl git unzip -y

После завершения установки PHP отредактируйте файл php.ini с помощью редактора nano.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Измените параметры memory_limit, max_execution_time и date.timezone на предпочитаемую среду. В этом примере использовался сервер с 2 ГБ оперативной памяти, поэтому мы выделим memory_limit для PHP до 512 МБ. Для параметра data.timezone измените его на свой часовой пояс.

memory_limit = 512M
max_execution_time = 360
date.timezone = Europe/Paris

Сохраните файл и выйдите.

Теперь перезапустите службу PHP-FPM и примените новую конфигурацию, выполнив приведенную ниже команду systemctl.

sudo systemctl restart php7.4-fpm

Наконец, проверьте службу PHP-FPM с помощью приведенной ниже команды.

sudo systemctl status php7.4-fpm

Вы увидите вывод, поскольку служба PHP-FPM активна.

Установка Nginx и MariaDB

На этом этапе вы будете устанавливать веб-сервер Nginx и базу данных MariaDB. Приложение BoxBilling требует как минимум MySQL v8, но также поддерживает другую реализацию MySQL, такую как MariaDB.

Установите Nginx и MariaDB на сервер Debian 11 с помощью приведенной ниже команды apt.

sudo apt install nginx-full mariadb-server -y

После завершения установки Nginx и MariaDB выполните следующую команду, чтобы проверить службу Nginx и службу MariaDB.

sudo systemctl status nginx
sudo systemctl status mariadb

Теперь вы должны получить вывод, поскольку службы Nginx и MariaDB активны и работают.

Настройка базы данных MariaDB

После установки MariaDB рекомендуется установить пароль root для MariaDB. Вы будете использовать команду mysql_secure_installation для установки корневого пароля MariaDB и развертывания MariaDB с базовой безопасностью.

Запустите команду mysql_secure_installation на сервере терминалов.

mysql_secure_installation

Теперь вам будет предложено ввести пароль root для MariaDB. Нажмите ENTER, чтобы продолжить, потому что установка MariaDB по умолчанию идет без пароля root.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Теперь введите Y, чтобы переключить аутентификацию по умолчанию для пользователя root на метод unix_socket_authentication. Это гарантирует, что пользователь root всегда подключен к MariaDB с локального компьютера.

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

Введите Y, чтобы изменить пароль root для MariaDB, затем введите новый пароль для MariaDB и повторите.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Введите Y, чтобы удалить анонимного пользователя по умолчанию в MariaDB.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Введите Y, чтобы отключить удаленный вход для пользователя root.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

Введите Y, чтобы удалить тест базы данных по умолчанию и все дополнительные привилегии.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Наконец, перезагрузите привилегии таблицы в MariaDB, чтобы применить новые изменения.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

И вы настроили корневой пароль MariaDB, и теперь ваш сервер MariaDB защищен.

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Настройка новой базы данных и пользователя для BoxBilling

На этом шаге вы создадите новую базу данных и пользователя для установки BoxBilling. Все данные, связанные с BoxBilling, будут храниться в базе данных MariaDB.

Теперь войдите в оболочку MariaDB, используя следующую команду.

mysql -u root -p

Выполните следующие запросы, чтобы создать новую базу данных и учетную запись пользователя с паролем dbpassBoxBilling, а затем предоставьте все права доступа к базе данных пользователю [email . После этого перезагрузите все привилегии таблицы, чтобы применить новые изменения в MariaDB.

CREATE DATABASE boxbilling;
CREATE USER WITH GRANT OPTION;
FLUSH PRIVILEGES;

Теперь введите exit, чтобы выйти из оболочки MariaDB. И вы создали новую базу данных MariaDB и пользователя для установки BoxBilling.

Загрузка исходного кода BoxBilling

BoxBilling можно установить разными способами. Вы можете установить последнюю версию BoxBilling из исходного кода и установить все зависимости PHP с помощью Composer или загрузить стабильную версию BoxBilling и переместить ее в корневой веб-каталог.

На этом этапе мы установим последнюю стабильную версию BoxBilling. На момент написания этой статьи последней стабильной версией BoxBilling является v4.22.

Создайте новый корневой веб-каталог /var/www/boxbilling и переместите в него свой рабочий каталог.

mkdir -p /var/www/boxbilling/
cd /var/www/boxbilling

Загрузите последнюю стабильную версию исходного кода BoxBilling с помощью команды wget и распакуйте файл BoxBilling.zip с помощью команды unzip.

wget https://github.com/boxbilling/boxbilling/releases/download/4.22.1.3/BoxBilling.zip
unzip Boxbilling.zip

Теперь создайте новые каталоги cache и upload в /var/www/boxbilling/.

mkdir -p /var/www/boxbilling/bb-data/{cache,uploads}

Затем измените владельца каталога /var/www/boxbilling на пользователя и группу www-data с помощью приведенной ниже команды.

sudo chown -R www-data:www-data /var/www/boxbilling

Разрешить пользователю www-data записывать в каталог cache и загружать.

sudo chmod u+rw /var/www/boxbilling/bb-data/{cache,uploads}

И теперь вы готовы настроить веб-сервер Nginx для программного обеспечения BoxBilling.

Настройка Nginx для BoxBilling

На этом этапе вы добавите новые серверные блоки Nginx для BoxBilling. Перед созданием конфигурации блока сервера убедитесь, что доменное имя указывает на сервер. Кроме того, убедитесь, что у вас есть сертификаты SSL, сгенерированные для вашего домена, вы можете использовать бесплатные сертификаты SSL от Letsencrypt.

Переместите рабочий каталог в /etc/nginx/sites-available и создайте новую конфигурацию серверных блоков boxbilling.conf с помощью редактора nano.

cd /var/www/sites-available/
nano boxbilling.conf

Скопируйте и вставьте следующую конфигурацию. И обязательно измените доменное имя и путь сертификатов SSL.

server {
    listen 80;
    server_name billing.example.io;
    return 302 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;

     set $root_path '/var/www/boxbilling';

     server_name  billing.example.io;

     index index.html index.htm index.php;
     root $root_path;
     try_files $uri $uri/ @rewrite;
     sendfile off;

  ssl_certificate /etc/letsencrypt/live/billing.example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/billing.example.io/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
  ssl_session_timeout  10m;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # Requires nginx >= 1.5.9
  # ssl_stapling on; # Requires nginx >= 1.3.7
  # ssl_stapling_verify on; # Requires nginx => 1.3.7
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

     location @rewrite {
         rewrite ^/(.*)$ /index.php?_url=/$1;
     }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         include fastcgi_params;
         fastcgi_intercept_errors on;
    }

     # Disable PHP execution in bb-uploads and bb-data
     location ^~ /bb-uploads/ { }
     location ^~ /bb-data/ {
       deny all;
     }

     location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
         root $root_path;
         expires off;
         proxy_no_cache 1;
         proxy_cache_bypass 1;
     }

     location ~ /\.ht {
         deny all;
     }
 }

Сохраните файл и выйдите.

Затем выполните следующую команду, чтобы активировать конфигурацию блока сервера boxbilling.conf и проверить конфигурацию Nginx.

ln -s /etc/nginx/sites-available/boxbilling.conf /etc/nginx/sites-enabled/
sudo nginx -t

Если ваша конфигурация Nginx верна, вы увидите выходное сообщение, например Syntax OK.

Наконец, перезапустите службу Nginx, чтобы применить новую конфигурацию.

sudo systemctl restart nginx

Установка и настройка BoxBilling

На этом этапе вы настроили веб-сервер BoxBilling и Nginx. Теперь вы начнете установку и настройку BoxBilling из веб-браузера.

Откройте веб-браузер и введите доменное имя BoxBilling в адресной строке.

https://boxbilling.example.io/

Убедитесь, что все требования отмечены зеленым цветом, что означает, что ваша система подходит для установки BoxBilling.

Установите флажок Лицензия Я согласен и нажмите кнопку ДАЛЕЕ.

Введите базу данных и пользователя для BoxBilling и снова нажмите кнопку NEXT.

Теперь введите нового пользователя-администратора, адрес электронной почты и пароль для BoxBilling и нажмите «ДАЛЕЕ».

И вы успешно установили BoxBilling, но вам потребуются дополнительные настройки, которые вы должны применить к серверу BoxBilling.

Нажмите кнопку FINISH, и вы завершили установку BoxBilling.

Вы можете перейти на домашнюю страницу BoxBilling, и вы увидите похожую страницу, как показано ниже.

Установка BoxBilling Post

После завершения установки Boxbilling вам нужно будет удалить каталог установки и изменить права доступа к файлу bb-config.php, чтобы создать новое задание cron для приложения BoxBilling.

Удалите каталог BoxBilling install с помощью следующей команды.

rm -rf /var/www/boxbilling/install

Измените разрешение файла bb-config.php на 644. Это означает, что только пользовательские www-данные позволяют записывать в этот файл.

sudo chmod 644 /var/www/boxbilling/bb-config.php

Теперь создайте новую задачу cronjob для пользователя www-data. Приложение BoxBilling в основном работает под управлением веб-сервера Nginx с пользователем www-data.

export EDITOR=nano
sudo crontab -u www-data -e

Скопируйте и вставьте следующий скрипт.

*/5 * * * * php /var/www/boxbilling/bb-cron.php

Сохраните cron и выйдите.

Теперь ваш BoxBilling готов для ваших клиентов и заказчиков.

Вход на страницу администрирования BoxBilling

Страница администрирования BoxBilling находится по URL-адресу /bb-admin. Введите следующий URL-адрес в адресную строку веб-браузера.

https://boxbilling.example.io/bb-admin/

На странице входа в систему BoxBilling введите имя пользователя и пароль, нажмите кнопку ВОЙТИ.

Теперь вы увидите панель администратора Boxbilling, как показано ниже.

Заключение

Поздравляем! Теперь вы установили BoxBilling с PHP-FPM, Nginx и MariaDB на последнюю версию Debian 11 Bullseye. Теперь вы можете использовать его в качестве бесплатного централизованного управления покупками для своих клиентов и заказчиков.