Cách cài đặt SolidInvoice trên Ubuntu 22.04

theanh

Administrator
Nhân viên
SolidInvoice là giải pháp lập hóa đơn miễn phí, đơn giản và thanh lịch dựa trên PHP. Giải pháp này được thiết kế cho các doanh nghiệp nhỏ để xử lý các hoạt động lập hóa đơn hàng ngày của họ. SolidInvoice cung cấp API RESTful để tích hợp và cung cấp nhiều kênh thông báo như tin nhắn văn bản, email hoặc HipChat.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt SolidInvoice trên máy chủ Ubuntu 22.04. Bạn sẽ thiết lập SolidInvoice với LAMP Stack và bảo mật cài đặt bằng Certbot và letsencrypt.

Điều kiện tiên quyết​

Trước khi bắt đầu, hãy đảm bảo rằng bạn có:
  • Máy chủ Ubuntu 22.04.
  • Người dùng không phải root có quyền sudo.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt các phụ thuộc​

SolidInvoice là ứng dụng lập hóa đơn nguồn mở được viết bằng PHP và MySQL. Để cài đặt, bạn phải cài đặt LAMP Stack trên hệ thống Ubuntu của mình. Trong bước đầu tiên này, bạn sẽ cài đặt LAMP Stack từ kho lưu trữ Ubuntu mặc định.

Cập nhật chỉ mục gói Ubuntu của bạn bằng lệnh bên dưới.
Mã:
sudo apt update
Bây giờ hãy cài đặt các phụ thuộc LAMP Stack (Linux, Apache, MySQL/MariaDB và PHP) bằng lệnh sau. Trong ví dụ này, bạn sẽ sử dụng PHP 8.x mặc định để cài đặt SolidInvoice.
Mã:
sudo apt install apache2 mariadb-server mariadb-client php php-curl php-common php-mbstring php-json php-mysql php-opcache php-bcmath php-intl php-gd php-xml php-soap php-zip php-apcu
Nhập Y để xác nhận cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22195%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để kiểm tra trạng thái dịch vụ Apache và MariaDB để đảm bảo cả hai dịch vụ đều đang chạy.
Mã:
sudo systemctl status apache2
sudo systemctl status mysql
Nếu Apache hoặc MariaDB đang chạy, bạn sẽ thấy đầu ra active(running).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22308%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra phiên bản PHP bằng lệnh bên dưới. Bạn sẽ thấy PHP 8.x được cài đặt trên hệ thống Ubuntu của mình.
Mã:
php -v

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22143%22%3E%3C/svg%3E

Thiết lập máy chủ MariaDB​

Sau khi cài đặt LAMP Stack, bạn cần thiết lập cài đặt máy chủ MariaDB. Trước tiên, bạn sẽ bảo mật máy chủ MariaDB, sau đó tạo một cơ sở dữ liệu và người dùng mới mà SolidInvoice sẽ sử dụng.

Để bảo mật cài đặt máy chủ MariaDB, hãy nhập thông tin sau:
Mã:
sudo mariadb-secure-installation
Trong quá trình này, hãy nhập Y để xác nhận các thay đổi đối với MariaDB hoặc N để từ chối. Dưới đây là các cấu hình máy chủ MariaDB mà bạn sẽ được nhắc:
  • Cài đặt MariaDB mặc định không có mật khẩu, hãy nhấn ENTER khi được nhắc nhập mật khẩu.
  • Bây giờ hãy nhập Y để thiết lập mật khẩu gốc MariaDB. Sau đó, nhập mật khẩu mới cho MariaDB và lặp lại mật khẩu.
  • Nhập Y để xóa người dùng ẩn danh khỏi cài đặt MariaDB của bạn.
  • Nhập Y một lần nữa khi được nhắc tắt đăng nhập từ xa cho người dùng gốc MariaDB.
  • Nhập Y để xóa kiểm tra cơ sở dữ liệu mặc định khỏi MariaDB của bạn.
  • Cuối cùng, nhập Y để tải lại các đặc quyền bảng và áp dụng các thay đổi mới.
Bây giờ bạn đã bảo mật MariaDB, hãy nhập thông tin sau để đăng nhập vào MariaDB với tư cách là người dùng gốc mặc định. Nhập mật khẩu gốc MariaDB của bạn khi được yêu cầu.
Mã:
sudo mariadb -u root -p
Sau khi đăng nhập, hãy chạy các truy vấn sau để tạo cơ sở dữ liệu mới solidinvoicedb, một người dùng solidinvoice, với mật khẩu p4ssword. Hãy đảm bảo thay đổi thông tin chi tiết bằng thông tin của bạn, các thông tin chi tiết cơ sở dữ liệu này sẽ được SolidInvoice sử dụng.
Mã:
CREATE DATABASE solidinvoicedb;
CREATE USER solidinvoice@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON solidinvoicedb.* TO solidinvoice@localhost;
FLUSH PRIVILEGES;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E


Bây giờ hãy chạy truy vấn bên dưới để kiểm tra quyền của người dùng solidinvoice. Đảm bảo rằng người dùng solidinvoice có thể truy cập cơ sở dữ liệu solidinvoicedb.
Mã:
SHOW GRANTS FOR solidinvoice@localhost;
Cuối cùng, nhập quit để thoát khỏi máy chủ MariaDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22245%22%3E%3C/svg%3E

Thiết lập PHP​

Sau khi máy chủ MariaDB được bảo mật và cấu hình, bạn sẽ thiết lập cài đặt PHP của mình. Trong trường hợp này, bạn cần sửa đổi tệp cấu hình PHP mặc định php.ini.

Mở cấu hình PHP mặc định /etc/php/8.1/apache2/php.ini bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/php/8.1/apache2/php.ini
Thay đổi cấu hình PHP mặc định bằng lệnh sau và đảm bảo điều chỉnh memory_limitdate.timezone bằng máy chủ của bạn môi trường.
Mã:
date.timezone = Europe/Amsterdam
memory_limit=512M
upload_max_filesize=64M
post_max_size=120M
max_execution_time=120
Lưu tệp và thoát.

Bây giờ hãy khởi động lại dịch vụ Apache để áp dụng sửa đổi của bạn vào PHP bằng lệnh sau.
Mã:
sudo systemctl restart apache2

Tải xuống SolidInvoice​

Bây giờ bạn đã cấu hình MariaDB và PHP, bạn có thể tải xuống mã nguồn SolidInvoice và thiết lập cài đặt với quyền và quyền sở hữu hợp lệ.

GO qua thư mục /var/www và tải xuống mã nguồn SolidInvoice bằng wget. Kiểm tra trang phát hành SolidInvoice để tải phiên bản mới nhất.
Mã:
cd /var/www/
wget https://github.com/SolidInvoice/SolidInvoice/releases/download/2.2.5/SolidInvoice-2.2.5.zip
Trích xuất mã nguồn SolidInvoice vào thư mục solidinvoice và đổi quyền sở hữu thành người dùng www-data. Vì vậy, thư mục DocumentRoot hoặc Web-root để cài đặt SolidInvoice sẽ là /var/www/solidinvoice.
Mã:
unzip SolidInvoice-2.2.5.zip -d solidinvoice
sudo chown -R www-data:www-data /var/www/solidinvoice
Bây giờ hãy chạy lệnh bên dưới để đảm bảo người dùng www-data có thể ghi vào một số thư mục SolidInvoice và tệp.
Mã:
sudo chmod u+rw /var/www/solidinvoice/app/cache
sudo chmod u+rw /var/www/solidinvoice/app/logs
sudo chmod u+rw /var/www/solidinvoice/var/cache
sudo chmod u+rw /var/www/solidinvoice/var/logs
Mã:
sudo chmod u+rw /var/www/solidinvoice/web/upload
sudo chmod u+rw /var/www/solidinvoice/app/config/parameters.yml

Thiết lập máy chủ ảo Apache​

Sau khi bạn đã định cấu hình thư mục DocumentRoot cho SolidInvoice, bạn cần tạo một máy chủ ảo Apache mới sẽ được sử dụng để chạy cài đặt. Vì vậy, hãy đảm bảo rằng bạn đã chuẩn bị tên miền của mình cho SolidInvoice.

Đầu tiên, hãy chạy lệnh bên dưới để kích hoạt mô-đun viết lại trong Apache.
Mã:
sudo a2enmod rewrite
Tạo cấu hình máy chủ ảo Apache mới /etc/apache2/sites-available/solidinvoice.conf bằng lệnh nano editor bên dưới.
Mã:
sudo nano /etc/apache2/sites-available/solidinvoice.conf
Chèn cấu hình sau và đảm bảo thay đổi tùy chọn ServerName bằng tên miền mục tiêu của bạn.
Mã:
 ServerName invoice.howtoforge.local
 ServerAlias www.invoice.howtoforge.local

 DocumentRoot /var/www/solidinvoice/public
 
 # enable the .htaccess rewrites
 AllowOverride All
 Order allow,deny
 Allow from All
 

 ErrorLog /var/log/apache2/solidinvoice.error.log
 CustomLog /var/log/apache2/solidinvoice.access.log combined
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy nhập lệnh sau để kích hoạt tệp máy chủ ảo solidinvoice.conf và kiểm tra cú pháp Apache của bạn. Nếu bạn có cú pháp đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Mã:
sudo a2ensite solidinvoice.conf
sudo apachectl configtest
Cuối cùng, nhập lệnh bên dưới để khởi động lại Apache và áp dụng tệp máy chủ ảo mới solidinvoice.conf. Sau khi thực thi, SolidInvoice của bạn sẽ chạy.
Mã:
sudo systemctl restart apache2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22274%22%3E%3C/svg%3E

Bảo mật SolidInvoice bằng HTTPS​

Trong ví dụ này, bạn sẽ bảo mật SolidInvoice bằng chứng chỉ SSl/TLS thông qua Certbot và letsencrypt. Bây giờ bạn sẽ cài đặt Certbot và tạo chứng chỉ SSL/TLS cho tên miền SolidInvoice của mình.

Trước tiên, hãy cài đặt plugin Certbot và Certbot Apache bằng lệnh sau. Nhập Y để xác nhận cài đặt
Mã:
sudo apt install certbot python3-certbot-apache
Sau khi cài đặt hoàn tất, hãy tạo chứng chỉ SSL/TLS bằng lệnh certbot sau. Đảm bảo thay đổi thông tin tên miền và địa chỉ email bằng thông tin chi tiết của bạn.
Mã:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d howtoforge.local
Sau khi quá trình hoàn tất, chứng chỉ SSL/TLS của bạn sẽ có trong thư mục /etc/letsencrypt/live/domain.com. Ngoài ra, cài đặt SolidInvoice của bạn sẽ được bảo mật tự động bằng HTTPS.

Cài đặt SolidInvoice​

Mở trình duyệt web của bạn và truy cập tên miền của bạn như https://invoice.howtoforge.local/. Trong Kiểm tra yêu cầu hệ thống, hãy đảm bảo mọi thứ đều ổn, sau đó nhấp vào Tiếp theo để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22455%22%3E%3C/svg%3E


Chọn trình điều khiển cơ sở dữ liệu MySQL và nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng của bạn cho SolidInvoice. Khi hoàn tất, hãy 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=%22659%22%20height=%22750%22%3E%3C/svg%3E


Bây giờ bạn có thể thấy lược đồ cơ sở dữ liệu cho SolidInvouice đã được tạo, hã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=%22278%22%3E%3C/svg%3E


Đối với Cài đặt hệ thống, hãy chọn ngôn ngữ mặc định là tiếng Anh và nhập thông tin chi tiết về người dùng quản trị, email và mật khẩu của bạn. Sau đó, nhấp vào Tiếp theo một lần nữa để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22478%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, bạn sẽ thấy đầu ra 'Bạn đã cài đặt thành công SolidInvoice!' và hướng dẫn bổ sung để tạo tác vụ cron.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22365%22%3E%3C/svg%3E


Quay lại thiết bị đầu cuối máy chủ và tạo một công việc cron mới cho người dùng www-data bằng lệnh bên dưới.
Mã:
sudo crontab -u www-data -e
Dán tập lệnh crontab từ trang, sau đó lưu và đóng tệp.
Mã:
* * * * * php /var/www/solidinvoice/bin/console cron:run -e prod -n
Quay lại trình duyệt web của bạn và nhấp vào Đăng nhập ngay.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22677%22%20height=%22668%22%3E%3C/svg%3E


Bây giờ bạn sẽ được yêu cầu tạo tên công ty và loại tiền tệ mặc định. Nhấp vào Tạo để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22409%22%3E%3C/svg%3E


Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy bảng điều khiển SolidInvoice như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22452%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã cài đặt SolidInvoice trên máy chủ Ubuntu 22.04. Bạn đã chạy SolidInvoice với LAMP Stack (Apache, MySQL/MariaDB và PHP) trên Ubuntu và bảo mật cài đặt của bạn bằng HTTPS thông qua Letsencrypt. Bây giờ bạn có thể thêm các thành phần mới như máy chủ SMTP vào SolidInvoice và sử dụng nó.
 
Back
Bên trên