如何在 Debian 11 上安装 BoxBilling如何在 Debian 11 上安装 BoxBilling如何在 Debian 11 上安装 BoxBilling如何在 Debian 11 上安装 BoxBilling
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 BoxBilling

在此页

  1. 先决条件
  2. 安装和配置 PHP
  3. 安装 Nginx 和 MariaDB
  4. 设置 MariaDB 数据库
  5. 为 BoxBilling 设置新的数据库和用户
  6. 下载 BoxBilling 源代码
  7. 为 BoxBilling 配置 Nginx
  8. 安装和配置 BoxBilling
  9. BoxBilling 安装后
  10. 登录到 BoxBilling 管理页面
  11. 结论

BoxBilling 是一个用 PHP 编写的社区驱动的计费软件。它是免费的开源计费,旨在方便客户和卖家使用。 BoxBilling 通过直观的界面为客户提供出色的体验,还支持多个支付网关。

在本教程中,我们将向您展示如何在 Debian 11 Bullseye 上使用 Nginx、PHP-FPM 和 MariaDB 安装 BoxBilling。

先决条件

  • 一台 Debian 11 服务器 Bullseye。
  • 具有 sudo root 权限的用户。
  • 指向服务器 IP 地址的域名或子域。特别是在生产环境中。

安装和配置 PHP

首先,您将在 Debian 系统上安装和配置 PHP-FPM。最新版本的 BoxBilling 需要 PHP-FPM 7.4 或更高版本,这是 Debian 存储库上的默认 PHP 版本。

在开始之前,使用下面的 apt 命令刷新 Debian 软件包索引。

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 安装后,使用 nano 编辑器编辑文件 php.ini。

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 选项。在此示例中,我们使用的服务器具有 2GB RAM 内存,因此我们将为 PHP 分配 memory_limit 为 512MB。对于 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 Web 服务器和 MariaDB 数据库。 BoxBilling 应用程序至少需要 MySQL v8,但也支持另一种 MySQL 实现,例如 MariaDB。

使用下面的 apt 命令在 Debian 11 服务器上安装 Nginx 和 MariaDB。

sudo apt install nginx-full mariadb-server -y

Nginx和MariaDB安装完成后,运行以下命令验证Nginx服务和MariaDB服务。

sudo systemctl status nginx
sudo systemctl status mariadb

现在您应该得到输出,因为 Nginx 和 MariaDB 服务处于活动状态并正在运行。

设置 MariaDB 数据库

MariaDB安装完成后,建议设置MariaDB的root密码。您将使用 mysql_secure_installation 命令设置 MariaDB root 密码并部署具有基本安全性的 MariaDB。

在您的终端服务器上运行命令 mysql_secure_installation。

mysql_secure_installation

现在您将被要求输入 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 更改 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 root 密码,你的 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 shell。

mysql -u root -p

运行以下查询以使用密码 dbpassBoxBilling 创建新的数据库和用户 boxbilling,然后将数据库 boxbilling 的所有权限授予用户 [email 。之后,重新加载所有表权限以在 MariaDB 上应用新更改。

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

现在键入 exit 从 MariaDB shell 注销。您已经为 BoxBilling 安装创建了新的 MariaDB 数据库和用户。

下载 BoxBilling 源代码

可以通过多种方式安装 BoxBilling。您可以从源代码安装最新版本的 BoxBilling 并使用 Composer 安装所有 PHP 依赖项,或者下载 BoxBilling 的稳定版本并将其移动到 web-root 目录。

在此步骤中,我们将安装最新稳定版的 BoxBilling。在撰写本文时,最新的稳定版本 BoxBilling 是 v4.22。

创建一个新的 Web 根目录 /var/www/boxbilling 并将您的工作目录移到其中。

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

使用 wget 命令下载最新稳定版 BoxBilling 源代码,并使用 unzip 命令提取文件 BoxBilling.zip。

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

现在,在 /var/www/boxbilling/ 上创建一个新目录 cache 和 upload。

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 写入目录缓存 和上传。

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

现在您已准备好为 BoxBilling 软件设置 Nginx Web 服务器。

为 BoxBilling 配置 Nginx

在此步骤中,您将为 BoxBilling 添加新的 Nginx 服务器块。在创建服务器块配置之前,请确保您已将域名指向服务器。此外,请确保为您的域生成了 SSL 证书,您可以使用 Letsencrypt 提供的免费 SSL 证书。

将您的工作目录移动到 /etc/nginx/sites-available 并使用 nano 编辑器创建一个新的服务器块配置 boxbilling.conf。

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 Web 服务器。现在您将开始从 Web 浏览器安装和配置 BoxBilling。

打开您的网络浏览器并在地址栏中输入 BoxBilling 域名。

https://boxbilling.example.io/

确保所有要求都为绿色,这意味着您的系统已满足安装 BoxBilling 的要求。

选中我同意的许可证框,然后单击下一步按钮。

输入 BoxBilling 的数据库和用户,然后再次单击 NEXT 按钮。

现在,为 BoxBilling 输入新的管理员用户、电子邮件和密码,然后单击下一步。

并且您已经成功安装了 BoxBilling,但是您将需要必须应用于 BoxBilling 服务器的额外设置。

单击“完成”按钮,您就完成了 BoxBilling 安装。

您可以移至BoxBilling的首页,您将看到类似如下的页面。

BoxBilling 安装后

Boxbilling 安装完成后,您需要删除安装目录并更改文件 bb-config.php 的权限,为 BoxBilling 应用程序创建一个新的 cronjob。

使用以下命令删除 BoxBilling install 目录。

rm -rf /var/www/boxbilling/install

将 bb-config.php 的权限更改为 644。这意味着只有用户 www-data 允许写入此文件。

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

现在为用户 www-data 创建一个新的 cronjob。 BoxBilling 应用程序主要运行在 Nginx Web 服务器下,用户为 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 管理仪表板。

结论

恭喜!您现在已经在最新的 Debian 11 bullseye 上安装了带有 PHP-FPM、Nginx 和 MariaDB 的 BoxBilling。您现在可以将其用作您的客户和客户的免费集中采购管理。

©2015-2025 艾丽卡 support@alaica.com