Cách cài đặt Invoice Ninja trên Ubuntu 20.04

theanh

Administrator
Nhân viên
Invoice Ninja là ứng dụng lập hóa đơn trực tuyến miễn phí và mã nguồn mở dành cho người làm việc tự do và doanh nghiệp, giúp bạn chấp nhận thanh toán, theo dõi chi phí, tạo đề xuất và nhiệm vụ theo thời gian. Đây là ứng dụng lập hóa đơn tự lưu trữ rất giống với các ứng dụng lập hóa đơn thương mại như Freshbooks. Ứng dụng này cho phép bạn tạo hóa đơn tùy chỉnh của riêng mình và gửi trực tuyến trong vòng một giây.

Invoice Ninja rất hữu ích cho các doanh nghiệp vừa và nhỏ. Nếu bạn đang tìm kiếm phần mềm lập hóa đơn an toàn và dễ sử dụng thì Invoice Ninja là lựa chọn tốt nhất dành cho bạn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Invoice Ninja với Apache và Let's Encrypt SSL trên máy chủ Ubuntu 20.04.

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

  • Một máy chủ chạy Ubuntu 20.04.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình cho máy chủ.

Bắt đầu​

Trước tiên, bạn nên cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Chạy lệnh sau để cập nhật tất cả các gói:
Mã:
apt-get update -y
Sau khi tất cả các gói được cập nhật, hãy cài đặt các phụ thuộc bắt buộc khác bằng lệnh sau:
Mã:
apt-get install software-properties-common apt-transport-https ca-certificates gnupg2 -y
Sau khi tất cả các phụ thuộc được cài đặt, bạn có thể tiến hành bước tiếp theo.

Cài đặt LAMP Server​

Tiếp theo, bạn sẽ cần cài đặt Apache, MariaDB và PHP vào hệ thống của mình. Trước tiên, hãy cài đặt các gói Apache và MariaDB bằng lệnh sau:
Mã:
apt-get install apache2 mariadb-server -y
Sau khi cài đặt cả hai gói, bạn sẽ cần cài đặt PHP phiên bản 7.2 và các tiện ích mở rộng khác trong hệ thống của mình.

Theo mặc định, Ubuntu 20.04 được cài đặt sẵn PHP phiên bản 7.4. Vì vậy, bạn sẽ cần thêm kho lưu trữ Ondrej vào hệ thống của mình.

Bạn có thể thêm kho lưu trữ Ondrej của PHP bằng lệnh sau:
Mã:
add-apt-repository ppa:ondrej/php
Sau khi kho lưu trữ được thêm vào, hãy cài đặt PHP và các tiện ích mở rộng khác bằng lệnh sau:
Mã:
apt-get install php7.2 libapache2-mod-php7.2 php-imagick php7.2-fpm php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp unzip -y
Sau khi cài đặt tất cả các gói, hãy xác minh phiên bản PHP đã cài đặt bằng lệnh sau:
Mã:
php -v
Bạn sẽ thấy kết quả sau:
Mã:
PHP 7.2.34-8+ubuntu20.04.1+deb.sury.org+1 (cli) (xây dựng: 31 tháng 10 năm 2020 16:57:33) (NTS)Bản quyền (c) 1997-2018 The PHP GroupZend Engine v3.2.0, Bản quyền (c) 1998-2018 Zend Technologies với Zend OPcache v7.2.34-8+ubuntu20.04.1+deb.sury.org+1, Bản quyền (c) 1999-2018, của Zend Technologies

Cấu hình Cơ sở dữ liệu MariaDB​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Invoice Ninja. Trước tiên, hãy đăng nhập vào bảng điều khiển MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> create database invoicedb;
MariaDB [(none)]> create user invoice@localhost defined by 'password';
Tiếp theo, cấp tất cả các quyền cho invoicedb bằng lệnh sau:
Mã:
MariaDB [(none)]> grant all privileges on invoicedb.* to invoice@localhost;
Tiếp theo, xóa các quyền và thoát khỏi bảng điều khiển MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> xóa các quyền;
MariaDB [(none)]> exit;
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Invoice Ninja​

Trước tiên, hãy tải xuống phiên bản mới nhất của Invoice Ninja từ trang web chính thức của ứng dụng:
Mã:
wget -O invoice-ninja.zip https://download.invoiceninja.com/
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống vào thư mục gốc Apache bằng lệnh sau:
Mã:
unzip invoice-ninja.zip -d /var/www/html/
Tiếp theo, hãy thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau:
Mã:
chown -R www-data:www-data /var/www/html/ninja
chmod -R 755 /var/www/html/ninja
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Apache cho Invoice Ninja​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Apache cho Invoice Ninja. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/apache2/sites-available/ninja.conf
Thêm các dòng sau:
Mã:
 ServerName invoice.example.com DocumentRoot /var/www/html/ninja/public  DirectoryIndex index.php Tùy chọn +FollowSymLinks AllowOverride All Yêu cầu tất cả đã cấp  ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined Include /etc/apache2/conf-available/php7.2-fpm.conf
Lưu và đóng tệp, sau đó bật tệp máy chủ ảo bằng lệnh sau:
Mã:
a2ensite ninja.conf
Tiếp theo, bật các mô-đun apache cần thiết bằng lệnh sau:
Mã:
a2enmod mpm_event proxy_fcgi setenvif
a2enmod rewrite
Cuối cùng, khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Mã:
systemctl restart apache2
Bây giờ bạn có thể xác minh trạng thái của Apache bằng lệnh sau:
Mã:
systemctl status apache2
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? apache2.service - Máy chủ HTTP Apache Đã tải: đã tải (/lib/systemd/system/apache2.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2020-12-27 07:15:15 UTC; 11 giây trước Tài liệu: https://httpd.apache.org/docs/2.4/ Tiến trình: 25097 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID chính: 25113 (apache2) Nhiệm vụ: 55 (giới hạn: 2353) Bộ nhớ: 5,3M CGroup: /system.slice/apache2.service ??25113 /usr/sbin/apache2 -k start ??25114 /usr/sbin/apache2 -k start ??25115 /usr/sbin/apache2 -k start27 tháng 12 07:15:15 ubuntu systemd[1]: Khởi động Máy chủ HTTP Apache..
Tại thời điểm này, Apache được cấu hình để phục vụ Invoice Ninja. Bây giờ bạn có thể tiến hành bước tiếp theo.

Truy cập Invoice Ninja​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập Invoice Ninja bằng URL . Bạn sẽ được chuyển hướng đến trang sau:







Cung cấp URL trang web, thông tin chi tiết về cơ sở dữ liệu, tên người dùng quản trị, mật khẩu và nhấp vào nút Gửi. Bạn sẽ được chuyển hướng đến màn hình đăng nhập Invoice Ninja:



Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút ĐĂNG NHẬP. Bạn sẽ thấy bảng điều khiển Invoice Ninja trong màn hình sau:


Bảo mật Invoice Ninja bằng Let's Encrypt SSL​

Luôn là một ý tưởng hay khi bảo mật trang web của bạn bằng Let's Encrypt SSL. Bạn sẽ cần cài đặt ứng dụng khách Certbot để cài đặt và quản lý SSL. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install python3-certbot-apache -y
Sau khi Certbot được cài đặt, hãy chạy lệnh sau để bảo mật trang web của bạn bằng Let's Encrypt SSL:
Mã:
certbot --apache -d invoice.example.com
Bạn sẽ được yêu cầu cung cấp email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator standalone, Installer NoneNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có muốn chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)ó: CCác plugin đã chọn: Authenticator apache, Installer apacheNhận chứng chỉ mớiThực hiện các thử thách sau:http-01 challenge for invoice.example.comĐã bật mô-đun ghi đè ApacheĐang chờ xác minh...Dọn dẹp các thử tháchĐã tạo một vhost SSL tại /etc/apache2/sites-available/invoice-le-ssl.confĐã bật mô-đun Apache socache_shmcbĐã bật mô-đun Apache sslTriển khai chứng chỉ tới VirtualHost /etc/apache2/sites-available/invoice-le-ssl.confĐã bật trang web khả dụng: /etc/apache2/sites-available/invoice-le-ssl.conf
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để cài đặt Let's Encrypt SSL cho trang web của bạn:
Mã:
Bật mô-đun viết lại ApacheĐang chuyển hướng vhost trong /etc/apache2/sites-enabled/invoice.conf sang ssl vhost trong /etc/apache2/sites-available/invoice-le-ssl.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://invoice.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=invoice.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/invoice.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/invoice.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 23-10-2020. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Bây giờ, bạn có thể truy cập trang web của mình một cách an toàn bằng URL https://invoice.example.com.

Kết luận​

Xin chúc mừng! bạn đã cài đặt và định cấu hình thành công Invoice Ninja với Let's Encrypt SSL trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể khám phá Invoice Ninja để biết thêm các tính năng và triển khai nó trong môi trường sản xuất. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên