Cara Menginstall FossBilling dengan Nginx di Rocky Linux | UNIX LINUX EXPLORE
Edit

Cara Menginstall FossBilling dengan Nginx di Rocky Linux

FossBilling adalah perangkat lunak penagihan dan manajemen klien yang tangguh sumber terbuka gratis yang dirancang untuk memudahkan pelanggan dan penjual. FOSSBilling merupakan pengembangan dari BoxBilling. FOSSBilling memberikan pengalaman yang luar biasa bagi pelanggan melalui antarmuka yang intuitif dan mendukung berbagai gerbang pembayaran. FOSSBilling cocok untuk berbagai macam bisnis, dari perusahaan kecil hingga menengah dan bahkan perusahaan besar. FOSSBilling dapat membantu Anda mengotomatiskan pembuatan faktur, penagihan pembayaran, serta manajemen dan komunikasi pelanggan.

Jika Anda menjalankan bisnis web hosting dan sedang mencari alternatif sumber terbuka untuk penagihan dan manajemen klien, maka fossbilling adalah jawabannya. Meskipun sebagian besar digunakan sebagai solusi untuk bisnis hosting, tidak ada alasan mengapa Anda tidak dapat menggunakan fossbilling untuk jenis bisnis online lainnya, seperti unduhan digital.

Dalam panduan ini, saya akan menginstal FOSSBilling pada server Rocky Linux 9. Panduan ini mencakup instalasi server web Nginx, server basis data MariaDB, PHP-FPM 8.2, dan alat Certbot untuk membuat sertifikat SSL/TSL. Pada akhirnya, Anda akan memiliki solusi manajemen penagihan dan pelanggan yang dapat Anda gunakan untuk bisnis harian Anda.




1. Cara kerja FOSSBilling

FOSSBilling (Perangkat Lunak Bebas dan Sumber Terbuka) adalah solusi penagihan dan manajemen klien. Kami membantu bisnis digital dengan solusi yang mudah digunakan dan gratis. Yang membedakan FOSSBilling dari sebagian besar pesaingnya adalah sepenuhnya bersumber terbuka. Anda dapat mengaudit apa yang berjalan di server Anda. Atau lebih baik lagi, berkontribusi pada proyek tersebut.

Jika Anda seorang programmer, FOSSBilling terdiri dari banyak pustaka, bahasa, dan teknologi yang berbeda. Inti dari semuanya adalah PHP. Kami menyimpan data dalam basis data MySQL. Untuk area klien, kami menggunakan Bootstrap, Font Awesome, dan pustaka lain agar terlihat dan berfungsi dengan baik. Area admin menggunakan Tabler, template area admin gratis dan sumber terbuka. Sumber FOSSBilling tersedia di repositori FOSSBilling/FOSSBilling di GitHub.

FOSSBilling akan berfungsi dengan benar pada salah satu server web berikut. Untuk kecepatan yang lebih baik, kami sarankan untuk menggunakan Apache atau Apache di belakang proxy terbalik NGINX (dengan NGINX yang menyimpan file statis dalam cache).

Untuk memulai proses instalasi FOSSBilling, anda harus terlebih dahulu menginstall web server. Dalam panduan ini kami menggunakan NGINX sebagai web server untuk menjalankan FOSSBilling.


2. Install Web Server NGINX

FOSSBilling dapat dijalankan dengan server web Nginx dan Lighttpd. Panduan ini akan menggunakan Nginx sebagai server web. Anda akan menginstal Nginx dari repositori resmi Rocky Linux AppStream pada langkah ini.

Untuk memulai, pastikan repositori EPEL telah ditambahkan ke sistem Anda. Atau Anda dapat menginstalnya melalui perintah dnf di bawah ini.


$ sudo dnf install epel-release
Selanjutnya, instal server web Nginx menggunakan perintah dnf di bawah ini. Saat muncul pertanyaan, masukkan "y" untuk mengonfirmasi dan tekan ENTER untuk melanjutkan.


$ sudo dnf install nginx
Setelah Nginx terinstal, jalankan perintah systemctl di bawah ini untuk memulai dan mengaktifkan layanan Nginx. Ini akan memulai dan menjalankan Nginx pada port HTTP default 80 dan memungkinkan Nginx berjalan secara otomatis saat sistem dinyalakan.


$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Sekarang verifikasi status layanan Nginx menggunakan perintah systemctl di bawah ini. Anda akan menerima output bahwa layanan Nginx sedang berjalan dan diaktifkan.


$ sudo systemctl status nginx


Layanan Nginx kini berjalan, Anda perlu membuka protokol HTTP dan HTTPS di firewalld. Untuk melakukannya, Anda dapat menjalankan perintah firewall-cmd di bawah ini.


$ sudo firewall-cmd --add-service={http,https} --permanent
Setelah protokol HTTP dan HTTPS ditambahkan ke firewalld, jalankan perintah di bawah ini untuk memuat ulang firewalld dan menerapkan perubahan. Kemudian, verifikasi daftar layanan yang diaktifkan di firewalld.

Anda akan melihat protokol HTTP dan HTTPS ditambahkan ke firewalld.


$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all
Dengan panduan di atas, Anda telah berhasil menginstal server web Nginx dan mengonfigurasi firewalld untuk membuka protokol HTTP dan HTTPS. Pada langkah berikutnya, Anda akan memulai instalasi server basis data MariaDB.


3. Install Database MariaDB

FOSSBilling menggunakan MySQL/MariaDB untuk menyimpan data pengguna. Diperlukan setidaknya MySQL 8 atau server MariaDB 10.x. Pada langkah ini, Anda akan menginstal server MariaDB dari repositori resmi Rocky Linux, yaitu MariaDB 10.5 dan kompatibel dengan versi terbaru FOSSBilling.

Instal server basis data MariaDB ke sistem Rocky Linux Anda melalui perintah dnf di bawah ini. Masukkan y saat diminta dan tekan ENTER untuk melanjutkan.


$ sudo install mariadb-server
Setelah MariaDB terinstal, jalankan utilitas perintah systemctl di bawah ini untuk memulai dan mengaktifkan layanan MariaDB.


$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
Selanjutnya, jalankan perintah systemctl di bawah ini untuk memverifikasi layanan MariaDB dan memastikan bahwa layanan tersebut berjalan. Output 'active (running)' mengonfirmasi bahwa server MariaDB sedang berjalan. Dan output 'loaded (../mariadb.service; enabled;)' mengonfirmasi bahwa layanan MariaDB diaktifkan dan akan berjalan secara otomatis saat sistem dinyalakan.


$ sudo systemctl status mariadb
Dengan server MariaDB yang berjalan, Anda sekarang akan mengamankan MariaDB melalui perintah 'mariadb-secure-installation'. Ini termasuk menyiapkan kata sandi root untuk MariaDB, menonaktifkan login jarak jauh untuk pengguna root MariaDB, dll.

Jalankan perintah 'mariadb-secure-installation' di bawah ini untuk mengamankan penyebaran MariaDB.


$ sudo mariadb-secure-installation
Anda akan ditanya tentang beberapa konfigurasi MariaDB di bawah ini:
  • Ganti autentikasi lokal ke unix_socket? Masukkan n untuk no.
  • Siapkan kata sandi root MariaDB? Masukkan y, lalu ketik kata sandi root MariaDB yang baru dan ulangi.
  • Hapus pengguna anonim default? Masukkan y untuk mengonfirmasi.
  • Nonaktifkan login jarak jauh untuk pengguna root? Masukkan y untuk mengonfirmasi.
  • Hapus pengujian basis data default? Masukkan y untuk mengonfirmasi.
  • Muat ulang hak istimewa tabel dan terapkan perubahan? Masukkan y untuk mengonfirmasi.
  • Setelah server MariaDB terinstal dan berjalan, selanjutnya Anda akan membuat basis data dan pengguna MariaDB baru yang akan digunakan untuk instalasi FOSSBilling.

4. Membuat Database dan User

Pada langkah ini, Anda akan membuat basis data dan pengguna MariaDB baru yang akan digunakan untuk instalasi FOSSBilling.

Jalankan perintah 'mariadb' di bawah ini untuk masuk ke MariaDB melalui pengguna root. Saat dimintai kata sandi, masukkan kata sandi root MariaDB Anda dan tekan ENTER.


$ sudo mariadb -u root -p
Setelah masuk ke shell MariaDB, jalankan kueri berikut untuk membuat basis data dan pengguna MariaDB baru. Dalam contoh ini, Anda akan membuat basis data fossbillingdb baru dengan pengguna 'fossbilling'. Pastikan juga untuk mengubah kata sandi default dalam kueri di bawah ini.


CREATE DATABASE fossbillingdb;
CREATE USER fossbilling@localhost IDENTIFIED BY 'password';
GRANT ALL ON fossbillingdb.* TO fossbilling@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Terakhir, jalankan kueri di bawah ini untuk memverifikasi pengguna MariaDB fossbilling@localhost guna memastikan bahwa pengguna memiliki hak istimewa untuk mengakses basis data 'fossbiilingdb'.

Output 'GRANT ALL PRIVILEGES ON fossbillingdb.* to fossbilling@localhost' mengonfirmasi bahwa pengguna fossbilling@localhost memiliki hak istimewa untuk mengakses basis data 'fossbillingdb'.

Ketik quit untuk keluar dari shell MariaDB.


SHOW GRANTS FOR fossbilling@localhost;
quit
Setelah Anda membuat database dan pengguna MariaDB untuk FOSSBilling, pada langkah berikutnya, Anda akan menginstal PHP dan PHP-FPM di server Rocky Linux Anda.


runtu@

5. Menginstal PHP-FPM

Versi terbaru FOSSBilling didukung dengan PHP 8.x. Pada langkah ini, Anda akan menginstal PHP dan PHP-FPM 8.2 melalui repositori Remi. Jadi pertama-tama, Anda akan menyiapkan repositori Remi, menginstal paket PHP dan PHP-FPM, lalu menyiapkan PHP-FPM dengan server web Nginx.

Tambahkan repositori PHP Remi melalui perintah dnf di bawah ini. Perintah ini akan menginstal repositori Remi ke sistem Rocky Linux Anda. File RPM 'remi-release-9.rpm' mengonfirmasi bahwa ini dapat digunakan untuk distribusi RHEL 9. Selain itu, masukkan y saat diminta dan tekan ENTER untuk melanjutkan.


$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Selanjutnya, jalankan perintah dnf di bawah ini untuk mereset modul repositori untuk PHP. Lalu, verifikasi daftar modul repositori PHP yang tersedia di sistem Anda.


$ sudo dnf module reset php
$ sudo dnf module list php
Saat diminta untuk menyiapkan kunci GPG untuk repositori Remi, masukkan y untuk mengonfirmasi dan tekan ENTER.

Setelah perintah 'dnf module list php' dijalankan, Anda akan melihat beberapa versi PHP yang disediakan oleh repositori resmi Rocky Linux AppStream dan repositori Resmi.

Jalankan perintah di bawah ini untuk mengaktifkan repositori PHP untuk 'remi-8.2'. Dengan ini, setiap kali Anda menginstal paket PHP, Anda akan menginstal paket PHP 8.2 dari repositori Remi.

Masukkan y saat diminta dan tekan ENTER untuk mengaktifkannya.


$ sudo dnf module enable php:remi-8.2
Dengan repositori PHP Remi yang dikonfigurasi, Anda dapat menginstal paket PHP.

Jalankan perintah dnf di bawah ini untuk menginstal paket PHP dan PHP-FPM ke server Rocky Linux Anda. Masukkan y saat diminta dan tekan ENTER untuk melanjutkan.


$ sudo dnf install php php-fpm php-mysql php-curl php-cli php-zip php-common php-mbstring php-xml
Anda juga akan diminta untuk mengonfirmasi kunci GPG untuk repositori Remi. Masukkan y untuk mengonfirmasi dan tekan ENTER.

Setelah PHP terinstal, buka berkas konfigurasi PHP '/etc/php.ini' menggunakan perintah editor nano di bawah ini.


$ sudo nano /etc/php.ini
Ubah konfigurasi PHP default (php.ini) dengan script berikut.


upload_max_filesize = 16M 
post_max_size = 32M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000
Simpan dan keluar dari berkas '/etc/php.ini' setelah selesai. Untuk menjalankan PHP-FPM dengan Nginx pada distribusi berbasis RHEL, Anda harus memastikan bahwa PHP-FPM berjalan dengan pengguna dan grup default 'nginx'.

Pada RHEL, server web Nginx berjalan secara default di bawah pengguna 'nginx'. Sementara pada distribusi berbasis Debian, server web Nginx dan Apache2 berjalan pada pengguna dan grup yang sama 'www-data'. Buka konfigurasi kumpulan PHP-FPM '/etc/php-fpm.d/www.conf' menggunakan perintah editor nano di bawah ini.


$ sudo nano /etc/php-fpm.d/www.conf
Ubah parameter default 'pengguna' dan 'grup' menjadi 'nginx'.


user = nginx
group = nginxU
Simpan dan tutup berkas setelah selesai. Selanjutnya, jalankan utilitas perintah systemctl di bawah ini untuk memulai dan mengaktifkan layanan PHP-FPM. Ini akan memulai layanan PHP-FPM dengan berkas sock default '/run/php-fpm/www.sock' dan mengaktifkan PHP-FPM untuk memulai secara otomatis saat sistem dinyalakan.

Output 'Created symlink ...' mengonfirmasi bahwa layanan PHP-FPM diaktifkan.


$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Sekarang jalankan perintah systemctl di bawah ini untuk memverifikasi status layanan PHP-FPM. Anda akan mendapatkan output bahwa PHP-FPM "aktif (berjalan)", yang mengonfirmasi bahwa PHP-FPM sedang berjalan. Dan output "Loaded .../.../; enabled;" mengonfirmasi bahwa layanan PHP-FPM diaktifkan.


$ sudo systemctl status php-fpm
Terakhir, jalankan perintah php di bawah ini untuk memverifikasi versi PHP yang terinstal di sistem Anda. Lalu, verifikasi daftar ekstensi yang diaktifkan di sistem Anda. Anda akan menerima PHP 8.2 dan daftar ekstensi PHP yang diaktifkan, dan pastikan ekstensi 'curl', 'openssl', 'pdo_mysql', dan 'zlib' diaktifkan.


$ php --version
$ php -m
Dengan ini, Anda telah menginstal PHP dan PHP-FPM 8.2 pada sistem Rocky Linux. Anda juga telah mengonfigurasi PHP-FPM untuk dijalankan dengan server web Nginx. Pada langkah berikutnya, Anda akan memulai instalasi FOSSBilling dengan mengunduh kode sumber.

6. Install FossBilling

Pada langkah ini, Anda akan mengunduh kode sumber FOSSBilling dan mengatur direktori instalasi FOSSBilling ke '/var/www/fossbilling'.

Sebelum memulai, jalankan perintah dnf di bawah ini untuk menginstal paket unzip ke sistem Anda.


$ sudo dnf install unzip -y
Sekarang buat direktori baru '/var/www/fossbilling' dan pindahkan direktori kerja Anda ke dalamnya. Kemudian, Anda dapat mengunduh FOSSBilling versi stabil terbaru melalui perintah curl seperti di bawah ini.


$ mkdir -p /var/www/fossbilling; cd /var/www/fossbilling
$ curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zip
Saat kode sumber FOSSBilling diunduh, Anda akan melihat berkas FOSSBilling.zip di direktori kerja Anda. Jalankan perintah unzip di bawah ini untuk mengekstrak berkas 'FOSSBilling.zip'. Kemudian, ubah kepemilikan direktori instalasi FOSSBilling '/var/www/fossbilling' ke pengguna dan grup 'nginx'.


$ unzip FOSSBilling.zip
$ sudo chown -R nginx:nginx /var/www/fossbilling
Setelah kode sumber FOSSBilling diunduh dan direktori instalasi dikonfigurasi, selanjutnya Anda akan menyiapkan blok server Nginx yang akan digunakan untuk menjalankan aplikasi web FOSSBilling.

7. Konfigurasi NGINX Untuk FossBilling

Buat file konfigurasi Nginx baru untuk FossBilling:


$ nano /etc/nginx/conf.d/fossbilling.conf
Setelah itu, anda tambahkan script di bawah ini pada file /etc/nginx/conf.d/fossbilling.conf.


server {
    listen 80;

    set $root_path '/var/www/fossbilling';
    server_name example.com;

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

    include /etc/nginx/mime.types;

    # Block access to sensitive files and return 404 to make it indistinguishable from a missing file
    location ~* .(ini|sh|inc|bak|twig|sql)$ {
        return 404;
    }

    # Block access to hidden files except for .well-known
    location ~ /\.(?!well-known\/) {
        return 404;
    }

    # Disable PHP execution in /uploads
    location ~* /uploads/.*\.php$ {
        return 404;
    }

    # Deny access to /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 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;
    }
}
Ganti example.com dengan nama domain Anda yang sebenarnya.

8. Test dan Restart NGINX

Uji konfigurasi Nginx untuk memastikan tidak ada kesalahan sintaksis pada saat instalasi. Setelah itu anda restart Nginx untuk menerapkan perubahan.


$ nginx -t
$ systemctl restart nginx

9. Konfigurasi  Let’s Encrypt Untuk FossBilling

Untuk memuliai bagian ini, anda harus menginstall Instal Certbot salah satu plugin SSL standar untuk Nginx.


$ dnf install certbot python3-certbot-nginx
Dapatkan dan instal sertifikat SSL Let’s Encrypt untuk domain Anda.


$ certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email contact@shape.host -d datainchi.blogspot.com
Ganti datainchi.blogspot.com dengan nama domain Anda yang sebenarnya.

10. Jalankan FossBilling

Setelah sertifikat SSL berhasil dipasang, Anda dapat mengakses FossBilling melalui peramban web seperti Google Chrome. Buka peramban Anda dan navigasikan ke https://yourdomain.com (ganti `yourdomain.com` dengan domain Anda yang sebenarnya). Anda akan melihat halaman instalasi FossBilling, anda dapat mengikut tiap perintah yang ditampilkan untuk menyelesaikan penaturan FossBilling.


Pada langkah ini sangat mudah, karena anda akan dipandu dengan wizard dalam bentuk gambar. Jadi anda hanya ikuti saja tiap perintah yang ditampilkan.

Dalam panduan ini, Anda telah memasang aplikasi FossBilling sumber terbuka dan manajemen pengguna FOSSBilling pada server Rocky Linux 9. Anda juga telah mengonfigurasi Tumpukan LEMP (server web Nginx, basis data MariaDB, dan PHP-FPM) pada sistem Rocky Linux. Selain itu, Anda telah mengamankan instalasi FOSSBilling dengan sertifikat SSL/TLS yang dibuat melalui Certbot dan Letsencrypt.

Dari sini, Anda sekarang dapat menggunakan FOSSBilling untuk bisnis Anda. Anda dapat menambahkan lebih banyak pengguna, menyiapkan server SMTP, dan masih banyak lagi.