웹사이트 검색

Ubuntu 18.04 LTS에 ERPNext를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)

이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. 필수 패키지 설치\n
  4. Redis 및 Node.js 설치
  5. MariaDB 구성
  6. ERPNext 설치
  7. ERPNext 액세스

ERPNext는 전 세계 수천 개의 회사에서 사용하는 무료 오픈 소스의 현대적이고 사용하기 쉬운 비즈니스 관리 소프트웨어입니다. 소매, 무역, 서비스, 제조, 인사, 비영리 및 기타 부문을 지원하는 매우 간단한 ERP 플랫폼입니다. Frappe 프레임워크 위에 Python으로 작성된 강력하고 완전한 기능을 갖춘 ERP 시스템입니다. 프런트 엔드에 Node.js를 사용하고 데이터를 저장하기 위해 MariaDB를 사용합니다. ERPNext는 일상적인 작업을 수행하기 위한 웹 기반 인터페이스를 제공합니다. ERPNext는 오피스 제품군 통합과 함께 임베디드 보고 시스템을 제공합니다.

이 튜토리얼에서는 Ubuntu 18.04 LTS 서버에 ERPNext를 설치하고 구성하는 방법을 배웁니다.

요구 사항

  • Ubuntu 18.04를 실행하는 서버.\n
  • 서버에 설정된 sudo 권한을 가진 루트가 아닌 사용자.\n

시작하기

먼저 시스템을 최신 버전으로 업데이트해야 합니다. 다음 명령을 실행하여 수행할 수 있습니다.

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

시스템이 업데이트되면 ERPNext에 대한 사용자를 생성해야 합니다.

다음 명령으로 수행할 수 있습니다.

sudo useradd -m -s /bin/bash erpnext
sudo passwd erpnext

다음으로 다음 명령을 사용하여 ERPNext 사용자에게 sudo 권한을 부여합니다.

sudo usermod -aG sudo erpnext

그런 다음 ERPNext 사용자에 로그인하고 다음 명령을 사용하여 환경 변수를 설정합니다.

su - erpnext
nano .bashrc

다음 줄을 추가합니다.

PATH=$PATH:~/.local/bin/

완료되면 파일을 저장하고 닫습니다. 그런 다음 시스템을 다시 시작하여 모든 변경 사항을 적용하십시오.

필수 패키지 설치

먼저 erpnext 사용자로 시스템에 로그인하고 ERPNext에 필요한 일부 종속성을 시스템에 설치합니다.

sudo apt-get install libffi-dev python-pip python-dev libssl-dev wkhtmltopdf -y

다음으로 다음 명령을 사용하여 Nginx 및 MariaDB 서버를 설치합니다.

sudo apt-get install nginx mariadb-server -y

설치가 완료되면 50-server.cnf 파일을 일부 변경해야 합니다. 다음 명령으로 수행할 수 있습니다.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

다음과 같이 변경합니다.

[mysqld]
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

파일을 저장하고 닫습니다. 그런 다음 MariaDB 서비스를 다시 시작하여 모든 변경 사항을 적용합니다.

sudo systemctl restart mariadb

이제 다음 명령을 사용하여 MariaDB 서버의 상태를 확인할 수 있습니다.

sudo systemctl status mariadb

다음 출력이 표시되어야 합니다.

? mariadb.service - MariaDB 10.1.38 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-02-16 06:26:48 UTC; 2h 38min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 4640 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 4636 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 4505 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-
  Process: 4503 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 4482 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 4607 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1111)
   CGroup: /system.slice/mariadb.service
           ??4607 /usr/sbin/mysqld

Aug 16 06:26:47 ubuntu1804 systemd[1]: Starting MariaDB 10.1.38 database server...
Aug 16 06:26:48 ubuntu1804 mysqld[4607]: 2019-02-16  6:26:48 140715015396480 [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0ubuntu0.18.04.1) starting
Aug 16 06:26:48 ubuntu1804 systemd[1]: Started MariaDB 10.1.38 database server.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4642]: Upgrading MySQL tables if necessary.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysql' as: /usr/bin/mysql
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: This installation of MySQL is already upgraded to 10.1.38-MariaDB, use --force if you still n
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4677]: Checking for insecure root accounts.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4681]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Redis 및 Node.js 설치

다음으로 시스템에 Redis 및 Node.js를 설치해야 합니다. 다음 명령을 실행하여 설치할 수 있습니다.

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
sudo apt-get install gcc g++ make -y
sudo apt-get install nodejs redis-server -y
sudo npm install -g yarn

MariaDB 구성

기본적으로 MariaDB 설치는 보안되지 않으므로 먼저 보안을 설정해야 합니다. 다음 명령으로 보안을 유지할 수 있습니다.

sudo mysql_secure_installation

아래와 같이 모든 질문에 답하십시오.

    Enter current password for root (enter for none):
    Set root password? [Y/n]: N
    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

MariaDB가 보호되면 다음 명령을 사용하여 MariaDB 셸에 로그인합니다.

sudo mysql -u root -p

프롬프트가 표시되면 루트 비밀번호를 입력하십시오. 그런 다음 다음 명령을 사용하여 ERPNext에 대한 데이터베이스 및 사용자를 생성합니다.

MariaDB [(none)]> create database erpnextdb;
MariaDB [(none)]> create user identified by 'password';

다음으로 다음 명령을 사용하여 ERPNext에 모든 권한을 부여합니다.

MariaDB [(none)]> GRANT ALL ON erpnextdb.* TO 'erpnextuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> GRANT all privileges on *.* to 'root'@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

다음으로 권한을 플러시하고 다음 명령을 사용하여 MariaDB 셸을 종료합니다.

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

ERPNext 설치

먼저 ERPNext에 대한 디렉터리를 생성하고 다음 명령을 사용하여 적절한 권한을 부여합니다.

sudo mkdir -p /opt/erpnext
sudo chown -R erpnext /opt/erpnext/

다음으로 디렉터리를 erpnext로 변경하고 다음 명령을 사용하여 erpnext를 설치합니다.

cd /opt/erpnext
git clone https://github.com/frappe/bench bench-repo

산출:

Cloning into 'bench-repo'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 6144 (delta 10), reused 13 (delta 5), pack-reused 6125
Receiving objects: 100% (6144/6144), 29.70 MiB | 231.00 KiB/s, done.
Resolving deltas: 100% (3924/3924), done.

다음으로 pip 명령을 사용하여 벤치를 설치합니다.

sudo pip install -e bench-repo

다음으로 frappe 프레임워크로 벤치 디렉토리를 초기화합니다.

bench init erpnext

산출:

Building frappe assets...

? Built js/print_format_v3.min.js
? Built js/dialog.min.js
? Built js/web_form.min.js
? Built js/social.min.js
? Built js/modules.min.js
? Built js/form.min.js
? Built js/list.min.js
? Built js/frappe-vue.min.js
? Built js/chat.js
? Built js/desk.min.js
? Built js/control.min.js
? Built css/frappe-rtl.css
? Built css/module.min.css
? Built css/report.min.css
? Built css/form.min.css
? Built css/list.min.css
? Built frappe/css/email.css
? Built css/web_form.css
? Built css/frappe-web.css
? Built css/desk.min.css
? Built js/frappe-web.min.js
? Built js/report.min.js
?  Done in 31.313s
Done in 34.43s.
INFO:bench.utils:setting up backups
no crontab for erpnext
INFO:bench.utils:setting up auto update
no crontab for erpnext
Bench erpnext initialized

다음으로 디렉터리를 erpnext로 변경하고 다음 명령을 사용하여 node1.example.com 도메인에 대한 새 사이트를 만듭니다.

bench new-site node1.example.com

아래와 같이 MySQL 루트 암호를 제공하라는 메시지가 표시됩니다.

MySQL root password:

루트 비밀번호를 제공하고 Enter를 누르십시오. 다음 출력이 표시되어야 합니다.

Installing frappe...
Updating DocTypes for frappe        : [========================================]
Updating country info               : [========================================]
Set Administrator password: 
Re-enter Administrator password: 
*** Scheduler is disabled ***

그런 다음 다음 명령을 사용하여 erpnext에 적절한 권한을 제공합니다.

sudo chown -R erpnext:erpnext /opt/erpnext/erpnext

마지막으로 다음 명령으로 서버를 시작합니다.

bench start

다음 출력이 표시되어야 합니다.

06:34:02 web.1            |  * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
06:34:02 web.1            |  * Restarting with inotify reloader
06:34:03 watch.1          | yarn run v1.13.0
06:34:03 watch.1          | $ node rollup/watch.js
06:34:03 web.1            |  * Debugger is active!
06:34:04 web.1            |  * Debugger PIN: 159-307-235
06:34:13 watch.1          | 
06:34:13 watch.1          | Rollup Watcher Started
06:34:13 watch.1          | 
06:34:13 watch.1          | Watching...
06:34:15 watch.1          | Rebuilding frappe-web.css

ERPNext에 액세스

이제 ERPNext가 설치되어 포트 8000에서 수신 대기합니다. 웹 브라우저를 열고 URL http://node1.example.com:8000을 입력합니다. 다음 페이지로 리디렉션됩니다.

이제 관리자로 사용자 이름을 제공하고 설정 중에 제공한 비밀번호를 제공하십시오. 그런 다음 로그인 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

다음으로 언어를 선택하고 다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

다음으로 국가를 선택하고 다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

다음으로 전체 이름과 이메일 주소를 제공하십시오. 그런 다음 설정 완료 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

축하합니다! Ubuntu 18.04 서버에 ERPNext를 성공적으로 설치하고 구성했습니다. 이제 프로덕션 환경에서 ERPNext를 쉽게 설정할 수 있습니다.