CentOS 7にERPNextオープンソースERPをインストールする方法

ERPまたはエンタープライズリソースプランニングは、コアビジネスプロセスの管理に使用されるエンタープライズアプリケーションスイートです。ERPNextは、Pythonで記述された無料のオープンソースのセルフホスト型ERPアプリケーションです。フロントエンドにNode.jsを使用し、MariaDBにデータを格納します。ERPNextは、企業が日常のタスクを管理できるようにする使いやすいWebインターフェイスを提供します。会計、CRM、HRM、製造、POS、プロジェクト管理、購入、販売管理、倉庫管理などのモジュールが含まれています。ERPNextは、サービスプロバイダー、製造、小売、学校などのさまざまな業界を管理するために使用できます。

このチュートリアルでは、CentOS 7にERPNextをインストールします。

前提条件

このチュートリアルではerp.example.com、サーバーを指すドメイン名としてを使用します。すべてのerp.example.comを実際のドメイン名に置き換えてください。

CentOS 7のアップデート方法」ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、Pythonのインストールに進みます。

開発ツールをインストールする

ERPNextが機能するには、Pythonバージョン2.7が必要です。Python 2.7は、すべてのCentOSサーバーインスタンスにデフォルトでインストールされます。次のコマンドを実行して、インストールされているPythonのバージョンを確認できます。

python -V

同様の出力が得られるはずです。

[user@vultr ~]$ python -V
Python 2.7.5

インストールされているPythonのバージョンは最新ではありませんが、問題なく動作します。Pythonのデフォルトバージョンを変更すると、YUMが壊れる場合があります。

Development toolsインストーラーファイルのコンパイルに必要なパッケージをグループにインストールします。

sudo yum groupinstall -y "Development tools"

さらにいくつかの依存関係をインストールします。

sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel

Pythonのpipツールをインストールします。PipはPythonパッケージの依存関係マネージャーです。

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

上記のコマンドは、Pipをシステムにインストールします。あなたが最新のバージョンを持っていることを確認するためpipsetuptools、実行しました:

sudo pip install --upgrade pip setuptools

Pipを使用してAnsibleをインストールします。Ansibleは、ソフトウェアのプロビジョニング、構成管理、およびアプリケーションのデプロイメントを自動化します。

sudo pip install ansible

MariaDBサーバーをインストールする

MariaDBはMySQLデータベースサーバーのフォークです。実行してMariaDBをインストールします。

sudo yum -y install mariadb mariadb-server mysql-devel

ERPNextデータベースの作成にはBarracudaストレージエンジンが必要であるため、Barracudaストレージエンジンを使用するようにMariaDBを設定する必要があります。デフォルトのMariaDB設定ファイルを編集しますmy.cnf

sudo nano /etc/my.cnf

その行の下に次の行を追加しますsymbolic-links=0

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 start mariadb.service
sudo systemctl enable mariadb.service

データベースを構成する前に、MariaDBを保護する必要があります。次のmysql_secure_installationスクリプトを実行して、セキュリティを保護できます。

sudo mysql_secure_installation

現在のMariaDBルートパスワードの入力を求められます。デフォルトでは、MariaDBにはrootパスワードが設定されていません。Enterキーを押して続行します。MariaDBサーバーのrootユーザーに強力なパスワードを設定し、他のすべての質問に「Y」と答えます。質問は自明です。

Nginx、Nodejs、Redisをインストールする

EPELリポジトリはすべてのVultr CentOS 7インスタンスにデフォルトでインストールされるため、RedisとNginxを直接インストールできます。ただし、Node.jsの最新バージョンをインストールするには、Nodesourceリポジトリをシステムに追加する必要があります。

Node.js 8.xのNodesourceリポジトリを追加します。

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Nginx、Nodejs、Redisをインストールします。

sudo yum -y install nginx nodejs redis

Nginxを起動し、次のコマンドを実行して起動時に起動できるようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

Redisを起動し、次のコマンドを実行して起動時に起動できるようにします。

sudo systemctl start redis
sudo systemctl enable redis

PDF Converterをインストールする

このwkhtmltopdfプログラムは、QT Webkitレンダリングエンジンを使用してHTMLをPDFに変換するコマンドラインツールです。必要な依存関係をインストールします。

sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

最新バージョンのをダウンロードしてくださいwkhtmltopdf

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

次を実行してアーカイブを抽出します。

sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

上記のコマンドは、アーカイブをに抽出します/opt/wkhtmltox。そのようにソフトリンクを作成wkhtmltopdfし、wkhtmltoimageコマンドとして世界的に実行することができます。

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

wkhtmltopdf -Vコマンドを実行して、機能しているかどうかを確認できます。次のように表示されます。

[user@vultr ~]$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)

この時点で、必要なすべての依存関係がインストールされています。これで、Benchのインストールに進むことができます。

ベンチをインストール

BenchFrappeが提供するコマンドラインユーティリティで、開発と生産の両方の目的で、UNIXベースのシステムにERPNextアプリケーションをインストールおよび管理します。BenchはNginxとスーパーバイザ構成を作成および管理することもできます。

分離された環境でBenchプロセスを実行する新しいユーザーを作成します。

sudo adduser bench -d /opt/bench

ユーザーのパスワードを変更します。

sudo passwd bench

提供sudoへのアクセス権benchをユーザーに。

sudo usermod -aG wheel bench

新しく作成したbenchユーザーとしてログインします。

sudo su - bench

Benchリポジトリのクローンを作成します/opt/bench

cd /opt/bench
git clone https://github.com/frappe/bench bench-repo

を使用してベンチをインストールしpipます。

sudo pip install -e bench-repo

Benchをインストールしたら、さらにBenchを使用してERPNextをインストールします。

Benchを使用してERPNextをインストールする

インストールされたフラッペフレームワークでベンチディレクトリを初期化します。すべてを整頓するために、/opt/benchディレクトリの下で作業します。Benchはまた、1日に1回、定期的なバックアップと自動更新をセットアップします。

cd /opt/bench
bench init erpnext && cd erpnext

新しいFrappeサイトを作成します。

bench new-site erp.example.com

上記のコマンドは、MySQL rootパスワードの入力を求めます。MySQL rootユーザーに対して以前に設定したパスワードを入力します。また、管理者アカウントの新しいパスワードを設定するように求められます。管理者ダッシュボードにログインするには、後でこのパスワードが必要になります。

Benchを使用して、リモートgitリポジトリからERPNextインストールファイルをダウンロードします。

bench get-app erpnext https://github.com/frappe/erpnext

新しく作成したサイトにERPNextをインストールします。

bench --site erp.example.com install-app erpnext

ERPNextがサーバーにインストールされます。アプリケーションをすぐに起動して、アプリケーションが正常に起動したかどうかを確認できます。

bench start

ただし、実行を停止して、プロダクションで使用するためのアプリケーションのセットアップに進む必要があります。

セットアップスーパーバイザーとNginx

デフォルトでは、ERPNextアプリケーションは、標準のHTTPポート80ではなく、ポート8000​​でリッスンします。また、サーバーを公開するため、本番環境で使用するために組み込みのWebサーバーを実行することはお勧めしません。したがって、ApacheやNginxなどのリバースプロキシとして本番ウェブサーバーを使用する必要があります。このチュートリアルでは、NginxをBenchを使用して自動的に構成できるため、リバースプロキシとして使用します。Benchは、ERPNextセットアップに従って構成を自動的に生成してインストールできます。

上記のコマンドを使用してアプリケーションを起動できますが、ターミナルを閉じるとすぐにERPNextの実行が停止します。この問題を解決するには、実稼働環境でアプリケーションを継続的に実行するのに非常に役立つスーパーバイザを使用することをお勧めします。スーパーバイザは、Linuxオペレーティングシステムで多数のプロセスを監視および制御できるプロセス制御システムです。スーパーバイザが設定されると、起動時と障害時にアプリケーションが自動的に起動します。Benchは、ERPNextアプリケーションのスーパーバイザを自動的に構成できます。

スーパーバイザーをインストールします。

sudo yum -y install supervisor

スーパーバイザを起動し、起動時に自動的に起動するように有効にします。

sudo systemctl start supervisord
sudo systemctl enable supervisord

本番用のセットアップベンチ:

 sudo bench setup production bench

上記のコマンドは、既存のスーパーバイザのデフォルト設定ファイルを新しいものに置き換える前にプロンプ​​トを表示する場合があります。y続行を選択します。ベンチは、スーパーバイザー構成ファイルにいくつかのプロセスを追加します。上記のコマンドでは、現在のNginx構成を新しい構成に置き換えるかどうかも尋ねられます。Enter yで続行します。Benchが設定のインストールを完了したら、Benchユーザーのホームディレクトリにあるファイルを実行するよう他のユーザーに提供します。

chmod o+x /opt/bench/

サーバーでファイアウォールを実行している場合は、ファイアウォールを構成してHTTPサービスの例外を設定する必要があります。Nginxリバースプロキシがネットワークの外部から接続できるようにします。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

これで、サイトにアクセスできますhttp://erp.example.com

次のコマンドを実行して、プロセスのステータスを確認できます。

sudo supervisorctl status all

次の出力が表示されます。

[bench@vultr ~]$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58

すべてのERPNextプロセスを停止するには、以下を使用します。

sudo supervisorctl stop all

すべてのERPNextプロセスを開始するには、以下を使用します。

sudo supervisorctl start all

Let's Encryptを使用したSSLのセットアップ

Let's Encryptは、ユーザーに無料のSSL証明書を提供します。SSLは手動またはBenchを介して自動的にインストールできます。BenchはLet's Encryptクライアントを自動的にインストールし、証明書を取得できます。さらに、証明書を使用するようにNginx構成を自動的に更新します。

Let's Encrypt CAから証明書を取得するために使用しているドメイン名は、サーバーに向けられている必要があります。クライアントは、証明書を発行する前にドメイン認証局を確認します。

ERPNextアプリケーションのDNSマルチテナンシーを有効にします。

bench config dns_multitenant on

ベンチを実行して、サイトにLet's Encryptを設定します。

sudo bench setup lets-encrypt erp.example.com

スクリプトの実行中に、Let's EncryptクライアントからNginx Webサーバーを一時的に停止するように求められます。必要なパッケージとLet's Encryptクライアントが自動的にインストールされます。クライアントはあなたのメールアドレスを要求します。また、利用規約に同意する必要があります。証明書が生成されると、BenchはSSL証明書を使用するNginxの新しい構成も生成します。既存の構成を置き換える前に求められます。また、Benchはcrontabエントリを作成して、証明書を毎月自動的に更新します。

最後に、スケジューラがスケジュールされたジョブを自動的に実行できるようにします。

bench enable-scheduler

君は見るべきだ:

[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com

まとめ

プロセスが完了したら、でアプリケーションにアクセスできますhttps://erp.example.comAdministratorインストール時に設定したユーザー名とパスワードでログインします。ERPNext ERPを会社に合わせて設定するための情報を提供する必要があるデスクに移動します。これで、アプリケーションを使用して会社を管理できます。

おめでとうございます。CentOS7サーバーに完全に動作するERPNextアプリケーションがインストールされました。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。