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

theanh

Administrator
Nhân viên
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
  • 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
Cài đặt Nginx bằng lệnh apt bên dưới:
Mã:
apt-get install -y nginx
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ã:
systemctl start nginx
systemctl enable nginx
Đả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.
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
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.
Mã:
systemctl restart mysql
systemctl enable mysql
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.
Mã:
mysql_secure_installation
Đặt mật khẩu gốc MariaDB mới của bạn.
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
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.
Mã:
mysql -u root -p
NHẬP MẬT KHẨU ROOT CỦA BẠN
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.
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
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.
Mã:
cd /etc/php/7.0/
vim fpm/php.ini
Bỏ chú thích dòng CGI bên dưới và đổi giá trị thành 0.
Mã:
cgi.fix_pathinfo=0
Lưu và thoát.

Chỉnh sửa tệp php.ini trong cli thư mục.
Mã:
vim cli/php.ini
Bỏ chú thích dòng CGI bên dưới và đổi giá trị thành 0.
Mã:
cgi.fix_pathinfo=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.
Mã:
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
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.
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
Đi đến thư mục '/var/www' và tải xuống mã nguồn Invoice Ninja bằng lệnh wget.
Mã:
cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip
Giải nén tệp zip Invoice Ninja và đi đến thư mục 'ninja'.
Mã:
unzip ninja-v3.1.0.zip
cd 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.
Mã:
apt-get install -y composer
Tiếp theo, cài đặt các phụ thuộc của Invoice Ninja bằng lệnh composer bên dưới.
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
Khi quá trình cài đặt phụ thuộc hoàn tất, hãy sao chép tệp .env và chỉnh sửa bằng vim.
Mã:
cp .env.example .env
vim .env
Thay đổi giá trị của cài đặt cơ sở dữ liệu bên dưới.
Mã:
DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123
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.
Mã:
vim config/database.php
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.
Mã:
'database' => env('DB_DATABASE', 'ninjadb'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'aqwe123'),
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.
Mã:
php artisan migrate
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.
Mã:
php artisan db:seed
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.
Mã:
php artisan key:generate
Bạn sẽ thấy khóa ứng dụng.

Chỉnh sửa tệp app.php bằng vim.
Mã:
vim config/app.php
Đi đến dòng APP_KEY 85 và dán khóa chúng tôi đã tạo.
Mã:
'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),
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'.
Mã:
cd /var/www/
chown -R www-data:www-data ninja/
Invoice Ninja đã được định cấu hình và sẵn sàng để cài đặt.

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/
Chạy lệnh openssl bên dưới để tạo các tệp chứng chỉ.
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Thay đổi quyền của các tệp chứng chỉ thành '600'.
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
Dán cấu hình máy chủ ảo bên dưới.
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;
 }
}
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.
Mã:
ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t
Bây giờ hãy khởi động lại máy chủ web nginx.
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.

Tham khảo​

 
Back
Bên trên