FOSSBilling là công cụ lập hóa đơn miễn phí và mã nguồn mở được thiết kế để khách hàng và người bán dễ dàng sử dụng. FOSSBilling là một nhánh của BoxBilling. Công cụ này cung cấp trải nghiệm tuyệt vời cho khách hàng với giao diện trực quan và hỗ trợ nhiều cổng thanh toán. FOSSBilling phù hợp với nhiều doanh nghiệp, từ doanh nghiệp nhỏ đến vừa hoặc thậm chí là doanh nghiệp lớn. FOSSBilling có thể giúp bạn tự động hóa việc lập hóa đơn, thanh toán đến, quản lý và giao tiếp với khách hàng.
Tôi sẽ cài đặt FOSSBilling trên máy chủ Rocky Linux 9 trong hướng dẫn này. Hướng dẫn này bao gồm cài đặt máy chủ web Nginx, máy chủ cơ sở dữ liệu MariaDB, PHP-FPM 8.2 và công cụ Certbot để tạo chứng chỉ SSL/TSL. Cuối cùng, bạn sẽ có giải pháp quản lý khách hàng và thanh toán có thể sử dụng cho công việc kinh doanh hàng ngày của mình.
Để bắt đầu, hãy đảm bảo rằng kho lưu trữ EPEL đã được thêm vào hệ thống của bạn. Hoặc bạn có thể cài đặt nó thông qua lệnh dnf bên dưới.
Tiếp theo, cài đặt máy chủ web Nginx bằng lệnh dnf bên dưới. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22234%22%3E%3C/svg%3E
Sau khi Nginx được cài đặt, hãy chạy lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ Nginx. Lệnh này sẽ khởi động và chạy Nginx trên cổng HTTP mặc định 80 và cho phép Nginx tự động chạy khi khởi động hệ thống.
Bây giờ hãy xác minh trạng thái dịch vụ Nginx bằng tiện ích lệnh systemctl bên dưới. Bạn sẽ nhận được thông báo cho biết dịch vụ Nginx đang chạy và đã được bật.
Thông báo:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22285%22%3E%3C/svg%3E
Dịch vụ Nginx hiện đang chạy, bạn sẽ cần mở cả HTTP và Giao thức HTTPS trên firewalld. Để thực hiện điều này, bạn có thể chạy lệnh firewall-cmd bên dưới.
Sau khi thêm giao thức HTTP và HTTPS vào firewalld, hãy chạy lệnh bên dưới để tải lại firewalld và áp dụng các thay đổi. Sau đó, hãy xác minh danh sách các dịch vụ được bật trên firewalld.
Bạn sẽ thấy các giao thức HTTP và HTTPS được thêm vào firewalld.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E
Với điều này, bạn đã cài đặt máy chủ web Nginx và cấu hình firewalld để mở các giao thức HTTP và HTTPS. Ở bước tiếp theo, bạn sẽ bắt đầu cài đặt máy chủ cơ sở dữ liệu MariaDB.
Cài đặt máy chủ cơ sở dữ liệu MariaDB vào hệ thống Rocky Linux của bạn thông qua lệnh dnf bên dưới. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22405%22%3E%3C/svg%3E
Sau khi MariaDB được cài đặt, hãy chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt MariaDB dịch vụ.
Tiếp theo, chạy lệnh systemctl bên dưới để xác minh dịch vụ MariaDB và đảm bảo rằng dịch vụ đang chạy. Đầu ra 'active (running)' xác nhận rằng máy chủ MariaDB đang chạy. Và đầu ra 'loaded (../mariadb.service; enabled
' xác nhận rằng dịch vụ MariaDB đã được bật và sẽ tự động chạy khi khởi động hệ thống.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22266%22%3E%3C/svg%3E
Khi máy chủ MariaDB đang chạy, bây giờ bạn sẽ bảo mật MariaDB thông qua lệnh 'mariadb-secure-installation'. Điều này bao gồm thiết lập mật khẩu gốc cho MariaDB, vô hiệu hóa đăng nhập từ xa cho người dùng gốc MariaDB, v.v.
Chạy lệnh 'mariadb-secure-installation' bên dưới để bảo mật việc triển khai MariaDB.
Bạn sẽ được hỏi về một số cấu hình MariaDB bên dưới:
Chạy lệnh 'mariadb' bên dưới để đăng nhập vào MariaDB thông qua người dùng root. Khi được yêu cầu nhập mật khẩu, hãy nhập mật khẩu gốc MariaDB của bạn và nhấn ENTER.
Sau khi đăng nhập vào shell MariaDB, hãy chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng MariaDB mới. Trong ví dụ này, bạn sẽ tạo cơ sở dữ liệu mới fossbillingdb với người dùng 'fossbilling'. Ngoài ra, hãy đảm bảo thay đổi mật khẩu mặc định trong truy vấn bên dưới.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Cuối cùng, hãy chạy truy vấn bên dưới để xác minh người dùng MariaDB fossbilling@localhost để đảm bảo rằng người dùng đã quyền truy cập cơ sở dữ liệu 'fossbiilingdb'.
Đầu ra 'GRANT ALL PRIVILEGES ON fossbillingdb.* to fossbilling@localhost' xác nhận rằng người dùng fossbilling@localhost có quyền truy cập cơ sở dữ liệu 'fossbillingdb'.
Nhập quit để đăng xuất khỏi shell MariaDB.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ bạn đã tạo cơ sở dữ liệu MariaDB và người dùng cho FOSSBilling. Ở bước tiếp theo, bạn sẽ cài đặt PHP và PHP-FPM trên máy chủ Rocky Linux của mình.
Thêm kho lưu trữ PHP Remi thông qua lệnh dnf bên dưới. Lệnh này sẽ cài đặt kho lưu trữ Remi vào hệ thống Rocky Linux của bạn. Tệp RPM 'remi-release-9.rpm' xác nhận rằng có thể sử dụng tệp này cho bản phân phối RHEL 9. Ngoài ra, hãy nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22182%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf bên dưới để đặt lại mô-đun kho lưu trữ cho PHP. Sau đó, hãy xác minh danh sách các mô-đun kho lưu trữ PHP có sẵn trên hệ thống của bạn.
Khi được nhắc thiết lập khóa GPG cho kho lưu trữ Remi, hãy nhập y để xác nhận và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Sau khi lệnh 'dnf module list php' được thực thi, bạn sẽ thấy nhiều phiên bản PHP được cung cấp bởi kho lưu trữ Rocky Linux AppStream chính thức và kho lưu trữ Remi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Chạy lệnh bên dưới để kích hoạt kho lưu trữ PHP cho 'remi-8.2'. Với điều này, mỗi khi bạn cài đặt các gói PHP, bạn sẽ cài đặt các gói PHP 8.2 từ kho lưu trữ Remi.
Nhập y khi được nhắc và nhấn ENTER để bật nó.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E
Với PHP Remi Sau khi cấu hình kho lưu trữ, bạn có thể cài đặt các gói PHP.
Chạy lệnh dnf bên dưới để cài đặt các gói PHP và PHP-FPM vào máy chủ Rocky Linux của bạn. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22433%22%3E%3C/svg%3E
Bạn cũng sẽ được nhắc xác nhận khóa GPG cho kho lưu trữ Remi. Nhập y để xác nhận và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22162%22%3E%3C/svg%3E
Sau khi PHP được cài đặt, hãy mở tệp cấu hình PHP '/etc/php.ini' bằng lệnh trình chỉnh sửa nano bên dưới.
Thay đổi cấu hình PHP mặc định bằng lệnh sau dòng.
Lưu và thoát khỏi tệp '/etc/php.ini' khi hoàn tất.
Để chạy PHP-FPM với Nginx trên các bản phân phối dựa trên RHEL, bạn phải đảm bảo rằng PHP-FPM đang chạy với người dùng và nhóm mặc định 'nginx'.
Trên RHEL, máy chủ web Nginx đang chạy theo mặc định dưới người dùng 'nginx'. Trong khi trên các bản phân phối dựa trên Debian, cả máy chủ web Nginx và Apache2 đều chạy trên cùng một người dùng và nhóm 'www-data'.
Mở cấu hình nhóm PHP-FPM '/etc/php-fpm.d/www.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Thay đổi các tham số 'user' và 'group' mặc định thành 'nginx'.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ PHP-FPM. Lệnh này sẽ khởi động dịch vụ PHP-FPM với tệp sock mặc định '/run/php-fpm/www.sock' và cho phép PHP-FPM tự động khởi động khi hệ thống khởi động.
Đầu ra 'Created symlink ...' xác nhận rằng dịch vụ PHP-FPM đã được bật.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22187%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh systemctl bên dưới để xác minh trạng thái của dịch vụ PHP-FPM. Bạn sẽ nhận được kết quả là PHP-FPM đang 'hoạt động (đang chạy)', điều này xác nhận PHP-FPM đang chạy. Và kết quả là 'Đã tải .../.../; enabled;' xác nhận rằng dịch vụ PHP-FPM đã được bật.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh php bên dưới để xác minh phiên bản PHP được cài đặt trên hệ thống của bạn. Sau đó, hãy kiểm tra danh sách các tiện ích mở rộng được bật trên hệ thống của bạn.
Bạn sẽ nhận được PHP 8.2 và danh sách các tiện ích mở rộng PHP được bật, hãy đảm bảo rằng các tiện ích mở rộng này 'curl', 'openssl', 'pdo_mysql' và 'zlib' được bật.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22624%22%20height=%22402%22%3E%3C/svg%3E
Với bước này, bạn đã cài đặt PHP và PHP-FPM 8.2 trên hệ thống Rocky Linux. Bạn cũng đã cấu hình PHP-FPM để chạy với máy chủ web Nginx. Ở bước tiếp theo, bạn sẽ bắt đầu cài đặt FOSSBilling bằng cách tải xuống mã nguồn.
Trước khi bắt đầu, hãy chạy lệnh dnf bên dưới để cài đặt gói giải nén vào hệ thống của bạn.
Bây giờ, hãy tạo một thư mục mới '/var/www/fossbilling' và di chuyển thư mục làm việc của bạn vào đó. Sau đó, bạn có thể tải xuống phiên bản ổn định mới nhất của FOSSBilling thông qua lệnh curl như bên dưới.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22167%22%3E%3C/svg%3E
Khi mã nguồn FOSSBilling được tải xuống, bạn sẽ thấy tệp FOSSBilling.zip trong thư mục làm việc của mình. Chạy lệnh giải nén bên dưới để giải nén tệp 'FOSSBilling.zip'. Sau đó, thay đổi quyền sở hữu thư mục cài đặt FOSSBilling '/var/www/fossbilling' thành người dùng và nhóm 'nginx'.
Sau khi tải xuống mã nguồn FOSSBilling và cấu hình thư mục cài đặt, tiếp theo bạn sẽ thiết lập khối máy chủ Nginx sẽ được sử dụng để chạy ứng dụng web FOSSBilling.
Tạo tệp cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/fossbilling.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Thêm các dòng sau vào tệp. Hãy chắc chắn thay đổi tên miền cài đặt đích 'fossbilling.howtoforge.local'.
Lưu và thoát tệp khi hoàn tất.
Tiếp theo, chạy lệnh bên dưới để xác minh cấu hình Nginx. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi. Nếu thử nghiệm cấu hình Nginx thành công, bạn sẽ nhận được kết quả như sau 'test successful - syntax ok'.
Kết quả:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22719%22%20height=%22186%22%3E%3C/svg%3E
Lúc này, bạn đã chạy FOSSBilling với máy chủ web Nginx. Nhưng nó vẫn nằm trong kết nối HTTP không an toàn. Trong bước tiếp theo, bạn sẽ bảo mật FOSSBilling bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.
Trước khi bắt đầu, hãy đảm bảo rằng tên miền của bạn được trỏ đến địa chỉ IP của máy chủ và đảm bảo rằng bạn có địa chỉ email sẽ được sử dụng để đăng ký Letsencrypt.
Bây giờ hãy chạy lệnh dnf bên dưới để cài đặt Certbot và plugin Certbot Nginx. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22423%22%3E%3C/svg%3E
Sau khi Certbot được cài đặt, hãy chạy lệnh bên dưới để tạo chứng chỉ SSL/TLS cho tên miền của bạn. Ngoài ra, hãy đảm bảo thay đổi tên miền và địa chỉ email trong lệnh sau.
Với lệnh này, chứng chỉ SSL/TLS mới sẽ được tạo cho tên miền của bạn. Ngoài ra, lệnh này sẽ tự động thiết lập HTTPS trên khối máy chủ Nginx của bạn và thiết lập chuyển hướng tự động từ HTTP sang HTTPS. Chứng chỉ SSL/TLS của bạn được tạo vào thư mục '/etc/elstencrypt/live/fossbilling.howtoforge.local/'.
Trình cài đặt FOSSBilling bây giờ sẽ kiểm tra và xác minh thông tin chi tiết về hệ thống của bạn. Đảm bảo rằng các yêu cầu có trạng thái 'Ok' với màu xanh lá cây. Nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22680%22%3E%3C/svg%3E
Bây giờ hãy nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng mà bạn đã tạo và nhấp vào Tiếp theo một lần nữa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22437%22%3E%3C/svg%3E
Tiếp theo, nhập thông tin chi tiết về quản trị viên mới cho FOSSBilling. Nhập tên người dùng, địa chỉ email, mật khẩu và loại tiền tệ mặc định của bạn. Sau đó, nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E
Khi quá trình cài đặt FOSSBilling thành công, bạn sẽ nhận được thông báo 'Xin chúc mừng! FOSSBilling đã được cài đặt thành công.'.
Bạn cũng sẽ thấy một số hướng dẫn để hoàn tất cài đặt FOSSBilling của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22434%22%3E%3C/svg%3E
Quay lại thiết bị đầu cuối máy chủ Rocky Linux của bạn và chạy các lệnh sau để hoàn tất cài đặt FOSSBilling.
Xóa 'cài đặt' FOSSBilling thư mục.
Thay đổi quyền của tệp cấu hình FOssBilling 'config.php' thành 0644. Thao tác này sẽ xóa quyền 'ghi' đối với những người khác và nhóm.
Tạo một cron mới cho FOSSBilling thông qua lệnh bên dưới.
Chọn trình soạn thảo mã mà bạn muốn sử dụng. Sau đó nhập các dòng sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22729%22%20height=%22255%22%3E%3C/svg%3E
Bây giờ quay lại trình duyệt web và nhấp vào Hoàn tất.
Bây giờ bạn sẽ nhận được thông báo sau trang.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Nếu bạn nhấp vào nút 'Khu vực khách hàng', bạn sẽ được chuyển hướng đến trang chủ FOSSBilling.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E
Nếu bạn nhấp vào Nút 'Khu vực quản trị', bạn sẽ được chuyển hướng đến trang đăng nhập quản trị.
Đăng nhập bằng địa chỉ email và mật khẩu của bạn, sau đó nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22616%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển quản trị FOSSBilling.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22443%22%3E%3C/svg%3E
Với điều này, bạn đã hoàn tất cài đặt FOSSBilling và bảo mật bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.
Từ đây, giờ bạn có thể sử dụng FOSSBilling cho doanh nghiệp của mình. Bạn có thể thêm nhiều người dùng hơn, thiết lập máy chủ SMTP và nhiều hơn nữa.
Tôi sẽ cài đặt FOSSBilling trên máy chủ Rocky Linux 9 trong hướng dẫn này. Hướng dẫn này bao gồm cài đặt máy chủ web Nginx, máy chủ cơ sở dữ liệu MariaDB, PHP-FPM 8.2 và công cụ Certbot để tạo chứng chỉ SSL/TSL. Cuối cùng, bạn sẽ có giải pháp quản lý khách hàng và thanh toán có thể sử dụng cho công việc kinh doanh hàng ngày của mình.
Điều kiện tiên quyết
Để hoàn tất hướng dẫn này, bạn sẽ cần các yêu cầu sau:- Máy chủ đã cài đặt Rocky Linux 9 - Ví dụ này sử dụng Rocky Linux với tên máy chủ 'fossbilling-rocky'.
- Người dùng không phải root có quyền quản trị viên sudo/root.
- SELinux chạy ở chế độ permissive.
- Tên miền trỏ đến địa chỉ IP máy chủ của bạn - Ví dụ này sử dụng tên miền phụ 'fossbilling.howtoforge.local'.
Cài đặt Nginx Web Server
Có thể chạy FOSSBilling với máy chủ web Nginx và Lighttpd. Hướng dẫn này sẽ sử dụng Nginx làm máy chủ web. Bạn sẽ cài đặt Nginx từ kho lưu trữ Rocky Linux AppStream chính thức trong bước này.Để bắt đầu, hãy đảm bảo rằng kho lưu trữ EPEL đã được thêm vào hệ thống của bạn. Hoặc bạn có thể cài đặt nó thông qua lệnh dnf bên dưới.
Mã:
sudo dnf install epel-release
Mã:
sudo dnf install nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22234%22%3E%3C/svg%3E
Sau khi Nginx được cài đặt, hãy chạy lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ Nginx. Lệnh này sẽ khởi động và chạy Nginx trên cổng HTTP mặc định 80 và cho phép Nginx tự động chạy khi khởi động hệ thống.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx
Mã:
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22285%22%3E%3C/svg%3E
Dịch vụ Nginx hiện đang chạy, bạn sẽ cần mở cả HTTP và Giao thức HTTPS trên firewalld. Để thực hiện điều này, bạn có thể chạy lệnh firewall-cmd bên dưới.
Mã:
sudo firewall-cmd --add-service={http,https} --permanent
Bạn sẽ thấy các giao thức HTTP và HTTPS được thêm vào firewalld.
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E
Với điều này, bạn đã cài đặt máy chủ web Nginx và cấu hình firewalld để mở các giao thức HTTP và HTTPS. Ở bước tiếp theo, bạn sẽ bắt đầu cài đặt máy chủ cơ sở dữ liệu MariaDB.
Cài đặt máy chủ MariaDB
FOSSBilling sử dụng MySQL/MariaDB để lưu trữ dữ liệu của người dùng. Nó yêu cầu ít nhất là máy chủ MySQL 8 hoặc MariaDB 10.x. Ở bước này, bạn sẽ cài đặt máy chủ MariaDB từ kho lưu trữ chính thức của Rocky Linux, đó là MariaDB 10.5 và tương thích với phiên bản mới nhất của FOSSBilling.Cài đặt máy chủ cơ sở dữ liệu MariaDB vào hệ thống Rocky Linux của bạn thông qua lệnh dnf bên dưới. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo install mariadb-server
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22405%22%3E%3C/svg%3E
Sau khi MariaDB được cài đặt, hãy chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt MariaDB dịch vụ.
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Mã:
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22266%22%3E%3C/svg%3E
Khi máy chủ MariaDB đang chạy, bây giờ bạn sẽ bảo mật MariaDB thông qua lệnh 'mariadb-secure-installation'. Điều này bao gồm thiết lập mật khẩu gốc cho MariaDB, vô hiệu hóa đăng nhập từ xa cho người dùng gốc MariaDB, v.v.
Chạy lệnh 'mariadb-secure-installation' bên dưới để bảo mật việc triển khai MariaDB.
Mã:
sudo mariadb-secure-installation
- Chuyển xác thực cục bộ sang unix_socket? Nhập n cho số.
- Thiết lập mật khẩu gốc MariaDB? Nhập y, sau đó nhập mật khẩu gốc MariaDB mới và lặp lại.
- Xóa người dùng ẩn danh mặc định? Nhập y để xác nhận.
- Vô hiệu hóa đăng nhập từ xa cho người dùng gốc? Nhập y để xác nhận.
- Xóa kiểm tra cơ sở dữ liệu mặc định? Nhập y để xác nhận.
- Tải lại các đặc quyền của bảng và áp dụng các thay đổi? Nhập y để xác nhận.
Tạo cơ sở dữ liệu và người dùng
Trong bước này, bạn sẽ tạo một cơ sở dữ liệu MariaDB và người dùng mới sẽ được sử dụng cho quá trình cài đặt FOSSBilling.Chạy lệnh 'mariadb' bên dưới để đăng nhập vào MariaDB thông qua người dùng root. Khi được yêu cầu nhập mật khẩu, hãy nhập mật khẩu gốc MariaDB của bạn và nhấn ENTER.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE fossbillingdb;
CREATE USER fossbilling@localhost IDENTIFIED BY 'password';
GRANT ALL ON fossbillingdb.* TO fossbilling@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Cuối cùng, hãy chạy truy vấn bên dưới để xác minh người dùng MariaDB fossbilling@localhost để đảm bảo rằng người dùng đã quyền truy cập cơ sở dữ liệu 'fossbiilingdb'.
Đầu ra 'GRANT ALL PRIVILEGES ON fossbillingdb.* to fossbilling@localhost' xác nhận rằng người dùng fossbilling@localhost có quyền truy cập cơ sở dữ liệu 'fossbillingdb'.
Nhập quit để đăng xuất khỏi shell MariaDB.
Mã:
SHOW GRANTS FOR fossbilling@localhost;
quit
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ bạn đã tạo cơ sở dữ liệu MariaDB và người dùng cho FOSSBilling. Ở bước tiếp theo, bạn sẽ cài đặt PHP và PHP-FPM trên máy chủ Rocky Linux của mình.
Cài đặt PHP-FPM 8.2
Phiên bản mới nhất của FOSSBilling được hỗ trợ với PHP 8.x. Ở bước này, bạn sẽ cài đặt PHP và PHP-FPM 8.2 thông qua kho lưu trữ Remi. Vì vậy, trước tiên, bạn sẽ thiết lập kho lưu trữ Remi, cài đặt các gói PHP và PHP-FPM, sau đó thiết lập PHP-FPM với máy chủ web Nginx.Thêm kho lưu trữ PHP Remi thông qua lệnh dnf bên dưới. Lệnh này sẽ cài đặt kho lưu trữ Remi vào hệ thống Rocky Linux của bạn. Tệp RPM 'remi-release-9.rpm' xác nhận rằng có thể sử dụng tệp này cho bản phân phối RHEL 9. Ngoài ra, hãy nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22182%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf bên dưới để đặt lại mô-đun kho lưu trữ cho PHP. Sau đó, hãy xác minh danh sách các mô-đun kho lưu trữ PHP có sẵn trên hệ thống của bạn.
Mã:
sudo dnf module reset php
sudo dnf module list php
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Sau khi lệnh 'dnf module list php' được thực thi, bạn sẽ thấy nhiều phiên bản PHP được cung cấp bởi kho lưu trữ Rocky Linux AppStream chính thức và kho lưu trữ Remi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Chạy lệnh bên dưới để kích hoạt kho lưu trữ PHP cho 'remi-8.2'. Với điều này, mỗi khi bạn cài đặt các gói PHP, bạn sẽ cài đặt các gói PHP 8.2 từ kho lưu trữ Remi.
Nhập y khi được nhắc và nhấn ENTER để bật nó.
Mã:
sudo dnf module enable php:remi-8.2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E
Với PHP Remi Sau khi cấu hình kho lưu trữ, bạn có thể cài đặt các gói PHP.
Chạy lệnh dnf bên dưới để cài đặt các gói PHP và PHP-FPM vào máy chủ Rocky Linux của bạn. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install php php-fpm php-mysql php-curl php-cli php-zip php-common php-mbstring php-xml
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22433%22%3E%3C/svg%3E
Bạn cũng sẽ được nhắc xác nhận khóa GPG cho kho lưu trữ Remi. Nhập y để xác nhận và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22162%22%3E%3C/svg%3E
Sau khi PHP được cài đặt, hãy mở tệp cấu hình PHP '/etc/php.ini' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/php.ini
Mã:
upload_max_filesize = 16M
post_max_size = 32M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Để chạy PHP-FPM với Nginx trên các bản phân phối dựa trên RHEL, bạn phải đảm bảo rằng PHP-FPM đang chạy với người dùng và nhóm mặc định 'nginx'.
Trên RHEL, máy chủ web Nginx đang chạy theo mặc định dưới người dùng 'nginx'. Trong khi trên các bản phân phối dựa trên Debian, cả máy chủ web Nginx và Apache2 đều chạy trên cùng một người dùng và nhóm 'www-data'.
Mở cấu hình nhóm PHP-FPM '/etc/php-fpm.d/www.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Tiếp theo, chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ PHP-FPM. Lệnh này sẽ khởi động dịch vụ PHP-FPM với tệp sock mặc định '/run/php-fpm/www.sock' và cho phép PHP-FPM tự động khởi động khi hệ thống khởi động.
Đầu ra 'Created symlink ...' xác nhận rằng dịch vụ PHP-FPM đã được bật.
Mã:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22187%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh systemctl bên dưới để xác minh trạng thái của dịch vụ PHP-FPM. Bạn sẽ nhận được kết quả là PHP-FPM đang 'hoạt động (đang chạy)', điều này xác nhận PHP-FPM đang chạy. Và kết quả là 'Đã tải .../.../; enabled;' xác nhận rằng dịch vụ PHP-FPM đã được bật.
Mã:
sudo systemctl status php-fpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh php bên dưới để xác minh phiên bản PHP được cài đặt trên hệ thống của bạn. Sau đó, hãy kiểm tra danh sách các tiện ích mở rộng được bật trên hệ thống của bạn.
Bạn sẽ nhận được PHP 8.2 và danh sách các tiện ích mở rộng PHP được bật, hãy đảm bảo rằng các tiện ích mở rộng này 'curl', 'openssl', 'pdo_mysql' và 'zlib' được bật.
Mã:
php --version
php -m
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22624%22%20height=%22402%22%3E%3C/svg%3E
Với bước này, bạn đã cài đặt PHP và PHP-FPM 8.2 trên hệ thống Rocky Linux. Bạn cũng đã cấu hình PHP-FPM để chạy với máy chủ web Nginx. Ở bước tiếp theo, bạn sẽ bắt đầu cài đặt FOSSBilling bằng cách tải xuống mã nguồn.
Tải xuống mã nguồn FOSSBilling
Ở bước này, bạn sẽ tải xuống mã nguồn FOSSBilling và thiết lập thư mục cài đặt FOSSBilling thành '/var/www/fossbilling'.Trước khi bắt đầu, hãy chạy lệnh dnf bên dưới để cài đặt gói giải nén vào hệ thống của bạn.
Mã:
sudo dnf install unzip -y
Mã:
mkdir -p /var/www/fossbilling; cd /var/www/fossbilling
curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zip
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22167%22%3E%3C/svg%3E
Khi mã nguồn FOSSBilling được tải xuống, bạn sẽ thấy tệp FOSSBilling.zip trong thư mục làm việc của mình. Chạy lệnh giải nén bên dưới để giải nén tệp 'FOSSBilling.zip'. Sau đó, thay đổi quyền sở hữu thư mục cài đặt FOSSBilling '/var/www/fossbilling' thành người dùng và nhóm 'nginx'.
Mã:
unzip FOSSBilling.zip
sudo chown -R nginx:nginx /var/www/fossbilling
Cấu hình khối máy chủ Nginx
Trong bước này, bạn sẽ thiết lập cấu hình khối máy chủ Nginx mới sẽ được sử dụng để chạy ứng dụng web FOSSBilling. Trước khi bắt đầu, hãy đảm bảo rằng tên miền của bạn được trỏ đến địa chỉ IP của máy chủ.Tạo tệp cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/fossbilling.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/nginx/conf.d/fossbilling.conf
Mã:
server {
listen 80;
set $root_path '/var/www/fossbilling';
server_name fossbilling.howtoforge.local;
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 need to be changed according your server setup:
# phpx.x is your server setup
# examples: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock or /run/php/phpx.x-fpm.sock are all valid options
# Or even localhost:port (Default 9000 will work fine)
# Please check your server setup
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;
}
}
Tiếp theo, chạy lệnh bên dưới để xác minh cấu hình Nginx. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi. Nếu thử nghiệm cấu hình Nginx thành công, bạn sẽ nhận được kết quả như sau 'test successful - syntax ok'.
Mã:
sudo nginx -t
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22719%22%20height=%22186%22%3E%3C/svg%3E
Lúc này, bạn đã chạy FOSSBilling với máy chủ web Nginx. Nhưng nó vẫn nằm trong kết nối HTTP không an toàn. Trong bước tiếp theo, bạn sẽ bảo mật FOSSBilling bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.
Bảo mật FOSSBilling bằng SSL/TLS Letsencrypt
Sau khi tạo cấu hình khối máy chủ Nginx, tiếp theo bạn sẽ bảo mật cài đặt FOSSBilling bằng chứng chỉ SSL/TLS và bạn có thể thực hiện việc này bằng cách sử dụng công cụ Certbot và chứng chỉ SSL miễn phí từ Letsencrypt.Trước khi bắt đầu, hãy đảm bảo rằng tên miền của bạn được trỏ đến địa chỉ IP của máy chủ và đảm bảo rằng bạn có địa chỉ email sẽ được sử dụng để đăng ký Letsencrypt.
Bây giờ hãy chạy lệnh dnf bên dưới để cài đặt Certbot và plugin Certbot Nginx. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install certbot python3-certbot-nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22423%22%3E%3C/svg%3E
Sau khi Certbot được cài đặt, hãy chạy lệnh bên dưới để tạo chứng chỉ SSL/TLS cho tên miền của bạn. Ngoài ra, hãy đảm bảo thay đổi tên miền và địa chỉ email trong lệnh sau.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d fossbilling.howtoforge.local
Bắt đầu cài đặt FOSSBilling
Mở trình duyệt web của bạn và truy cập tên miền cài đặt FosssBilling của bạn (ví dụ: https://fossbilling.howtoforge.local/).Trình cài đặt FOSSBilling bây giờ sẽ kiểm tra và xác minh thông tin chi tiết về hệ thống của bạn. Đảm bảo rằng các yêu cầu có trạng thái 'Ok' với màu xanh lá cây. Nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22680%22%3E%3C/svg%3E
Bây giờ hãy nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng mà bạn đã tạo và nhấp vào Tiếp theo một lần nữa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22437%22%3E%3C/svg%3E
Tiếp theo, nhập thông tin chi tiết về quản trị viên mới cho FOSSBilling. Nhập tên người dùng, địa chỉ email, mật khẩu và loại tiền tệ mặc định của bạn. Sau đó, nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E
Khi quá trình cài đặt FOSSBilling thành công, bạn sẽ nhận được thông báo 'Xin chúc mừng! FOSSBilling đã được cài đặt thành công.'.
Bạn cũng sẽ thấy một số hướng dẫn để hoàn tất cài đặt FOSSBilling của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22434%22%3E%3C/svg%3E
Quay lại thiết bị đầu cuối máy chủ Rocky Linux của bạn và chạy các lệnh sau để hoàn tất cài đặt FOSSBilling.
Xóa 'cài đặt' FOSSBilling thư mục.
Mã:
sudo rm -rf /var/www/fossbilling/install
Mã:
sudo chmod 0644 /var/www/fossbilling/config.php
Mã:
crontab -u nginx -e
Mã:
*/5 * * * * php /var/www/fossbilling/cron.php
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22729%22%20height=%22255%22%3E%3C/svg%3E
Bây giờ quay lại trình duyệt web và nhấp vào Hoàn tất.
Bây giờ bạn sẽ nhận được thông báo sau trang.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Nếu bạn nhấp vào nút 'Khu vực khách hàng', bạn sẽ được chuyển hướng đến trang chủ FOSSBilling.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E
Nếu bạn nhấp vào Nút 'Khu vực quản trị', bạn sẽ được chuyển hướng đến trang đăng nhập quản trị.
Đăng nhập bằng địa chỉ email và mật khẩu của bạn, sau đó nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22616%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển quản trị FOSSBilling.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22443%22%3E%3C/svg%3E
Với điều này, bạn đã hoàn tất cài đặt FOSSBilling và bảo mật bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.
Kết luận
Trong hướng dẫn này, bạn đã cài đặt FOSSBilling mã nguồn mở để quản lý người dùng và thanh toán trên máy chủ Rocky Linux 9. Bạn cũng đã cấu hình LEMP Stack (máy chủ web Nginx, cơ sở dữ liệu MariaDB và PHP-FPM) trên hệ thống Rocky Linux. Ngoài ra, bạn đã bảo mật cài đặt FOSSBilling bằng chứng chỉ SSL/TLS được tạo thông qua Certbot và Letsencrypt.Từ đây, giờ bạn có thể sử dụng FOSSBilling cho doanh nghiệp của mình. Bạn có thể thêm nhiều người dùng hơn, thiết lập máy chủ SMTP và nhiều hơn nữa.