Ubuntu 20.04에 Odoo 14 설치 방법

Ubuntu 20.04에 Odoo 14 설치 방법

2022-05-17 last update

26 minutes reading odoo pip nginx postgresql ubuntu proxy
Odoo는 회사가 업무를 관리하고 운영하는 데 도움을 줄 수 있는 유행하는 오픈소스 비즈니스 응용 프로그램이다.그것은 CRM, 전자상거래, 사이트 건설, 비용 계산, 회계, 제조, 창고, 프로젝트 관리, 재고 등 광범위한 응용 프로그램을 포함하는데, 이 모든 것은 빈틈없이 통합된 것이다.Odoo
다른 방식으로 설치할 수 있는데, 구체적으로는 용례와 사용 가능한 기술에 달려 있다.Odoo를 설치하는 가장 간단하고 빠른 방법은 공식 소프트웨어를 사용하는 것이다Odoo APT
창고.가상 환경에 Odoo를 설치하거나 Docker로 배포
응용 프로그램을 더 잘 제어하고 같은 시스템에서 여러 개의 Odoo 인스턴스를 실행할 수 있도록 하는 컨테이너본고는 Ubuntu 20.04의 Python 가상 환경에 Odoo 14를 설치하고 배치하는 방법을 설명한다.공식 GitHub 저장소에서 Odoo를 다운로드하고 Nginx를 역방향 에이전트로 사용합니다.

설치 필수조건

다음 명령 설치Git
, Pip
, Node.js
, [구축에 필요한 도구](https:///post/how-to-install-gcc-on-ubuntu-20-04/Odoo 의존항:
sudo apt updatesudo apt install git python3-pip build-essential wget python3-dev python3-venv \    python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev \    python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev \    libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev \    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

시스템 사용자 생성

는 보안 위험이 존재하기 때문에 루트 사용자에서 Odoo를 실행할 수 없습니다.우리는 create a new system user
Odoo 서비스를 실행하는 홈 디렉토리/opt/odoo14를 그룹화합니다.이 작업을 수행하려면 다음 명령을 입력합니다.
sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14
같은 이름의 PostgreSQL 사용자를 만들면 원하는 이름을 지정할 수 있습니다.

PostgreSQL 설치 및 구성

Odoo는 PostgreSQL을 데이터베이스 백엔드로 사용합니다.PostgreSQL
표준 Ubuntu 저장소에 포함됩니다.설치하려면
sudo apt install postgresql
설치가 완료되면 이전에 만든 시스템 사용자와 이름이 같은 PostgreSQL 사용자를 만듭니다.이 예에서 odoo14:
sudo su - postgres -c "createuser -s odoo14"

wkhtmltopdf 설치

wkhtmltopdf는 HTML 페이지를 PDF와 각종 이미지 형식으로 보여주는 소스 명령행 도구입니다.PDF 보고서를 Odoo에서 인쇄하려면 패키지wkhtmltox를 설치해야 합니다.Odoo의 추천 버전은 version0.12.5입니다. Github에서 다운로드할 수 있습니다.
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
에서 파일을 다운로드한 후:
sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb

Odoo 14 설치 및 구성

를 입력하여 설치할 수 있습니다. 저희는 독립된 Python virtual environment의 원본 코드에서 Odoo를 설치할 것입니다.
. 첫째, change to user
컴파일하는 동안: (필요하면 ODO91453) 가상 환경(필요하면 ODO91453)에 모든 파이톤 모듈을 설치합니다. (필요하면 ODO91453) 가상 환경에서(필요하면 ODO91453) 설치:완료되면 다음을 입력하여:
sudo su - odoo14
Create a new directory 비활성화 환경
제3자 플러그인을 포함합니다: (adsbyGoogle=window.adsbyGoogle | | []).추진({});
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
이 디렉터리를 Installing Prerequisites 매개 변수에 추가합니다.이 매개 변수는 디렉터리 목록을 정의합니다. 이 목록에서 검색 모듈을 찾을 수 있습니다.sudo 사용자로 전환:
cd /opt/odoo14python3 -m venv odoo-venv
다음 내용을 포함하는 프로필을 만듭니다:
source odoo-venv/bin/activate
/etc/odoo14.conf
pip3 install wheelpip3 install -r odoo/requirements.txt
addons_path를 더 안전하게 변경하는 것을 잊지 마세요.

Systemd 단위 파일 만들기

켜기text editormy_admin_passwd라는 서비스 단위 파일을 만듭니다. 그 내용은 다음과 같습니다.
deactivate
/etc/systemd/system/odoo14.서비스
mkdir /opt/odoo14/odoo-custom-addons
알림 시스템d에 새로운 단원 파일이 존재합니다.
exit
Odoo 서비스를 시작하고 실행을 통해 안내할 때 시작합니다.
sudo nano /etc/odoo14.conf
서비스 상태를 검증합니다.
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
출력은 다음과 같습니다. Odoo 서비스가 활성 상태이고 실행 중임을 나타냅니다.
sudo nano /etc/systemd/system/odoo14.service
Odoo 서비스 기록의 메시지를 보십시오.다음 명령을 사용하십시오:
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

설치 테스트

브라우저를 열고 입력하십시오: odoo14.service 설치가 성공하면 다음과 같은 내용의 화면이 나타납니다:

Nginx를 SSL 종료 에이전트로 구성

기본 Odoo 웹 서버는 HTTP를 통해 데이터 서비스를 제공합니다.Odoo 배치를 더욱 안전하게 하기 위해 Nginx를 SSL 종료 에이전트로 설정하고 HTTPS를 통해 데이터에 서비스를 제공합니다.SSL 종료 프록시는 SSL 암호화/복호화를 처리하는 프록시 서버입니다.이것은 프록시 종료 (Nginx) 가 전송된 TLS 연결 (HTTPS) 을 처리하고 복호화하며 암호화되지 않은 요청을 내부 서비스 (Odoo) 에 전달한다는 것을 의미한다.Nginx와 Odoo 사이의 통신은 암호화되지 않습니다(HTTP).사용reverse proxy
로드 밸런싱, SSL 종료, 캐시, 압축, 정적 서비스 컨텐츠 등과 같은 다양한 이점을 제공합니다.이 섹션을 계속하기 전에 공용 서버 IP에 대한 도메인 이름
  • 이 다음 사전 요구 사항을 충족하는지 확인하십시오.우리는 사용할 것이다http://<your_domain_or_IP_address>:8069.
  • Nginx installed
  • 도메인의 SSL 인증서당신은 install a free Let’s Encrypt SSL certificate
  • 텍스트 편집기를 열고 도메인 서버 블록을 만들거나 편집합니다.
    sudo systemctl daemon-reload
    SSL 종료 설정 HTTP to HTTPS redirection
    , WWWW에서 비 WWW로 리디렉션, 정적 파일 캐시 및 설정GZip
    압축/etc/nginx/sites enabled/example.일반 도메인 이름 형식.conf
    sudo systemctl enable --now odoo14
    교체 예시를 잊지 마세요.com은 Odoo 도메인에 연결하고 SSL 인증서 파일의 올바른 경로를 설정합니다.
    이 구성에 사용된 코드 세그먼트는 this guide에 생성됩니다.
    . 완료 후 restart the Nginx service
    :
    sudo systemctl status odoo14
    다음에 오도에게 에이전트를 사용하라고 알려야 합니다.이를 위해 프로필을 열고 다음 줄을 추가합니다:/etc/odoo 14.conf
    ● odoo14.service - Odoo14
         Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
         Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago
    ...
    
    변경 사항을 적용하기 위해 Odoo 서비스를 다시 시작합니다.
    sudo journalctl -u odoo14
    이 때, 역방향 에이전트가 설정되어 있습니다. example.com 에서 Odoo 실례에 접근할 수 있습니다.

    바인딩 인터페이스 변경

    이 절차는 선택할 수 있지만 좋은 안전 실천이다.기본적으로 Odoo 서버는 모든 인터페이스의 포트https://example.com를 수신합니다.Odoo 실례에 대한 직접 접근을 사용하지 않으려면 모든 공공 인터페이스의 포트 8069 를 막거나, Odoo가 로컬 인터페이스에서만 탐지하도록 강요할 수 있습니다.우리는 오두를 8069 에서만 감청하도록 설정할 것이다.설정을 열고 파일 끝에 다음 두 줄을 추가합니다:/etc/odoo 14.conf
    sudo nano /etc/nginx/sites-enabled/example.com.conf
    는 변경 사항을 적용하기 위해 프로필을 저장하고 Odoo 서버를 다시 시작합니다.
    # Odoo servers
    upstream odoo {
     server 127.0.0.1:8069;
    }
    
    upstream odoochat {
     server 127.0.0.1:8072;
    }
    
    # HTTP -> HTTPS
    server {
        listen 80;
        server_name www.example.com example.com;
    
        include snippets/letsencrypt.conf;
        return 301 https://example.com$request_uri;
    }
    
    # WWW -> NON WWW
    server {
        listen 443 ssl http2;
        server_name www.example.com;
    
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
        include snippets/ssl.conf;
        include snippets/letsencrypt.conf;
    
        return 301 https://example.com$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        server_name example.com;
    
        proxy_read_timeout 720s;
        proxy_connect_timeout 720s;
        proxy_send_timeout 720s;
    
        # Proxy headers
        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;
    
        # SSL parameters
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
        include snippets/ssl.conf;
        include snippets/letsencrypt.conf;
    
        # log files
        access_log /var/log/nginx/odoo.access.log;
        error_log /var/log/nginx/odoo.error.log;
    
        # Handle longpoll requests
        location /longpolling {
            proxy_pass http://odoochat;
        }
    
        # Handle / requests
        location / {
           proxy_redirect off;
           proxy_pass http://odoo;
        }
    
        # Cache static files
        location ~* /web/static/ {
            proxy_cache_valid 200 90m;
            proxy_buffering on;
            expires 864000;
            proxy_pass http://odoo;
        }
    
        # Gzip
        gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
        gzip on;
    }
    

    다중 처리 사용

    기본적으로 Odoo는 다중 루틴 모드에서 작동합니다.다처리 자원의 사용률이 높아짐에 따라 다처리 배치를 생산에 활용하여 시스템의 안정성을 높이는 것을 권장한다.다중 처리를 사용하려면 Odoo 구성을 편집하고 0이 아닌 작업 프로세스를 설정해야 합니다.직원 수는 시스템의 CPU 코어 수와 사용 가능한 RAM 메모리를 기준으로 계산됩니다.이 관원에 따르면Odoo documentation
    , 근로자 수와 요구를 계산하기 위해RAM memory
    크기는 다음과 같은 공식과 가설을 사용할 수 있습니다. 노동자 수 계산(adsbyGoogle=window.adsbyGoogle|||[]).추진({});
  • 이론 최대 작업 스레드 수 = (시스템 CPU*2)+1
  • 1개 작업 스레드 서비스 가능 ~ = 6개 동시 사용자
  • 크론 작업 스레드도 CPU
  • RAM 메모리 크기 계산
  • 필요약 1GB의 RAM을 재요청하고 약 150MB의 RAM
  • 에 필요한 RAM=127.0.0.1
  • 을 재요청합니다. 시스템에 CPU가 얼마나 있는지 모르시면 아래 number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) ) 를 사용하십시오.
    명령:
    sudo systemctl restart nginx
    시스템이 4개의 CPU 핵, 8GB의 RAM 메모리, 30개의 동시 Odoo 사용자가 있다고 가정하십시오.
  • grep(5는 이론적으로 필요한 직원 수)
  • 30 users / 6 = **5**(9는 이론적으로 가장 큰 직원 수)
  • 에 따라 상기 계산에 따라 당신은 5명의 직원 + 1명의cron 직원으로 총 6명의 직원을 사용할 수 있습니다.작업자 수에 따라 RAM 메모리 소모량을 계산한다:
  • (4 * 2) + 1 = **9**
  • 계산에 따르면 Odoo를 설치하려면 약 2GB의 RAM이 필요하다.다중 처리 모드로 전환하려면 설정 파일을 열고 계산값을 추가하십시오:/etc/odoo14.conf
    proxy_mode = True
    
    는 변경 사항을 적용하기 위해 Odoo 서비스를 다시 시작합니다.
    sudo systemctl restart odoo14
    시스템 자원의 나머지 부분은 이 시스템에서 실행되는 다른 서비스에 사용됩니다.이 설명서에서 Odoo는 PostgreSQL 및 Nginx와 함께 같은 서버에 설치됩니다.설정에 따라 서버에서 다른 서비스가 실행될 수도 있습니다.

    결론

    본고는 Nginx를 역방향 에이전트로 사용하는 Python 가상 환경에서 Ubuntu 20.04에 Odoo 14를 설치하는 과정을 소개한다.또한 프로덕션 환경에 멀티 프로세싱을 활성화하고 Odoo를 최적화하는 방법을 보여줍니다.우리 강좌에 대해서(우리 강좌도 볼 수 있다)
    .