Invoice Ninja là phần mềm mã nguồn mở dựa trên web để lập hóa đơn, thanh toán, theo dõi thời gian và nhiều hơn nữa. Bạn có thể tạo Hóa đơn trực tuyến trong vài giây, tương tác với các cổng thanh toán như Stripe, PayPal, WePay và các cổng khác. Invoice Ninja có thể hiển thị cho bạn bản xem trước hóa đơn trực tiếp ở định dạng PDF. Bạn có thể tự mình thay đổi logo công ty trong các mẫu một cách dễ dàng. Invoice Ninja dựa trên PHP, xây dựng bằng Laravel Framework và có thể cài đặt trên Linux và Windows.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Invoice Ninja trên Ubuntu 16.04. Tôi sẽ sử dụng Nginx làm máy chủ web và MariaDB làm hệ thống Cơ sở dữ liệu.
Điều kiện tiên quyết
Cài đặt Nginx bằng lệnh apt bên dưới:
Khi quá trình cài đặt nginx hoàn tất, hãy khởi động Nginx và thêm nó để bắt đầu khi khởi động.
Đảm bảo nginx đang chạy. Kiểm tra cổng được nginx sử dụng, cổng máy chủ web mặc định là 80.
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ themariadb và cho phép dịch vụ này khởi động khi khởi động bằng các lệnh systemctl sau.
MariaDB đã khởi động, giờ bạn có thể đặt mật khẩu gốc cho mariadb bằng lệnh bên dưới.
Đặt mật khẩu gốc MariaDB mới của bạn.
Tiếp theo, hãy thử kết nối với shell mysql với tư cách là người dùng root.
Bạn sẽ thấy shell MySQL khi mọi thứ hoạt động bình thường.
Bây giờ chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng mới cho Invoice Ninja. Tôi sẽ tạo một cơ sở dữ liệu mới có tên là 'ninjadb', một người dùng mới 'ninja' với mật khẩu 'aqwe123'. Vui lòng chọn một mật khẩu khác và an toàn cho cài đặt của bạn!
Tạo chúng bằng truy vấn mysql bên dưới. Tạo cơ sở dữ liệu mới, tạo người dùng và mật khẩu mới, cấp cơ sở dữ liệu cho người dùng mới bằng mật khẩu.
MariaDB đã được cài đặt và cơ sở dữ liệu và người dùng mới cho Invoice Ninja đã được tạo.
Cài đặt PHP7.0-FPM và các tiện ích mở rộng PHP khác cần thiết cho Invoice Ninja bằng lệnh bên dưới.
Sau khi cài đặt, hãy vào thư mục cấu hình PHP và chỉnh sửa tệp php.ini.
Bỏ chú thích dòng CGI bên dưới và đổi giá trị thành 0.
Lưu và thoát.
Chỉnh sửa tệp php.ini trong cli thư mục.
Bỏ chú thích dòng CGI bên dưới và đổi giá trị thành 0.
Lưu và thoát.
Tiếp theo, khởi động PHP7.0-FPM và cho phép nó khởi động khi khởi động.
Theo mặc định, PHP7.0-FPM đang chạy với tệp socket, hãy kiểm tra tệp này bằng lệnh bên dưới và bạn sẽ thấy tệp socket PHP như trong ảnh chụp màn hình.
PHP7.0-FPM và tất cả các tiện ích mở rộng cần thiết của Invoice Ninja đã được cài đặt.
Đi đến thư mục '/var/www' và tải xuống mã nguồn Invoice Ninja bằng lệnh wget.
Giải nén tệp zip Invoice Ninja và đi đến thư mục 'ninja'.
Đối với dự án Laravel, chúng ta cần cài đặt trình quản lý phụ thuộc composer cho PHP. Nó có sẵn trong kho lưu trữ Ubuntu, vì vậy chúng ta có thể cài đặt nó bằng lệnh apt.
Tiếp theo, cài đặt các phụ thuộc của Invoice Ninja bằng lệnh composer bên dưới.
Thay đổi giá trị của cài đặt cơ sở dữ liệu bên dưới.
Lưu và thoát.
Tiếp theo, chỉnh sửa cấu hình cơ sở dữ liệu trong thư mục config.
Chúng tôi đang sử dụng cơ sở dữ liệu MariaDB/MySQL, hãy chuyển đến dòng 55 của MySQL.
Thay thế mật khẩu bằng mật khẩu mà bạn đã đặt cho người dùng ninja!
Lưu và thoát.
Tất cả các tệp cấu hình đã được chỉnh sửa. Tiếp theo, di chuyển cơ sở dữ liệu bằng lệnh bên dưới.
Bạn sẽ được yêu cầu chạy lệnh, nhập 'yes' và nhấn Enter.
Tiếp theo, gieo hạt giống cơ sở dữ liệu với tất cả các bản ghi.
Nhập 'yes' và nhấn Enter để xác nhận.
Tạo khóa ứng dụng mới cho dự án Laravel Invoice Ninja.
Bạn sẽ thấy khóa ứng dụng.
Chỉnh sửa tệp app.php bằng vim.
Đi đến dòng APP_KEY 85 và dán khóa chúng tôi đã tạo.
Lưu và thoát.
Cuối cùng, hãy thay đổi chủ sở hữu của thư mục '/var/www/ninja' thành người dùng và nhóm 'www-data'.
Invoice Ninja đã được định cấu hình và sẵn sàng để cài đặt.
Tạo thư mục 'cert' mới cho các tệp SSL.
Chạy lệnh openssl bên dưới để tạo các tệp chứng chỉ.
Thay đổi quyền của các tệp chứng chỉ thành '600'.
Tiếp theo, hãy đến thư mục Nginx và tạo một tệp cấu hình máy chủ ảo mới có tên 'ninja'.
Dán cấu hình máy chủ ảo bên dưới.
Lưu và thoát.
Bật máy chủ ảo ninja và kiểm tra cấu hình Nginx, đảm bảo không có lỗi.
Bây giờ hãy khởi động lại máy chủ web nginx.
Cấu hình máy chủ ảo Invoice Ninja đã hoàn tất.
Nhập Cài đặt ứng dụng, Kết nối cơ sở dữ liệu, Cài đặt email, Chi tiết người dùng và kiểm tra TOS của Invoice Ninja.
Nhấp vào 'Gửi' và bạn sẽ được chuyển hướng đến trang đăng nhập của Invoice Ninja.
Nhập email và mật khẩu của bạn, sau đó nhấn 'ĐĂNG NHẬP'.
Bạn sẽ thấy Bảng điều khiển Invoice Ninja.
Trang cài đặt Invoice Ninja.
Invoice Ninja được cài đặt với Nginx và MariaDB trên Ubuntu 16.04.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Invoice Ninja trên Ubuntu 16.04. Tôi sẽ sử dụng Nginx làm máy chủ web và MariaDB làm hệ thống Cơ sở dữ liệu.
Điều kiện tiên quyết
- Máy chủ Ubuntu 16.04.
- Quyền root.
Bước 1 - Cài đặt Nginx
Trong bước này, chúng ta sẽ cài đặt máy chủ web Nginx. Kết nối với máy chủ của bạn bằng tài khoản root ssh (hoặc đăng nhập bằng người dùng khác và sử dụng 'sudo -s' để trở thành root) và cập nhật kho lưu trữ.
Mã:
ssh [emailprotected]
apt-get update
Mã:
apt-get install -y nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Bước 2 - Cài đặt và cấu hình MariaDB Server
Sau khi cài đặt Nginx, chúng ta cần cài đặt packagemariadb-server trên hệ thống. Nó có sẵn trong kho lưu trữ Ubuntu. Cài đặt mariadb-server và các thành phần phụ thuộc bằng lệnh bên dưới.
Mã:
apt-get install -y mariadb-server
Mã:
systemctl restart mysql
systemctl enable mysql
Mã:
mysql_secure_installation
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Mật khẩu mới:
Nhập lại mật khẩu mới:
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập gốc từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Mã:
mysql -u root -p
NHẬP MẬT KHẨU ROOT CỦA BẠN
Bây giờ chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng mới cho Invoice Ninja. Tôi sẽ tạo một cơ sở dữ liệu mới có tên là 'ninjadb', một người dùng mới 'ninja' với mật khẩu 'aqwe123'. Vui lòng chọn một mật khẩu khác và an toàn cho cài đặt của bạn!
Tạo chúng bằng truy vấn mysql bên dưới. Tạo cơ sở dữ liệu mới, tạo người dùng và mật khẩu mới, cấp cơ sở dữ liệu cho người dùng mới bằng mật khẩu.
Mã:
create database ninjadb;
create user ninja@localhost defined by 'aqwe123';
grant all privileges on ninjadb.* to ninja@localhost defined by 'aqwe123';
flush privileges;
MariaDB đã được cài đặt và cơ sở dữ liệu và người dùng mới cho Invoice Ninja đã được tạo.
Bước 3 - Cài đặt và cấu hình PHP7.0-FPM
Invoice Ninja dựa trên PHP, vì vậy chúng ta cần cài đặt PHP vào hệ thống. Chúng tôi sẽ sử dụng PHP7.0-FPM cho cài đặt Invoice Ninja này.Cài đặt PHP7.0-FPM và các tiện ích mở rộng PHP khác cần thiết cho Invoice Ninja bằng lệnh bên dưới.
Mã:
apt-get install -y php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-mbstring php7.0-mcrypt php7.0-curl php7.0-gmp
Mã:
cd /etc/php/7.0/
vim fpm/php.ini
Mã:
cgi.fix_pathinfo=0
Chỉnh sửa tệp php.ini trong cli thư mục.
Mã:
vim cli/php.ini
Mã:
cgi.fix_pathinfo=0
Tiếp theo, khởi động PHP7.0-FPM và cho phép nó khởi động khi khởi động.
Mã:
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
Mã:
netstat -pl
PHP7.0-FPM và tất cả các tiện ích mở rộng cần thiết của Invoice Ninja đã được cài đặt.
Bước 4 - Cài đặt và cấu hình Invoice Ninja
Trong bước này, chúng ta sẽ tải xuống và cấu hình Invoice Ninja. Trước tiên, hãy cài đặt unzip trên hệ thống của bạn.
Mã:
apt-get install -y unzip
Mã:
cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip
Mã:
unzip ninja-v3.1.0.zip
cd ninja/
Mã:
apt-get install -y composer
Mã:
composer install --no-dev -o
- --no-dev : Vô hiệu hóa cài đặt các gói require-dev
- -o: Tối ưu hóa trình nạp tự động trong quá trình dump trình nạp tự động
Mã:
cp .env.example .env
vim .env
Mã:
DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123
Tiếp theo, chỉnh sửa cấu hình cơ sở dữ liệu trong thư mục config.
Mã:
vim config/database.php
Mã:
'database' => env('DB_DATABASE', 'ninjadb'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'aqwe123'),
Lưu và thoát.
Tất cả các tệp cấu hình đã được chỉnh sửa. Tiếp theo, di chuyển cơ sở dữ liệu bằng lệnh bên dưới.
Mã:
php artisan migrate
Tiếp theo, gieo hạt giống cơ sở dữ liệu với tất cả các bản ghi.
Mã:
php artisan db:seed
Tạo khóa ứng dụng mới cho dự án Laravel Invoice Ninja.
Mã:
php artisan key:generate
Chỉnh sửa tệp app.php bằng vim.
Mã:
vim config/app.php
Mã:
'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),
Cuối cùng, hãy thay đổi chủ sở hữu của thư mục '/var/www/ninja' thành người dùng và nhóm 'www-data'.
Mã:
cd /var/www/
chown -R www-data:www-data ninja/
Bước 5 - Định cấu hình SSL và Máy chủ ảo
Trong bước này, chúng ta sẽ tạo tệp Chứng chỉ SSL bằng lệnh OpenSSL và tạo cấu hình máy chủ ảo mới cho Invoice Ninja. Nếu bạn đang ở trên máy chủ còn hoạt động, bạn có thể sử dụng SSL miễn phí từ Let's Encrypt thay vì tạo chứng chỉ SSL tự ký bằng OpenSSL.Tạo thư mục 'cert' mới cho các tệp SSL.
Mã:
mkdir -p /etc/nginx/cert/
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Mã:
chmod 600 /etc/nginx/cert/*
Tiếp theo, hãy đến thư mục Nginx và tạo một tệp cấu hình máy chủ ảo mới có tên 'ninja'.
Mã:
cd /etc/nginx/
vim sites-available/ninja
Mã:
server {
# Tên miền của bạn - hakase-labs.co
listen 80;
server_name ninja.co www.ninja.co;
# Viết lại chuyển hướng đến https
add_header Strict-Transport-Security max-age=2592000;
viết lại ^ https://$server_name$request_uri? vĩnh viễn;
}
máy chủ {
# Tên miền của bạn - hakase-labs.co
nghe 443 mặc định;
tên_máy_chủ ninja.co www.ninja.co;
# Bật SSL cho Invoice Ninja
ssl bật;
ssl_certificate /etc/nginx/cert/ninja.crt;
ssl_certificate_key /etc/nginx/cert/ninja.key;
ssl_session_timeout 5 phút;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers bật;
# Tệp gốc web Invoice Ninja
root /var/www/ninja/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log tắt; log_not_found tắt; }
location = /robots.txt { access_log tắt; log_not_found tắt; }
# Nhật ký truy cập và lỗi cho Invoice Ninja
access_log /var/log/nginx/ininja.access.log;
error_log /var/log/nginx/ininja.error.log;
sendfile off;
# Xử lý ứng dụng PHP
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
Bật máy chủ ảo ninja và kiểm tra cấu hình Nginx, đảm bảo không có lỗi.
Mã:
ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t
Mã:
systemctl restart nginx
Cấu hình máy chủ ảo Invoice Ninja đã hoàn tất.
Bước 6 - Hoàn tất cài đặt và kiểm tra
Mở trình duyệt web của bạn và nhập URL Invoice Ninja: ninja.co. Bạn sẽ được chuyển hướng đến trang kết nối và thiết lập https.Nhập Cài đặt ứng dụng, Kết nối cơ sở dữ liệu, Cài đặt email, Chi tiết người dùng và kiểm tra TOS của Invoice Ninja.
Nhấp vào 'Gửi' và bạn sẽ được chuyển hướng đến trang đăng nhập của Invoice Ninja.
Nhập email và mật khẩu của bạn, sau đó nhấn 'ĐĂNG NHẬP'.
Bạn sẽ thấy Bảng điều khiển Invoice Ninja.
Trang cài đặt Invoice Ninja.
Invoice Ninja được cài đặt với Nginx và MariaDB trên Ubuntu 16.04.