ERPNext 설치 · 6 min read · Oct 12, 2025
Ubuntu 18.04 LTS에 ERPNext 설치하는 방법

ERPNext는 전 세계 수천 개의 회사에서 사용되는 무료, 오픈 소스, 현대적이고 사용하기 쉬운 비즈니스 관리 소프트웨어입니다. 소매, 거래, 서비스, 제조, 인사, 비영리 및 기타 분야를 지원하는 매우 간단한 ERP 플랫폼입니다. Python으로 작성된 강력하고 완전한 기능을 갖춘 ERP 시스템으로, Frappe 프레임워크 위에서 작동합니다. 프론트 엔드에는 Node.js를 사용하고 데이터를 저장하기 위해 MariaDB를 사용합니다. ERPNext는 일상적인 작업을 수행하기 위한 웹 기반 인터페이스를 제공합니다. ERPNext는 오피스 스위트 통합과 함께 내장된 보고 시스템을 제공합니다.
이 튜토리얼에서는 Ubuntu 18.04 LTS 서버에 ERPNext를 설치하고 구성하는 방법을 배웁니다.
요구 사항
- Ubuntu 18.04를 실행하는 서버.
- 서버에 설정된 sudo 권한이 있는 비루트 사용자.
시작하기
먼저, 시스템을 최신 버전으로 업데이트해야 합니다. 다음 명령어를 실행하여 업데이트할 수 있습니다:
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 - erpnextnano .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 tablesRedis 및 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 yarnMariaDB 구성
기본적으로 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]: YMariaDB의 보안 설정이 완료되면 다음 명령어로 MariaDB 셸에 로그인합니다:
sudo mysql -u root -p프롬프트가 나타나면 루트 비밀번호를 입력합니다. 그런 다음, 다음 명령어로 ERPNext용 데이터베이스와 사용자를 생성합니다:
MariaDB [(none)]> create database erpnextdb;
MariaDB [(none)]> create user erpnextuser@localhost 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 'admin@123' 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/erpnextgit 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 명령어를 사용하여 bench를 설치합니다:
sudo pip install -e bench-repo다음으로, frappe 프레임워크로 bench 디렉토리를 초기화합니다:
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.comMySQL 루트 비밀번호를 제공하라는 메시지가 표시됩니다:
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.cssERPNext 접근
이제 ERPNext가 설치되었고 포트 8000에서 수신 대기 중입니다. 웹 브라우저를 열고 URL http://node1.example.come:8000을 입력합니다. 다음 페이지로 리디렉션됩니다:

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

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

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

다음으로, 전체 이름과 이메일 주소를 입력합니다. 그런 다음 설정 완료 버튼을 클릭합니다. 다음 페이지가 표시됩니다:

축하합니다! Ubuntu 18.04 서버에 ERPNext를 성공적으로 설치하고 구성했습니다. 이제 프로덕션 환경에서 ERPNext를 쉽게 설정할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.