BoxBillingは、PHPで記述されたコミュニティ主導の課金ソフトウェアです。これは、クライアントと販売者の両方にとって使いやすいように設計された無料のオープンソース課金です。 BoxBillingは、直感的なインターフェースを備えたクライアントに優れたエクスペリエンスを提供し、複数の支払いゲートウェイもサポートします。
このチュートリアルでは、Nginx、PHP-FPM、およびMariaDBを使用してBoxBillingをDebian11Bullseyeにインストールする方法を示します。
- Debian11サーバーBullseye。
- sudoroot権限を持つユーザー。
- サーバーのIPアドレスを指すドメイン名またはサブドメイン。特に本番環境では。
PHPのインストールと構成
まず、DebianシステムにPHP-FPMをインストールして設定します。 BoxBillingの最新バージョンには、DebianリポジトリのデフォルトのPHPバージョンであるPHP-FPM7.4以降が必要でした。
始める前に、' aptを使用してDebianパッケージインデックスを更新してください '以下のコマンド。
sudo apt update
リポジトリが更新されたら、次のコマンドを実行して、BoxBillingのすべての追加拡張機能を備えたPHP-FPMをインストールします。
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メモリを搭載したサーバーを使用しているため、「 memory_limit」を割り当てます。 'PHPの場合'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のインストール
このステップでは、NginxWebサーバーとMariaDBデータベースをインストールします。 BoxBillingアプリケーションには少なくともMySQLv8が必要ですが、MariaDBなどの別のMySQL実装もサポートしています。
' aptを使用してDebian11サーバーに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ルートパスワードを設定し、基本的なセキュリティでMariaDBをデプロイします。
コマンド'mysql_secure_installationを実行します 'ターミナルサーバー上。
mysql_secure_installation
ここで、MariaDBのルートパスワードを入力するように求められます。 ENTERを押します デフォルトのMariaDBインストールにはrootパスワードがないため、続行します。
rootの現在のパスワードを入力してください(noneの場合は入力してください):
OK、正常に使用されたパスワード、次に進みます...
ここで「Y」と入力します 'rootユーザーのデフォルト認証を'unix_socket_authenticationに切り替えます ' 方法。これにより、rootユーザーは常にローカルマシンからMariaDBに接続されます。
rootパスワードを設定するか、unix_socketを使用すると、適切な認証なしに
誰もMariaDBrootユーザーにログインできないようになります。
rootアカウントはすでに保護されているため、安全に保護できます。回答'n'。
unix_socket認証に切り替えます[Y/n] Y
正常に有効になりました!
特権テーブルを再読み込みしています..
...成功しました!
' Yと入力します 'を使用してMariaDBのルートパスワードを変更し、新しいパスワードを入力します MariaDBの場合は繰り返します。
すでにrootアカウントが保護されているので、「n」と安全に答えることができます。
rootパスワードを変更しますか? [Y / n] Y
新しいパスワード:
新しいパスワードを再入力してください:
パスワードが正常に更新されました!
特権テーブルを再読み込みしています..
...成功しました!
' Yと入力します 'MariaDBのデフォルトの匿名ユーザーを削除します。
デフォルトでは、MariaDBインストールには匿名ユーザーがあり、
ユーザーアカウントを作成しなくても誰でも
MariaDBにログインできます。
これはテストのみを目的としており、インストールを少しスムーズにすることを目的としています。
本番環境に移行する前に、それらを削除する必要があります。
匿名ユーザーを削除しますか? [Y / n] Y
...成功!
' Yと入力します 'ユーザーrootのリモートログインを無効にします。
通常、rootは「localhost」からの接続のみを許可する必要があります。これにより、
誰かがネットワークからrootパスワードを推測できないようになります。
rootログインをリモートで禁止しますか? [Y / n] Y
...成功!
' Yと入力します 'デフォルトのデータベースを削除します'テスト 'およびその上にあるすべての特権。
デフォルトでは、MariaDBには「test」という名前のデータベースが付属しており、誰でも
アクセスできます。これもテストのみを目的としているため、本番環境に移行する前に
削除する必要があります。
テストデータベースを削除してアクセスしますか? [Y / n] Y
-テストデータベースを削除しています...
...成功しました!
-テストデータベースの権限を削除しています...
...成功しました!
最後に、MariaDBのテーブル権限をリロードして、新しい変更を適用します。
特権テーブルをリロードすると、これまでに行ったすべての変更がすぐに有効になります。
特権テーブルを今すぐリロードしますか? [Y / n] Y
...成功!
クリーンアップ...
これで、MariaDBルートパスワードが構成され、MariaDBサーバーが保護されました。
すべて完了です。上記のすべての手順を完了すると、MariaDBのインストールは安全になります。
MariaDBをご利用いただきありがとうございます!
BoxBilling用の新しいデータベースとユーザーの設定
このステップでは、BoxBillingをインストールするための新しいデータベースとユーザーを作成します。 BoxBillingに関連するすべてのデータはMariaDBデータベースに保存されます。
次に、次のコマンドを使用してMariaDBシェルにログインします。
mysql -u root -p
次のクエリを実行して、新しいデータベースとユーザー' boxbillingを作成します 'パスワード付き'dbpassBoxBilling '次に、データベースに対するすべての権限を付与します' boxbilling 'ユーザーへ'[メール保護] '。その後、すべてのテーブル権限をリロードして、MariaDBに新しい変更を適用します。
CREATE DATABASE boxbilling;
CREATE USER example@unixlinux.online IDENTIFIED BY'dbpassBoxBilling';
GRANT ALLONboxbilling。*TOexample@unixlinux.online WITH GRANT OPTION;
FLUSH PRIVILEGES;
次に、「 exit」と入力します 'MariaDBシェルからログアウトします。そして、BoxBillingインストール用の新しいMariaDBデータベースとユーザーを作成しました。
BoxBillingソースコードのダウンロード
BoxBillingはさまざまな方法でインストールできます。ソースコードから最新バージョンのBoxBillingをインストールし、「Composer」を使用してすべてのPHP依存関係をインストールするか、安定したバージョンのBoxBillingをダウンロードしてWebルートディレクトリに移動できます。
このステップでは、BoxBillingの最新の安定バージョンをインストールします。この記事の執筆時点では、最新の安定バージョンBoxBillingは v4.22 。
新しいWebルートディレクトリを作成します'/ var / www / boxbilling 'そして作業ディレクトリをそこに移動します。
mkdir -p / var / www / boxbilling /
cd / var / www / boxbilling
wgetコマンドを使用してBoxBillingソースコードの最新の安定バージョンをダウンロードし、ファイル' BoxBilling.zipを抽出します。 'unzipコマンドを使用します。
wget https://github.com/boxbilling/boxbilling/releases/download/4.22.1.3/BoxBilling.zip
unzip Boxbilling.zip
次に、新しいディレクトリを作成します' cache 'および'アップロード ' / 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}
これで、BoxBillingソフトウェア用にNginxWebサーバーをセットアップする準備が整いました。
BoxBilling用のNginxの構成
このステップでは、BoxBilling用の新しいNginxサーバーブロックを追加します。サーバーブロック構成を作成する前に、ドメイン名がサーバーを指していることを確認してください。また、ドメイン用に生成されたSSL証明書があることを確認してください。Letsencryptからの無料のSSL証明書を使用できます。
作業ディレクトリを'/ 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-SH -AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; #nginxが必要> =1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; #nginxが必要> =1.5.9
#ssl_stapling on; #nginxが必要> =1.3.7
#ssl_stapling_verify on; #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;
}
#bb-uploadsとbb-dataでPHPの実行を無効にする
location ^〜/ bb-uploads / {}
location ^〜/ bb-data/{
すべて拒否;
}
location〜* ^ /(css | img | js | flv | swf | download)/(。+)$ {
root $ root_path;
有効期限が切れます;
proxy_no_cache 1;
proxy_cache_bypass 1;
}
location〜/\。ht{
}
/ pre>ファイルを保存して終了します。
次に、次のコマンドを実行して、サーバーブロック構成をアクティブにします' boxbilling.conf 'そしてNginx構成を確認します。
ln -s /etc/nginx/sites-available/boxbilling.conf /etc/nginx/sites-enabled/
sudo nginx -tNginxの構成が正しい場合は、「 Syntax OK」などの出力メッセージが表示されます。 '。
最後に、Nginxサービスを再起動して、新しい構成を適用します。
sudo systemctl restart nginx
![]()
BoxBillingのインストールと構成
この時点で、BoxBillingおよびNginxWebサーバーを構成しました。次に、WebブラウザからBoxBillingのインストールと構成を開始します。
Webブラウザーを開き、アドレスバーにBoxBillingドメイン名を入力します。
https://boxbilling.example.io/
すべての要件が緑色であることを確認してください。これは、BoxBillingをインストールするためのシステムが満たされていることを意味します。
ライセンスボックスをチェックします「同意します」 '次へをクリックします 'ボタン。
![]()
BoxBillingのデータベースとユーザーを入力し、[次へ]をクリックします 'ボタンをもう一度。
![]()
次に、BoxBillingの新しい管理者ユーザー、メールアドレス、パスワードを入力して、[次へ]をクリックします。 '。
![]()
BoxBillingは正常にインストールされましたが、BoxBillingサーバーに適用する必要がある追加のセットアップが必要になります。
'終了をクリックします 'ボタンをクリックすると、BoxBillingのインストールが完了します。
![]()
BoxBillingのホームページに移動すると、以下のようなページが表示されます。
![]()
BoxBillingポストインストール
Boxbillingのインストールが完了したら、「install」ディレクトリを削除し、ファイル「bb-config.php」の権限を変更して、BoxBillingアプリケーションの新しいcronジョブを作成する必要があります。
BoxBillingを削除する'インストール '次のコマンドを使用したディレクトリ。
rm -rf / var / www / boxbilling / install' bb-config.phpの権限を変更します 'から644 。これは、ユーザー「www-data」のみがこのファイルへの書き込みを許可することを意味します。
sudo chmod 644 /var/www/boxbilling/bb-config.php次に、ユーザー「www-data」の新しいcronジョブを作成します。 BoxBillingアプリケーションは、主にユーザー' www-dataを使用してNginxWebサーバーで実行されます。 '。
export EDITOR =nano
sudo crontab -u www-data -e次のスクリプトをコピーして貼り付けます。
* / 5 * * * * php /var/www/boxbilling/bb-cron.phpcronを保存して終了します。
これで、BoxBillingをクライアントと顧客に提供する準備が整いました。
BoxBilling管理ページにログイン
BoxBilling管理ページはURLパス'/ bb-adminにあります '。 Webブラウザのアドレスバーに次のURLを入力します。
https://boxbilling.example.io/bb-admin/
BoxBilling管理者ログインページで、ユーザーとパスワードを入力し、[ログイン]ボタンをクリックします。 '。
![]()
これで、Boxbilling管理ダッシュボードが次のように表示されます。
![]()
結論 おめでとうございます!これで、最新のDebian 11ブルズアイにPHP-FPM、Nginx、MariaDBを使用したBoxBillingがインストールされました。これで、クライアントや顧客との無料の中央購入管理として使用できます。