วิธีการติดตั้ง Invoice Ninja บน Ubuntu 16.04

บทนำ

Invoice Ninja เป็นแอปพลิเคชั่นบนเว็บแบบโอเพนซอร์สฟรีที่สามารถใช้สำหรับการออกใบแจ้งหนี้การชำระเงินการติดตามเวลาและอื่น ๆ อีกมากมาย มันเป็นทางออกที่ดีที่สุดสำหรับลูกค้าที่ออกใบแจ้งหนี้และเรียกเก็บเงิน คุณสามารถสร้างและส่งใบแจ้งหนี้ออนไลน์ในไม่กี่วินาที Invoice Ninja ช่วยให้คุณสร้างใบแจ้งหนี้ที่กำหนดเองและแสดงใบแจ้งหนี้สดเป็นไฟล์ PDF

ในบทช่วยสอนนี้ฉันจะอธิบายวิธีการติดตั้ง Invoice Ninja บนเซิร์ฟเวอร์ Ubuntu 16.04

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Ubuntu 16.04 ที่ติดตั้ง RAM 2GB
  • ผู้ใช้ sudo ที่มีสิทธิ์ใช้งานรูท
  • คุณจะต้องรู้ IP หลักของอินสแตนซ์เซิร์ฟเวอร์ของคุณ 192.168.0.227ในการกวดวิชานี้ผมจะใช้

ขั้นตอนที่ 1: อัปเดตระบบ

ก่อนที่จะติดตั้งแพคเกจใด ๆ บนอินสแตนซ์ของเซิร์ฟเวอร์ Ubuntu ขอแนะนำให้อัพเดตระบบ ล็อกอินเข้าสู่เซิร์ฟเวอร์ของคุณผ่าน SSH ในฐานะผู้ใช้ sudo ของคุณและรันคำสั่งต่อไปนี้:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

ขั้นตอนที่ 2: ติดตั้ง LEMP สแต็ค

ก่อนเริ่มต้นคุณจะต้องกำหนดค่าสแต็ก LEMP (Nginx, MariaDB และ PHP) บนเซิร์ฟเวอร์ของคุณ

ก่อนอื่นให้ติดตั้ง Nginx และ MariaDB ด้วยคำสั่งต่อไปนี้:

sudo apt-get install nginx mariadb-server -y

เมื่อการติดตั้งเสร็จสมบูรณ์ให้เริ่มบริการ Nginx และ MariaDB และเปิดใช้งานการเริ่มต้นในการบู๊ต:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

ถัดไปคุณจะต้องใช้ PHP 7 และ PHP-FPM สำหรับการติดตั้ง Invoice Ninja

คุณสามารถติดตั้ง PHP-FPM และส่วนขยาย PHP อื่น ๆ ที่จำเป็นด้วยคำสั่งต่อไปนี้:

sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt

เมื่อการติดตั้งเสร็จสิ้นคุณจะต้องแก้ไขphp.iniไฟล์การกำหนดค่า:

sudo nano /etc/php/7.0/fpm/php.ini

เปลี่ยนบรรทัดต่อไปนี้:

cgi.fix_pathinfo=0

บันทึกและปิดไฟล์

ขั้นตอนที่ 3: กำหนดค่าฐานข้อมูล

ตามค่าเริ่มต้นการติดตั้ง MariaDB ยังไม่ได้รับการรักษาความปลอดภัย คุณจะต้องรักษาความปลอดภัย mysql_secure_installation scriptคุณสามารถทำได้โดยการทำงาน

sudo mysql_secure_installation

ตอบคำถามทั้งหมดที่แสดงด้านล่าง:

Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

เมื่อเสร็จแล้วให้เชื่อมต่อโดยใช้เปลือก MySQL ด้วยคำสั่งต่อไปนี้:

mysql -u root -p

ป้อนรหัสผ่านรูทของคุณและกด "Enter" คุณจะเห็นเปลือก MySQL (MariaDB)

สร้างฐานข้อมูลใหม่และผู้ใช้ใหม่สำหรับ Invoice Ninja

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

ขั้นตอนที่ 4: กำหนดค่า PHP-FPM

กำหนดค่าพูล PHP-FPM สำหรับผู้ใช้ Nginx:

sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf

เพิ่มบรรทัดต่อไปนี้:

[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

บันทึกและปิดไฟล์เมื่อดำเนินการเสร็จสิ้นจากนั้นรีสตาร์ท PHP-FPM เพื่อใช้การเปลี่ยนแปลงเหล่านี้

systemctl restart php7.0-fpm

ขั้นตอนที่ 5: ดาวน์โหลดและกำหนดค่า Invoice Ninja

คุณสามารถดาวน์โหลด Invoice Ninja รุ่นล่าสุดได้จากที่เก็บ GitHub ด้วยคำสั่งต่อไปนี้:

cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja

คุณจะต้องติดตั้ง Composer ซึ่งเป็นผู้จัดการการอ้างอิงสำหรับ PHP คุณสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

ถัดไปติดตั้งการอ้างอิงใบแจ้งหนี้ของนินจาทั้งหมดโดยใช้composerคำสั่งดังแสดงด้านล่าง:

cd /var/www/html/ninja
sudo composer install --no-dev -o

เมื่อติดตั้งเสร็จแล้วให้เปลี่ยนชื่อ.envไฟล์และทำการเปลี่ยนแปลงบางอย่าง

sudo mv .env.example .env
sudo nano .env

เปลี่ยนบรรทัดที่แสดงด้านล่าง:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

บันทึกไฟล์เมื่อเสร็จแล้วเรียกใช้คำสั่งต่อไปนี้เพื่อเตรียมฐานข้อมูล:

sudo php artisan migrate

คุณจะได้รับแจ้งให้เรียกใช้คำสั่งพิมพ์ "ใช่" และกด "Enter"

ถัดไป seed ฐานข้อมูลด้วยเร็กคอร์ดที่แสดงด้านล่าง:

sudo php artisan db:seed

พิมพ์ "ใช่" แล้วกด "Enter"

ถัดไปเปลี่ยนความเป็นเจ้าของ/var/www/html/ninjaไดเรกทอรี:

sudo chown -R www-data:www-data /var/www/html/ninja/

ขั้นตอนที่ 6: กำหนดค่า Nginx สำหรับนินจาใบแจ้งหนี้

ถัดไปคุณจะต้องสร้างใบรับรอง SSL และสร้างการกำหนดค่าโฮสต์เสมือนใหม่สำหรับ Invoice Ninja

ก่อนอื่นให้สร้างไดเรกทอรีสำหรับ SSL:

sudo mkdir -p /etc/nginx/cert/

ถัดไปสร้างใบรับรอง SSL ด้วยคำสั่งต่อไปนี้:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

ให้สิทธิ์ที่เหมาะสมกับไฟล์ใบรับรอง

sudo chmod 600 /etc/nginx/cert/*

สร้างไฟล์กำหนดค่าโฮสต์เสมือนใหม่ภายใน/etc/nginx/ไดเรกทอรี

sudo nano /etc/nginx/conf.d/ninja.conf

เพิ่มบรรทัดต่อไปนี้:

server {
    listen  80;
    server_name 192.168.0.227;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen  443 default;
    server_name 192.168.0.227;
    ssl on;
    ssl_certificate     /etc/nginx/cert/ninja.crt;
    ssl_certificate_key /etc/nginx/cert/ninja.key;
    ssl_session_timeout 5m;
    ssl_ciphers  'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    root /var/www/html/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 off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    # Access and Error Log for Invoice Ninja
    access_log  /var/log/nginx/ininja.access.log;
    error_log   /var/log/nginx/ininja.error.log;

    sendfile off;

    # Handle PHP Applications
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm-www-data.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;
       }
    }

บันทึกและปิดไฟล์ จากนั้นเปิดใช้งานโฮสต์เสมือนด้วยคำสั่งต่อไปนี้

sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/

สุดท้ายให้รีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx

sudo systemctl restart nginx

ขั้นตอนที่ 7: เข้าถึงใบแจ้งหนี้นินจา

ก่อนที่จะเข้าถึงอินเทอร์เฟซเว็บนินจาใบแจ้งหนี้คุณจะต้องอนุญาตให้บริการ HTTP และ HTTPS ผ่านไฟร์วอลล์ UFW รันคำสั่งต่อไปนี้เพื่อเปิดพอร์ตเหล่านี้:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

สุดท้ายเปิดเว็บเบราว์เซอร์ของคุณและเข้าถึง https://192.168.0.227URL จากนั้นคุณสามารถทำตามขั้นตอนที่จำเป็นเพื่อเสร็จสิ้นการติดตั้ง

ขอแสดงความยินดี! เราได้ติดตั้ง Invoice Ninja กับ Nginx และ MariaDB บนเซิร์ฟเวอร์ Ubuntu 16.04 เรียบร้อยแล้ว

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true