InvoicePlane là ứng dụng miễn phí, mã nguồn mở và tự lưu trữ để quản lý báo giá, hóa đơn, khách hàng và thanh toán của bạn. Nhiều tổ chức và người làm việc tự do sử dụng ứng dụng này để quản lý thanh toán và hóa đơn của họ. Ứng dụng này cung cấp các mẫu, chủ đề tùy chỉnh và các công cụ khác giúp bạn tăng chức năng của InvoicePlane. Nó cũng hỗ trợ nhiều ngôn ngữ và nhiều nhà cung cấp thanh toán như Paypal, Stripe hoặc thậm chí Bitcoin thông qua Coinbase.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt InvoicePlane với Apache trên Debian 11.
Sau khi tất cả các gói được cài đặt, hãy chỉnh sửa tệp cấu hình PHP và thay đổi các thiết lập mặc định:
Thay đổi các mục sau lines:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Trước tiên, hãy bảo mật cài đặt MariaDB bằng lệnh sau:
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Tiếp theo, kết nối với shell MariaDB bằng lệnh sau:
Sau khi kết nối, hãy tạo cơ sở dữ liệu và người dùng cho InvoicePlane bằng lệnh sau:
Tiếp theo, cấp tất cả các đặc quyền cho InvoicePlane bằng lệnh sau:
Tiếp theo, chạy lệnh FLUSH PRIVILEGES để MariaDB tải lại bảng quyền:
Cuối cùng, thoát khỏi shell MariaDB:
Sau khi tải xuống hoàn tất, hãy tạo một thư mục cho InvoicePlane và giải nén tệp đã tải xuống bên trong thư mục InvoicePlane:
Tiếp theo, điều hướng đến thư mục InvoicePlane và đổi tên tệp cấu hình và tệp .htaccess:
Tiếp theo, chỉnh sửa tệp ipconfig.php bằng lệnh sau:
Xác định URL trang web và cài đặt cơ sở dữ liệu của bạn như hiển thị bên dưới:
Tiếp theo, thiết lập quyền và quyền sở hữu thích hợp cho thư mục InvoicePlane:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó kích hoạt máy chủ ảo Apache và viết lại mô-đun bằng lệnh sau:
Tiếp theo, khởi động lại dịch vụ Apache để áp dụng các thay đổi cấu hình:
Để xác minh trạng thái Apache, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Nhấp vào nút Thiết lập. Bạn sẽ thấy trang lựa chọn Ngôn ngữ:
Chọn ngôn ngữ của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang điều kiện tiên quyết:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Cung cấp thông tin tài khoản người dùng quản trị, địa chỉ và nhấp vào nút Tiếp tục. Sau khi InvoicePlane đã được cài đặt, bạn sẽ thấy trang sau:
Nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:
Cung cấp tên người dùng quản trị, mật khẩu rồi nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển InvoicePlane trên trang sau:
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:
Bạn sẽ được yêu cầu cung cấp email và chấp nhận các điều khoản dịch vụ như hiển thị bên dưới:
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:
Nhập 2 và nhấn Enter để cài đặt Let's Encrypt SSL cho trang web của bạn:
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt InvoicePlane với Apache trên Debian 11.
Điều kiện tiên quyết
- Một máy chủ chạy Debian 11.
- 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 trên máy chủ.
Cài đặt Apache, PHP và MariaDB
Trước tiên, bạn sẽ cần cài đặt máy chủ web Apache, máy chủ cơ sở dữ liệu MariaDB, PHP và các tiện ích mở rộng PHP cần thiết khác vào máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:
Mã:
apt-get install apache2 mariadb-server php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql wget unzip php-cli php-zip php-curl -y
Mã:
nano /etc/php/7.4/apache2/php.ini
Mã:
memory_limit = 256Mupload_max_filesize = 128Mmax_execution_time = 360date.timezone = UTC
Mã:
systemctl restart apache2
Tạo Cơ sở dữ liệu cho InvoicePlane
Tiếp theo, bạn sẽ cần bảo mật cài đặt MariaDB và tạo cơ sở dữ liệu và người dùng cho InvoicePlane.Trước tiên, hãy bảo mật cài đặt MariaDB bằng lệnh sau:
Mã:
mysql_secure_installation
Mã:
Đặt mật khẩu root? [Y/n] YXóa người dùng ẩn danh? [Y/n] yKhông cho phép đăng nhập root từ xa? [Y/n] yXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] yTải lại bảng đặc quyền ngay bây giờ? [Y/n] y
Mã:
mysql -u root -p
Mã:
MariaDB [(none)]> CREATE DATABASE invplanedb;
MariaDB [(none)]> CREATE USER 'invplane'@'localhost' IDENTIFIED BY 'password';
Mã:
MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN invplanedb.* CHO 'invplane'@'localhost';
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
Mã:
MariaDB [(none)]> EXIT
Cài đặt InvoicePlane
Trước tiên, hãy tải xuống phiên bản mới nhất của InvoicePlane bằng lệnh sau:
Mã:
wget -c -O v1.5.11.zip https://invoiceplane.com/download/v1.5.11
Mã:
mkdir /var/www/html/invoiceplane
unzip v1.5.11.zip -d /var/www/html/invoiceplane
Mã:
cd /var/www/html/invoiceplane
cp ipconfig.php.example ipconfig.php
cp htaccess .htaccess
Mã:
nano ipconfig.php
Mã:
IP_URL=http://invoice.example.comDB_HOSTNAME=localhostDB_USERNAME=invplaneDB_PASSWORD=passwordDB_DATABASE=invplanedbDB_PORT=3306
Mã:
chown -R www-data:www-data /var/www/html/invoiceplane/
chmod -R 755 /var/www/html/invoiceplane/
Cấu hình Apache cho InvoicePlane
Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Apache cho InvoicePlane. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/apache2/sites-available/invoiceplane.conf
Mã:
ServerAdmin [emailprotected] DocumentRoot /var/www/html/invoiceplane ServerName invoice.example.com Tùy chọn +FollowSymlinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Mã:
a2ensite invoiceplane.conf
a2enmod rewrite
Mã:
systemctl restart apache2
Mã:
systemctl status apache2
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ừ Thứ sáu 2022-01-21 08:42:34 UTC; 5 giây trước Tài liệu: https://httpd.apache.org/docs/2.4/ Tiến trình: 15965 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID chính: 15970 (apache2) Nhiệm vụ: 6 (giới hạn: 2341) Bộ nhớ: 15,1M CPU: 82ms CGroup: /system.slice/apache2.service ??15970 /usr/sbin/apache2 -k start ??15971 /usr/sbin/apache2 -k start ??15972 /usr/sbin/apache2 -k start ??15973 /usr/sbin/apache2 -k start ??15974 /usr/sbin/apache2 -k start ??15975 /usr/sbin/apache2 -k start21 tháng 1 08:42:34 debian11 systemd[1]: Đang khởi động Máy chủ HTTP Apache...
Truy cập Giao diện người dùng web InvoicePlane
Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web InvoicePlane bằng URL http://invoice.example.com. Bạn sẽ thấy trang sau:Nhấp vào nút Thiết lập. Bạn sẽ thấy trang lựa chọn Ngôn ngữ:
Chọn ngôn ngữ của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang điều kiện tiên quyết:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Cung cấp thông tin tài khoản người dùng quản trị, địa chỉ và nhấp vào nút Tiếp tục. Sau khi InvoicePlane đã được cài đặt, bạn sẽ thấy trang sau:
Nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:
Cung cấp tên người dùng quản trị, mật khẩu rồi nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển InvoicePlane trên trang sau:
Bảo mật InvoicePlane 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
Mã:
certbot --apache -d invoice.example.com
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ó sẵn lòng 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ận phá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
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
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/04/2022. Để 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