ติดตั้ง ERPNEXT VERSION 15 IN UBUNTU 22.04 ฟรี

สวัสดีครับวันนี้ผมจะมาสอนวิธีการติดตั้งระบบ ERPNEXT VERSION 15 บน UBUNTU 22.04 ในบทความนี้ เราจะมาเริ่มกันทีละขั้นตอนเพื่อกำหนดค่าระบบปฏิบัติการ Ubuntu 22.04 ที่เพิ่งติดตั้งใหม่ เพื่อจัดเตรียมสภาพแวดล้อมและติดตั้ง ERPNext เวอร์ชัน 15 มาเริ่มกันเลย!

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

ข้อกำหนดเบื้องต้นด้านล่างนี้แนะนำเพื่อให้ได้ประสิทธิภาพที่เหมาะสมของ ERPNext บนเซิร์ฟเวอร์ของคุณ

ข้อกำหนดของซอฟต์แวร์ (Software Requirements)

  1. อัปเดต Ubuntu 22.04
  2. ผู้ใช้ที่มีสิทธิ์ sudo
  3. Python 3.10 ขึ้นไป
  4. Node.js 18

ข้อกำหนดของฮาร์ดแวร์ (Hardware Requirements)

  1. RAM 4GB
  2. ฮาร์ดดิสก์ 40GB

การตั้งค่าเซิร์ฟเวอร์ (Server Settings)

การอัปเดตและอัปเกรดแพ็กเกจ (Update and Upgrade Packages)

sudo apt-get update -y
sudo apt-get upgrade -y

สร้างผู้ใช้ใหม่ – (bench user)

ในระบบ linux ผู้ใช้ root มีสิทธิพิเศษที่สูงที่สุดในการทำงานต่างๆ ในระบบ ซึ่งเป็นเหตุผลว่าทำไมการใช้งานผู้ใช้นี้ในชีวิตประจำวันจึงไม่แนะนำ เราจะสร้างผู้ใช้ใหม่เพื่อใช้งานแทน และผู้ใช้นี้จะถูกใช้เป็นผู้ใช้สำหรับ Frappe Bench ด้วย

sudo adduser [frappe-user]
sudo usermod -aG sudo [frappe-user]
su [frappe-user] 
cd /home/[frappe-user]

คุณสามารถใช้คำสั่ง sudo adduser [frappe-user] เพื่อเพิ่มผู้ใช้ เช่น sudo adduser frappe

ติดตั้งแพ็คเกจที่จำเป็น

การติดตั้งซอฟต์แวร์เช่น ERPNext ซึ่งสร้างขึ้นบนเฟร็อป (Frappe) Framework ต้องการหลายแพ็คเกจเพื่อให้ทำงานได้อย่างราบรื่น นี่คือแพ็คเกจที่เราจะติดตั้งในขั้นตอนนี้

ติดตั้ง GIT

sudo apt-get install git

ติดตั้ง Python

ERPNext เวอร์ชัน 15 ต้องการ Python เวอร์ชัน 3.10+ นั่นเอง และนี่คือสิ่งที่เราจะติดตั้งในขั้นตอนนี้

sudo apt-get install python3-dev python3.10-dev python3-setuptools python3-pip python3-distutils

การติดตั้งสภาพแวดล้อมเสมือนจริงของ Python

สภาพแวดล้อมเสมือนจริงช่วยในการจัดการความขึ้นต่อกันของสารอาหารสำหรับซอฟต์แวร์หนึ่งในสถานที่หนึ่งโดยไม่ต้องแทรกรวมกับส่วนอื่น ๆ ในคอมพิวเตอร์หรือเซิร์ฟเวอร์ที่ซอฟต์แวร์กำลังทำงานอยู่

sudo apt-get install python3.10-venv

ติดตั้งซอฟต์แวร์ Properties Common

Software Properties Common จะช่วยในการจัดการคลังข้อมูล

sudo apt-get install software-properties-common

ติดตั้ง MariaDB

ERPNext ถูกสร้างให้ทำงานโดยความเข้าใจแล้วบน MariaDB ทีมกำลังทำงานเพื่อให้สามารถทำงานบน PostgreSQL ได้เช่นกัน แต่การทำงานนี้ยังไม่พร้อมใช้งานในขณะนี้

sudo apt install mariadb-server mariadb-client

ติดตั้งเซิร์ฟเวอร์ Redis

sudo apt-get install redis-server

ติดตั้งแพ็คเกจอื่น ๆ

ฟังก์ชันของ ERPNext ยังขึ้นอยู่กับแพ็คเกจอื่น ๆ ที่เราจะติดตั้งในขั้นตอนนี้ ซึ่งจะโหลดแบบอักษร เอกสาร PDF และทรัพยากรอื่น ๆ ไปยังอินสแตนซ์ของเรา

sudo apt-get install xvfb libfontconfig wkhtmltopdf
sudo apt-get install libmysqlclient-dev

กำหนดค่าเซิร์ฟเวอร์ MySQL

การตั้งค่าเซิร์ฟเวอร์

sudo mysql_secure_installation

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

  • Enter current password for root: (Enter your SSH root user password)
  • Switch to unix_socket authentication [Y/n]: Y
  • Change the root password? [Y/n]: Y
    It will ask you to set new MySQL root password at this step. This can be different from the SSH root user password.
  • Remove anonymous users? [Y/n] Y
  • Disallow root login remotely? [Y/n]: N
    This is set as N because we might want to access the database from a remote server for using business analytics software like Metabase / PowerBI / Tableau, etc.
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

การแก้ไขไฟล์กำหนดค่า MySQL ค่าเริ่มต้น

sudo nano /etc/mysql/my.cnf

เพิ่มบล็อกโค้ดต่อไปนี้เข้าไปโดยเหมือนเดิม:

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

รีสตาร์ทเซิร์ฟเวอร์ MySQL

sudo service mysql restart

ติดตั้ง CURL, Node, NPM, และ Yarn

ติดตั้ง CURL

sudo apt install curl

ติดตั้ง Node

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

source ~/.profile

nvm install 18

คัดลอกทีละแถว

ติดตั้ง NPM

sudo apt-get install npm

ติดตั้ง Yarn

sudo npm install -g yarn

ติดตั้ง Frappe Bench

sudo pip3 install frappe-bench

เริ่มต้น Frappe Bench

bench init --frappe-branch version-15 frappe-bench

เปลี่ยนไดเร็กทอรีเข้าไปในไดเร็กทอรีของ Frappe

cd frappe-bench

เปลี่ยนสิทธิ์ของไดเร็กทอรีผู้ใช้

การทำนี้จะให้ผู้ใช้ bench มีสิทธิ์ในการดำเนินการในไดเร็กทอรีหลัก

chmod -R o+rx /home/[frappe-user]

สร้างเว็บไซต์ใหม่

เว็บไซต์เป็นข้อกำหนดใน ERPNext, Frappe และแอปอื่น ๆ ที่เราจะต้องติดตั้ง เราจะสร้างเว็บไซต์ในขั้นตอนนี้

bench new-site [site-name]

แนะนำตัวอย่าง

bench new-site familyazza.com

ติดตั้ง ERPNext และแอปอื่น ๆ

ดาวน์โหลดแอปทั้งหมดที่เราต้องการติดตั้ง แอปแรกที่เราจะดาวน์โหลดคือแอปการชำระเงิน แอปนี้จำเป็นตอนกำลังติดตั้ง ERPNext

bench get-app payments

ต่อไปเราจะดาวน์โหลดแอป ERPNext

bench get-app --branch version-15 erpnext

ดาวน์โหลดแอปใดก็ได้ที่คุณสนใจในรูปแบบเดียวกัน เช่นหากคุณต้องการที่จะติดตั้งแอปทรัพยากรมนุษย์ ใช้คำสั่งต่อไปนี้:

bench get-app hrms

ติดตั้งแอปทั้งหมดในเว็บไซต์ของเรา

bench --site [site-name] install-app erpnext

ติดตั้งแอปอื่น ๆ ทั้งหมดที่คุณดาวน์โหลดในลักษณะเดียวกัน ตัวอย่างเช่น หากคุณดาวน์โหลดแอปทรัพยากรมนุษย์ ใช้คำสั่งด้านล่างนี้เพื่อติดตั้ง:

bench --site [site-name] install-app hrms

เราได้ติดตั้ง ERPNext เวอร์ชัน 15 บน Ubuntu 22.04 สำเร็จแล้ว คุณสามารถเริ่มเซิร์ฟเวอร์ได้โดยใช้คำสั่งด้านล่างนี้:

bench use [site-name]
bench start

หากคุณไม่มีอินสแตนซ์ ERPNext อื่นที่กำลังทำงานบนเซิร์ฟเวอร์เดียวกัน ERPNext จะเริ่มทำงานที่พอร์ต 8000 หากคุณเข้าไปที่ [YOUR SERVER IP:8000] คุณควรจะสามารถเห็น ERPNext เวอร์ชัน 15 ที่กำลังทำงาน

โปรดทราบว่าอินสแตนซ์ที่ทำงานในโหมดพัฒนา เช่นที่เราเพิ่งตั้งค่า จะไม่เริ่มทำงานเมื่อคุณรีสตาร์ทเซิร์ฟเวอร์ คุณจะต้องเรียกใช้คำสั่ง bench start ทุกครั้งเมื่อเซิร์ฟเวอร์รีสตาร์ท

ในขั้นตอนด้านล่างนี้ เราจะเรียนรู้วิธีการปรับใช้โหมดผลิต (production mode)

การตั้งค่า ERPNext สำหรับการใช้งานจริง (Production)

เปิดใช้งาน Scheduler

bench --site [site-name] enable-scheduler

ปิดใช้งานโหมดการบำรุงรักษา

bench --site [site-name] set-maintenance-mode off

ตั้งค่าการใช้งานในโหมด config

sudo bench setup production [frappe-user]

ตั้งค่า NGINX เพื่อใช้การเปลี่ยนแปลง

bench setup nginx

รีสตาร์ท Supervisor และเริ่มโหมด config

sudo supervisorctl restart all
sudo bench setup production [frappe-user]

จบขั้นตอนการติดตั้งไว้แต่เพียงเท่านี้ หากมีข้อสงสัย ติดต่อผ่านคอมเม้นไว้นะครับเดี่ยวจะตอบกลับ

หากมีการแจ้งให้บันทึกไฟล์การกำหนดค่าใหม่/ที่มีอยู่ ตอบด้วย Y

เมื่อการตั้งค่านี้เสร็จสมบูรณ์ อินสแตนซ์ของคุณจะอยู่ในโหมดผลิตและสามารถเข้าถึงได้โดยใช้ IP ของคุณโดยไม่ต้องใช้พอร์ต

นอกจากนี้ยังหมายความว่าอินสแตนซ์ของคุณจะเริ่มทำงานโดยอัตโนมัติแม้ในกรณีที่คุณรีสตาร์ทเซิร์ฟเวอร์

ขอให้โชคดี! 🙂