CentOS8にOdoo13をインストールする方法

Odooは、世界で最も人気のある多機能ビジネスソフトウェアです。 CRM、Webサイト、eコマース、請求、アカウント、工業製造、倉庫、プロジェクト管理、在庫管理などを含む一連のビジネスアプリケーションを提供します。すべてがシームレスに統合されています。

このガイドでは、CentOS8のPython仮想マシン環境にソースからOdoo13をインストールする方法について説明します。 GithubからOdooソースコードをコンパイルし、Nginxをリバースプロキシサーバーとして構成します。

1.前提条件##

インストールプロセス全体を完了するには、rootまたはsudo権限を持つ別のユーザーとしてログインする必要があります。

次に、依存関係をインストールします##

ソースからOdooをコンパイルするために必要なPython3、Git、およびその他のライブラリとツールをインストールします。

sudo dnf install python3 python3-devel git gcc redhat-rpm-config libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

3、システムユーザーを作成します##

Odooサービスを実行するためのメインディレクトリとして / opt / odooを使用してシステムユーザーとユーザーグループを作成します。

sudo useradd -m -U -r -d /opt/odoo13 -s /bin/bash odoo13

この名前で[PostgreSQL](https://cloud.tencent.com/product/postgresql?from=10680)ユーザーを作成できることが保証できる限り、ユーザー名として他の名前を使用できます。

第4に、PostgreSQLをインストールして構成します##

標準のCentOS8ソースリポジトリからPostgreSQL10をインストールします。

sudo dnf install @postgresql:10

インストールが完了したら、PostgreSQLデータベースを作成します。

sudo postgresql-setup initdb

PostGreSQLサービスを有効にして開始します。

sudo systemctl enable --now postgresql

ProtgreSQLユーザーを作成し、データベースユーザー名として以前に作成したシステムユーザーと同じ名前を使用します。この例では、名前は odoo13です。

sudo su - postgres -c "createuser -s odoo13"

5、Wkhtmltopdfをインストールします##

Wkhtmltopdfソフトウェアパッケージは、HTMLをPDFおよびさまざまな画像形式にレンダリングできる一連のオープンソースコマンドラインツールを提供します。 PDFレポートを印刷するには、 Wkhtmltopdfツールが必要です。 Odooの推奨バージョンは 0.12.5であり、CentOS8の公式ソフトウェアソースリポジトリにはありません。

githubから rpmパッケージをインストールします。

sudo dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

6、Odoo13をインストールして構成します##

インストールを開始する前に、ユーザーを odoo13に切り替えます。

sudo su - odoo13

OdooのGithubソースリポジトリからOdoo13ソースコードのクローン作成を開始します。

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

/ opt / odoo13ディレクトリに移動し、Odooをインストールするための新しいPython仮想環境を作成します。

cd /opt/odoo13
python3 -m venv venv

sourceコマンドを使用して、この環境をアクティブにします。

source venv/bin/activate

必要なPythonモジュールをインストールします。

pip3 install -r odoo/requirements.txt
インストールプロセス中にコンパイルエラーが発生した場合は、すべての依存パッケージがインストールされていることを確認してください。特定の依存関係パッケージリファレンス`Installing Dependencies`

インストールが完了したら、環境を削除します。

deactivate

カスタムコンポーネント用の新しいディレクトリを作成します。

mkdir /opt/odoo13/odoo-custom-addons

sudoユーザーに切り替えます

exit

次に、テキストエディタを使用して、次の構成ファイルを開いて作成します。

sudo nano /etc/odoo13.conf
[ options]; This is the password that allows database operations:
admin_passwd = superadmin_passwd
db_host = False
db_port = False
db_user = odoo13
db_password = False
addons_path =/opt/odoo13/odoo/addons,/opt/odoo13/odoo-custom-addons

ファイルを保存して閉じます。

 することを忘れないでください`superadmin_passwd`より安全なパスワードに変更します。

7、SystemdUnitファイルを作成します##

テキストエディタを開き、 / etc / systemd / system /ディレクトリに odoo13.serviceという名前のファイルを作成します。

sudo nano /etc/systemd/system/odoo13.service

次のコンテンツをファイルに貼り付けます。

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

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

[ Install]
WantedBy=multi-user.target

ファイルを保存して、エディターを閉じます。

新しいユニットファイルがあることをSystemdに通知します。

sudo systemctl daemon-reload

次のコマンドを実行して、Odooサービスを有効にして開始します。

sudo systemctl enable --now odoo13

次のコマンドでサービスステータスを確認できます。

sudo systemctl status odoo13
● odoo13.service - Odoo13
 Loaded:loaded(/etc/systemd/system/odoo13.service; enabled; vendor preset: disabled)
 Active:active(running) since Wed 2019-12-1120:04:52 UTC; 5s ago
 Main PID:28539(python3)
 Tasks:4(limit:11524)
 Memory:94.6M
 CGroup:/system.slice/odoo13.service
   └─28539/opt/odoo13/venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

Odooサービスログを表示するには、次のコマンドを使用します。

sudo journalctl -u odoo13

8、テストインストール##

ブラウザを開き、次のように入力します。 http://<your_domain_or_IP_address> :8069

すべてのインストールが完了すると、次の画面が表示されます。

このページにアクセスできない場合は、ファイアウォールがポート 8069をブロックしている可能性があります。

次のコマンドを使用して、必要なポートを開きます。

sudo firewall-cmd --permanent --zone=public--add-port=8069/tcp
sudo firewall-cmd --reload

9、NginxをSSLプロキシサーバーとして構成します##

デフォルトのOdooWebサーバーはHTTP経由で提供されます。 Odooの展開をより安全にするために、NginxをSSLプロキシサーバーとして構成し、WebサイトサーバーがHTTPS経由でサービスを提供できるようにします。

SSLプロキシサーバーは、SSLの暗号化と復号化を処理するために使用されるプロキシサーバーです。これは、Nginxが着信TLS接続(HTTPS)を処理および復号化し、暗号化されていない要求を内部サービス(Odoo)に渡すことを意味します。 NginxとOdoo間のトラフィックは暗号化されません。

[ロードバランシング](https://cloud.tencent.com/product/clb?from=10680)、SSL、キャッシング、圧縮、静的コンテンツサービスなど、リバースプロキシサーバーを使用することには多くの利点があります。

次のインストールと構成に進む前に、次の前提条件を満たしていることを確認してください。

テキストエディタを開き、ドメインネームサーバー構成ブロックを作成または編集します。

sudo nano /etc/nginx/conf.d/example.com

次の構成では、SSL、HTTPからHTTPS、WWWから非wwwを確立し、静的ファイルをキャッシュし、GZip圧縮を有効にします。

# 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;return301 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;return301 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;

 # 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ドメイン名に置き換えることを忘れないでください.comを使用して、正しいSSL証明書アドレスを設定します。証明書の構成セクション,参照してください:https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-centos-7/

完了したら、Nginxサービスを再起動します。

sudo systemctl restart nginx

次に、プロキシサーバーを使用するようにOdooに指示する必要があります。これを行うには、構成ファイルを開き、次のコンテンツを追加します: / etc / odoo13.conf

Odooサービスを再起動し、変更を有効にします。

sudo systemctl restart odoo13

この時点で、リバースプロキシサーバーが構成され、 https:// example.comからOdooにアクセスできます。

10、リスニングポートを変更します##

この手順はオプションですが、これは良い習慣です。

デフォルトでは、Odooサービスはすべてのネットワークインターフェイスのポート 8069でリッスンします。 Odooへの直接アクセスを禁止するには、ポート 8069をブロックし、Odooにローカル監視のみを監視させることができます。

127.0.0.1でのみリッスンするようにOdooを構成します。構成ファイルを開き、ファイルの最後に次を追加します: / etc / odoo13.conf

xmlrpc_interface =127.0.0.1
netrpc_interface =127.0.0.1

構成ファイルを保存し、Odooサーバーを再起動して、変更を有効にします。

sudo systemctl restart odoo13

11、複数のプロセスを有効にします##

デフォルトでは、Odooはマルチスレッドモードで動作します。製品レベルの展開では、安定性を向上させ、システムリソースを最大限に活用するために、マルチプロセスサーバーに変更することをお勧めします。

複数のプロセスを有効にするには、Odoo構成ファイルを編集し、ゼロ以外の数のワーカープロセスを設定する必要があります。ワークプロセスの数は、システム内のCPUコアの数と使用可能なRAMメモリに基づいて計算されます。

Odooの公式ドキュメントに必要なワーカープロセスの数とRAMの量を計算するには、次の式を使用できます。

ワークプロセス数の計算:

RAMメモリサイズの計算

システムに搭載されているCPUの数がわからない場合は、次の grepコマンドを使用できます。

grep -c ^processor /proc/cpuinfo

たとえば、4コアCPU、8GB RAMメモリ、および30の並列Odooユーザーを備えたシステムがあります。

上記の計算に基づいて、5つのプロセス+ 1つのプロセス(Cronプロセス)を使用して、合計6つのプロセスを使用できます。

ワークプロセスに基づいて、RAMメモリを計算します。

計算結果によると、Odooのインストールには約2GBのRAMが必要です。

マルチプロセスモードに切り替えるには、構成ファイルを開き、計算値を追加します: / etc / odoo13.conf

limit_memory_hard =2684354560
limit_memory_soft =2147483648
limit_request =8192
limit_time_cpu =600
limit_time_real =1200
max_cron_threads =1
workers =5

Odooサービスを再起動して、変更を有効にします。

sudo systemctl restart odoo13

残りのシステムリソースは、システム内の他のサービスに割り当てられます。このガイドでは、Odoo、PostgreSQL、およびNginxを同じサーバーにインストールします。設定に応じて、サーバーには他のサービスがあります。

12.まとめ##

このガイドでは、CentOS8のPython仮想環境にOdoo13をインストールし、Nginxをリバースプロキシサーバーとして使用する方法について説明します。マルチプロセスを有効にし、実稼働環境でOdooを最適化する方法を示しました。

Recommended Posts

CentOS8にOdoo13をインストールする方法
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS8にMemcachedをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOS8にTensorFlowをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
CentOS8にNginxをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOS8にMariaDBをインストールする方法
CentOS7にMongoDBをインストールする方法
CentOS8にApacheをインストールする方法
CentOS8にOpenCVをインストールする方法
CentOS8にPHPをインストールする方法
CentOS8にMongoDBをインストールする方法
CentOS8にApacheMavenをインストールする方法
CentOS7にApacheKafkaをインストールする方法
[グラフィック]セントスにtomcatをインストールする方法
R&D:CentOS7にPython3をインストールする方法
CentOS7にGCCコンパイラをインストールする方法
centos7.0にオフラインJDK1.8をインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
CentOS8にVisualStudioコードをインストールする方法
CentOS7にDockerをインストールして使用する方法
CentOSLinuxにRPMパッケージをインストールする方法
CentOS8にVNCをインストールして構成する方法
CentOS8にComposerをインストールして使用する方法
CentOS8にNode.jsとnpmをインストールする方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にCurlをインストールして使用する方法
CentOS8にVirtualBoxクライアント拡張機能をインストールする方法
RHEL 8 / CentOS8にDockerCEをインストールする方法
centosにtomcatをインストールおよびアンインストールする方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法