Rocky、Alma、CentOS、RHEL 9|8 に Odoo EPR 17 をインストール
この記事を書いている時点で、Odoo ERP 17 は最新のバージョンであり、ビジネスプロセスを効率化するために作られた素晴らしいオープンソースのエンタープライズリソースプランニング(ERP)ソフトウェアです。Odoo ERP は、HR、CRM、在庫管理、財務、製造、販売からEコマースまで、あらゆるビジネスの課題を解決する統合アプリケーションプラットフォームを提供します。Odoo ERP では、これらすべての統合がモジュール方式で提供されており、最小限のモジュールから始め、必要に応じて追加することができます。これにより、Odoo は非常に柔軟でスケーラブルなソリューションとなっています。
Rocky Linux、AlmaLinux、CentOS、または RHEL 9/8 に Odoo ERP 17 をインストールするには、いくつかの手順に従う必要があります。
- Odoo 17を実行するために必要な依存関係のインストール
- Python仮想環境の作成
- Rocky/AlmaLinux/RHEL 9|8 における Odoo 17 のインストール
- Odooとウェブサーバーの設定
- Odooへのアクセスと使用
Odoo ERP 17 の機能については、Odoo 17 リリースノートをご覧ください
前提条件
先に進む前に、次の要件を満たす必要があります。
システム要件:
- オペレーティングシステム: Rocky、Alma、CentOS Stream、または RHEL 8/9 をインストール済み
- CPU:最低でもデュアルコアCPU(クアッドコアがあればさらに良い)。
- RAM:最低2GBのメモリ(4GB以上あればなお良い)。
- ディスク: Odoo のデータを保存するために最低 20GB の空きディスク容量が必要です。
ソフトウェア要件:
- Python:Python 3.10 以上。
- PostgreSQL:PostgreSQL 12以上。
- Node.js と npm:Node.js 12.x 以上と、アセット管理のための npm。
- Wkhtmltopdf: PDF レポートを印刷するには、特定のバージョンの wkhtmltopdf(0.12.5 または 0.12.6)が必要です。
- Nginx または Apache:リバースプロキシ用(一般的には Nginx が推奨されます)。
Odoo ERPのインストールを始めましょう。
ステップ1 – ビルド依存関係をインストールする
インストールの前にシステムを更新してください:
sudo dnf -y updateカーネルのアップデートがある場合は、先に進む前にシステムを再起動することを検討してください:
sudo reboot次に、システムに開発ツールをインストールします。
sudo dnf groupinstall -y "Development Tools"Odoo をソースから構築する際に必要になる可能性のある追加のライブラリをインストールしてください:
sudo dnf install -y vim git gcc bzip2-devel redhat-rpm-config libxslt-devel openldap-devel libjpeg-devel freetype-develステップ2 – Python 3.11 と Node.js をインストールする
Python 3.10以上をインストールする必要があります。この記事ではPython 3.11を使用します。
sudo dnf install python3.11 python3.11-devel python3.11-pipバージョンを確認して、正常にインストールされたか確認してください。
$ python3.11 --version
Python 3.11.9Node.jsもインストールしましょう。特定のバージョンはありませんが、Node.js v18を使用します。
sudo dnf module reset nodejs -y
sudo dnf module install nodejs:18 -yNode.jsのバージョン番号を確認して検証してください。
$ node --version
v18.20.2rtlcss ノードモジュールを npm を使ってインストールします:
sudo npm install -g rtlcssまた、Less と Less プラグイン Clean CSS をインストールします:
sudo npm install -g less less-plugin-clean-cssステップ3 – PostgreSQLデータベースのインストールと設定
PostgreSQL 12以降が必要です。OSのAPPStreamリポジトリで利用可能なPostgreSQL 16をインストールできます。現在のPostgreSQLモジュールをリセットしてください。
sudo dnf module -y disable postgresqlPostgreSQL 16モジュールを有効にする。
sudo dnf install -y @postgresql:16また、postgresql-develパッケージもインストールしてください。
sudo dnf install -y postgresql-develデータベースサーバーを初期化する。
sudo postgresql-setup initdbデータベースサービスを起動して有効にしてください。
sudo systemctl enable --now postgresql最後に、odoo データベースユーザーを作成します。プロンプトが表示されたら、ユーザーのパスワードを入力してください。
sudo su - postgres -c "createuser -s odoo"パスワード付きのユーザーを作成するには、次を実行してください:
sudo -u postgres createuser odoo -U postgres -dPリモートのPostgreSQLデータベースサーバーに対して、Odooが接続できるようにDBサーバーでリモート接続を有効にします。
ステップ4 – wkhtmltopdfをインストールする
Wkhtmltopdf は、Odoo が HTML を PDF やその他の画像形式に変換するために使用するオープンソースの CLI ツールで、強力な Webkit レンダリングエンジンを利用しています。これは、請求書、レポート、その他印刷可能なドキュメントの生成に必要です。
wkhtmltopdf の RPM パッケージをダウンロードしてインストールします。
- RHEL 9 ベースのシステム
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm- RHEL 8 ベースのシステム
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
インストールを検証する:
$ wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)ステップ5 – OdooのPython環境を設定する
Odooサービスを実行するための 'odoo' というユーザーを作成します。
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoovirtualenv をインストールする:
sudo pip3.11 install virtualenv作成したodooユーザーアカウントに切り替えます。
sudo su - odooOdooのGithubリポジトリをローカルにクローンします。
git clone --depth 1 --branch 17.0 --single-branch https://github.com/odoo/odoo.gitOdoo ERP のために Python の仮想環境を作成するには、virtualenv コマンドを使用します。
virtualenv odoo-venv作成した仮想環境を有効化してください。
source odoo-venv/bin/activateアクティベートした後にpipをアップグレードしてください。
pip3.11 install --upgrade pip環境に wheel Python パッケージをインストールする
pip3.11 install wheelOdoo 17 の Python 必要要件をインストールする
pip3.11 install -r odoo/requirements.txt仮想環境にインストールされているすべてのPythonパッケージを一覧表示するには、次のコマンドを実行してください。
pip3.11 listすべてのサードパーティ製アドオンを保存するディレクトリを作成します。
mkdir odoo/custom-addons仮想環境を終了する。
exitステップ6 – Odoo ERPを設定する
サンプル Odoo 設定ファイルをシステムの /etc ディレクトリにコピーしてください。
sudo cp /opt/odoo/odoo/debian/odoo.conf /etc/odoo.confodoo.conf ファイルには、Odoo が正常に動作するために必要な主要な設定が含まれています。編集するためにファイルを開いてください。
# Open with vim
sudo vim /etc/odoo.conf
# Open with nano
sudo nano /etc/odoo.conf設定を以下のように調整してください。
[options]
; This is the password that allows database operations:
admin_passwd = Str0ngAdminPasw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons, /opt/odoo/odoo/custom-addons
default_productivity_apps = True
xmlrpc_port = 8069リモートの PostgreSQL サーバーの場合、次の設定を行います:
- db_host:PostgreSQLデータベースサーバーのIPアドレス
- db_password:リモートデータベースで作成されたユーザーのパスワード
- db_user: リモートデータベースユーザーが作成されました。
ファイルに適切な権限を設定してください:
sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.confOdooのsystemdサービスを作成する。
sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo ERP System
Documentation=http://www.odoo.com
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin \
--config=/etc/odoo.conf \
--addons-path=/opt/odoo/odoo/addons/ \
--logfile /var/log/odoo/odoo-server.log
StandardOutput=journal+console
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOFlogsディレクトリを作成します。
sudo mkdir /var/log/odoo/
sudo chown -R odoo:odoo /var/log/odoo/odoo サービスを開始して有効にします。
sudo systemctl daemon-reload
sudo systemctl enable --now odoo.serviceサービスの状態が正常に動作しているか確認してください。
$ systemctl status odoo
● odoo.service - Odoo ERP System
Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-07-18 11:34:34 UTC; 21s ago
Docs: http://www.odoo.com
Main PID: 70809 (python3.11)
Tasks: 4 (limit: 48750)
Memory: 88.2M
CGroup: /system.slice/odoo.service
└─70809 /opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin --config=/etc/odoo.conf --addons-path=/opt/odoo/odoo/addons/ --logfile /var/log/odoo/odoo-server.log
Jul 18 11:34:34 rocky8.cloudspinx.com systemd[1]: Started Odoo ERP System.ステップ7 – firewalldを設定する
サービスはポート8069で待ち受けています。
$ ss -tunelp | grep 8069
tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* users:(("python3.11",pid=70809,fd=4)) uid:989 ino:115353 sk:5 <->firewalldを使用している場合は、ポート8069を許可してください
sudo firewall-cmd --add-port=8069/tcp --permanent
sudo firewall-cmd --reloadOdooのウェブコンソールには、http://serverip:8069 からアクセスして、セットアップを完了できます。
Masterパスワードには、odoo.confで設定したadmin_passwdの値を入力してください。作成するデータベース名の例としては、odoo17を指定します。その後、メールアドレスとパスワードを入力して最初の管理者ユーザーを作成します。オプションで、電話番号、言語、国を設定することもできます。
セットアップが完了したら、作成した管理者ユーザーとそのパスワードでログインしてください。
モジュールの有効化などのために、Odooのダッシュボードにアクセスします。
ステップ 8 – Nginx プロキシの設定
Nginxを使用してOdoo ERPへのリクエストをプロキシすることができます。nginxパッケージをインストールしてください。
sudo dnf -y install nginxシステム起動時にサービスが自動的に開始されるように設定します。
sudo systemctl enable nginxOdooサービス用のNginx設定ファイルを作成します。
sudo vim /etc/nginx/conf.d/odoo.conf以下の内容を貼り付けて編集してください。odoo.example.comは、実際のドメイン名に置き換える必要があります。
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name odoo.example.com;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass http://odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odooserver;
}
# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}nginxの設定を検証する。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful問題なければサービスを再起動してください。
sudo systemctl restart nginxhttp://yourdomain.com で Odoo のウェブダッシュボードにアクセスしてください
ステップ9 – Let’s Encrypt SSLの使用
パブリックドメイン上のサーバーでは、無料のLet’s Encrypt SSLを使用できます。
certbot とその Nginx プラグインをインストールします。
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx -yLet’s Encrypt SSL のリクエスト
DOMAIN=odoo.example.com #replace with your actual domain
sudo certbot --nginx -d $DOMAIN --agree-tosメールアドレスを提供したくない場合は、useLを使用してください
sudo certbot --nginx -d $DOMAIN --agree-tos --register-unsafely-without-emailサンプル出力:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for odoo.example.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/odoo.example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/odoo.example.com/privkey.pem
This certificate expires on 2024-10-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for odoo.cloudlabske.com to /etc/nginx/conf.d/odoo.conf
Congratulations! You have successfully enabled HTTPS on https://odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SSL を含めるように /etc/nginx/conf.d/odoo.conf を自動的に設定します。
cat /etc/nginx/conf.d/odoo.conf結論
Rocky、AlmaLinux、CentOS、RHEL 9のLinuxシステムへのOdooのインストールに関するチュートリアルを終えました。必要な依存関係を準備することから始め、その後Odoo ERPのインストールと設定を進めました。Odooは豊富なモジュールを持ち、柔軟で強力なカスタマイズが可能であるため、業務プロセスを自動化するのに適したビジネスソリューションです。


