웹사이트 검색

CentOS 8에 Odoo ERP 13을 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. Odoo 사용자 만들기
  4. PostgreSQL 설치 및 구성
  5. Wkhtmltopdf 설치
  6. Odoo 13 설치 및 구성
  7. Odoo 13용 Systemd 서비스 파일 생성
  8. Odoo 13용 역방향 프록시로 Nginx 구성\n
  9. 방화벽 구성\n
  10. Odoo 13 웹 인터페이스 액세스
  11. 결론

Odoo는 고객 관계 관리(CRM), 판매 파이프라인, 프로젝트 관리, 제조, 송장 발행, 회계, 전자 상거래 등을 포함한 광범위한 비즈니스 응용 프로그램을 제공하는 가장 인기 있는 무료 오픈 소스 ERP 소프트웨어입니다. 모든 비즈니스에서 ERP를 유지 관리하는 데 도움이 되는 완벽한 기능을 갖춘 웹 기반 애플리케이션입니다. Odoo에는 30개의 핵심 모듈과 4500개 이상의 커뮤니티 생성 모듈이 함께 제공되어 작은 상점에서 기업 수준의 회사로 맞춤화하는 데 도움이 됩니다.

이 튜토리얼에서는 CentOS 8 서버에서 Nginx를 리버스 프록시로 사용하여 Odoo 13을 설치하고 구성하는 방법을 배웁니다.

요구 사항

  • 최소 2GB의 RAM이 있는 CentOS 8을 실행하는 서버.\n
  • 서버 IP를 가리키는 유효한 도메인 이름입니다. 이 튜토리얼에서는 exmaple.com 도메인을 사용합니다..\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

먼저 시스템을 업데이트하고 다음 명령을 사용하여 EPEL 저장소를 설치합니다.

dnf update
dnf install epel-release

다음으로 시스템에 Odoo를 구축하는 데 필요한 몇 가지 도구와 종속 항목을 설치해야 합니다.

다음 명령으로 모두 설치할 수 있습니다.

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

Odoo 사용자 만들기

다음으로 다음 명령을 사용하여 이름이 odoo이고 홈 디렉토리가 /opt/odoo인 새 시스템 사용자를 생성해야 합니다.

useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

완료되면 다음 단계로 진행할 수 있습니다.

PostgreSQL 설치 및 구성

Odoo는 PostgreSQL을 사용하여 데이터를 저장합니다. 따라서 서버에 PostgreSQL을 설치해야 합니다. 다음 명령으로 설치할 수 있습니다.

dnf install postgresql postgresql-server postgresql-contrib

설치가 완료되면 다음 명령을 사용하여 데이터베이스를 초기화합니다.

/usr/bin/postgresql-setup initdb

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

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

그런 다음 PostgreSQL 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 후 시작되도록 활성화합니다.

systemctl start postgresql
systemctl enable postgresql

이제 다음 명령을 사용하여 PostgreSQL을 확인할 수 있습니다.

systemctl status postgresql

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

? postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
  Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 31808 (postmaster)
    Tasks: 8 (limit: 12552)
   Memory: 16.5M
   CGroup: /system.slice/postgresql.service
           ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??31809 postgres: logger process   
           ??31811 postgres: checkpointer process   
           ??31812 postgres: writer process   
           ??31813 postgres: wal writer process   
           ??31814 postgres: autovacuum launcher process   
           ??31815 postgres: stats collector process   
           ??31816 postgres: bgworker: logical replication launcher   

다음으로 아래와 같이 시스템 사용자와 동일한 이름으로 새 PostgreSQL 사용자를 생성해야 합니다.

su - postgres -c "createuser -s odoo"

Wkhtmltopdf 설치

다음으로 Odoo가 PDF 보고서를 인쇄할 수 있도록 시스템에 wkhtmltopdf 도구를 설치해야 합니다. 다음 명령으로 설치할 수 있습니다.

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

설치가 완료되면 다음 단계로 진행할 수 있습니다.

Odoo 13 설치 및 구성

먼저 다음 명령을 사용하여 Odoo 사용자로 전환합니다.

su - odoo

다음으로 git 명령을 사용하여 Git 리포지토리에서 최신 버전의 Odoo 13을 다운로드합니다.

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13

다음으로 다음 명령을 사용하여 Odoo 13 인스턴스에 대한 새 가상 환경을 만듭니다.

cd /opt/odoo
python3 -m venv odoo13-venv

그런 다음 다음 명령을 사용하여 가상 환경을 활성화합니다.

source odoo13-venv/bin/activate

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

(odoo13-venv) [ ~]$

다음으로 다음 명령을 사용하여 Odoo 13에 필요한 모든 Python 모듈을 설치합니다.

pip3 install -r odoo13/requirements.txt

필요한 모든 모듈이 설치되면 다음 명령을 사용하여 가상 환경을 비활성화합니다.

deactivate

마지막으로 다음 명령을 사용하여 Odoo 사용자를 종료합니다.

exit

다음으로 Odoo 사용자 지정 모듈 및 Odoo 로그를 저장할 새 디렉터리를 만듭니다.

mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log

다음으로 다음 명령을 사용하여 두 디렉토리의 소유권을 odoo 사용자로 변경합니다.

chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/

다음으로 다음 명령을 사용하여 Odoo 13용 새 구성 파일을 만듭니다.

nano /etc/odoo.conf

다음 줄을 추가합니다.

[options]
admin_passwd = 
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons

완료되면 파일을 저장하고 닫습니다.

Odoo 13용 Systemd 서비스 파일 생성

다음으로 Odoo 서비스를 관리하기 위해 Odoo 13용 새 시스템 단위 파일을 생성해야 합니다.

다음 명령으로 만들 수 있습니다.

nano /etc/systemd/system/odoo13.service

다음 줄을 추가합니다.

[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 systemd 데몬을 다시 로드합니다.

systemctl daemon-reload

다음으로 Odoo 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 후 시작하도록 활성화합니다.

systemctl start odoo13
systemctl enable odoo13

다음 명령을 사용하여 Odoo 상태를 확인할 수도 있습니다.

systemctl status odoo13

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

? odoo13.service - Odoo13
   Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
 Main PID: 17022 (python3)
    Tasks: 4 (limit: 12552)
   Memory: 63.7M
   CGroup: /system.slice/odoo13.service
           ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.

기본적으로 Odoo는 포트 8069에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

netstat -plntu | grep 8069

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

tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN      17022/python3

Nginx를 Odoo 13용 리버스 프록시로 구성

다음으로 Nginx를 Odoo 13 인스턴스용 리버스 프록시로 설치하고 구성해야 합니다.

먼저 다음 명령을 사용하여 Nginx 웹 서버를 설치합니다.

dnf install nginx

설치가 완료되면 다음 명령을 사용하여 새 가상 호스트 구성 파일을 만듭니다.

nano /etc/nginx/conf.d/odoo13.conf

다음 줄을 추가합니다.

upstream odoo {
 server 127.0.0.1:8069;
}
server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/odoo13.access.log;
    error_log /var/log/nginx/odoo13.error.log;

        location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;


        proxy_redirect off;
        proxy_pass http://odoo;
    }

location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

완료되면 파일을 저장하고 닫습니다. 그런 다음 Nginx 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 후 시작되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

다음 명령을 사용하여 Nginx 서비스의 상태를 확인할 수 있습니다.

systemctl status nginx

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

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
  Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 17245 (nginx)
    Tasks: 3 (limit: 12552)
   Memory: 5.4M
   CGroup: /system.slice/nginx.service
           ??17245 nginx: master process /usr/sbin/nginx
           ??17246 nginx: worker process
           ??17247 nginx: worker process

Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

방화벽 구성

다음으로 원격 시스템에서 Odoo 13 인스턴스에 액세스하려면 방화벽을 통해 Nginx 서비스를 허용해야 합니다.

다음 명령을 실행하여 방화벽을 통해 Nginx 서비스를 허용할 수 있습니다.

firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload

기본적으로 SELinux는 CentOS 8에서 활성화되어 있습니다. 따라서 SELinux를 통해 HTTP를 허용해야 합니다. 다음 명령으로 허용할 수 있습니다.

setsebool -P httpd_can_network_connect on

Odoo 13 웹 인터페이스에 액세스

이제 Odoo 13이 설치 및 구성되었습니다. Odoo 13 웹 인터페이스에 액세스할 시간입니다.

웹 브라우저를 열고 URL http://example.com을 입력합니다. 다음 페이지로 리디렉션됩니다.

이제 마스터 비밀번호, 데이터베이스 이름, 이메일, 비밀번호, 국가를 제공하고 데이터베이스 생성 버튼을 클릭하십시오. Odoo 13 관리 페이지로 리디렉션됩니다.

결론

위 튜토리얼에서는 CentOS 8 서버에 Odoo 13을 설치하고 구성하는 방법을 배웠습니다. 또한 Nginx를 Odoo 13용 리버스 프록시로 구성하는 방법도 배웠습니다. 이제 비즈니스 요구 사항에 따라 Odoo 13 인스턴스를 사용자 지정할 수 있습니다.