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

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

前提条件

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

始める前に、サーバーが最新であることを確認してください。

sudo apt update
sudo apt -y upgrade

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

ERPNextが機能するには、Pythonバージョン2.7が必要です。Python 2.7をインストールします。

sudo apt -y install python-minimal

バージョンを確認できるはずです。

python -V

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

user@vultr:~$ python -V
Python 2.7.13

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

sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev

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

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

pipおよびの最新バージョンを使用していることを確認してくださいsetuptools

sudo pip install --upgrade pip setuptools

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

sudo pip install ansible

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

MariaDBリポジトリをシステムに追加します。

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'

MariaDBをインストールします。

sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev

要求されたら、MariaDB rootユーザーに強力なパスワードを入力します。

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

sudo nano /etc/mysql/my.cnf

その行の下に次の行を追加します[mysqld]

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 restart mariadb
sudo systemctl enable mariadb

データベースを構成する前に、MariaDBを保護する必要があります。mysql_secure_installationスクリプトを実行することで保護できます。

sudo mysql_secure_installation

現在のMariaDBルートパスワードの入力を求められます。インストール中に設定したパスワードを入力します。MariaDBサーバーのrootユーザーの既存のパスワードを変更するかどうかを尋ねられます。インストール中に強力なパスワードをすでに提供しているため、新しいパスワードの設定をスキップできます。尋ねられる他のすべての質問に「Y」と答えます。

Nginx、Node.js、Redisをインストールする

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

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

Nginx、Node.js、Redisをインストールします。

sudo apt -y install nginx nodejs redis-server

Nginxを起動し、起動時に起動できるようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

Redisを起動して、起動時に起動できるようにします。

sudo systemctl start redis-server
sudo systemctl enable redis-server

PDF Converterをインストールする

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

sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base

最新バージョンのをダウンロードしてください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 --home /opt/bench

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

sudo usermod -aG sudo 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

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

bench start

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

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

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

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

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

sudo apt -y install supervisor

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

sudo systemctl start supervisor
sudo systemctl enable supervisor

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

 sudo bench setup production bench

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

chmod o+x /opt/bench/

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

を実行すると、プロセスのステータスを確認できます。

sudo supervisorctl status all

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

bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web                    RUNNING   pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio                 RUNNING   pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 13875, uptime 0:00:54

すべての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

Benchを実行して、サイトに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を会社に合わせて設定するための情報を提供する必要があるデスクに移動します。これで、アプリケーションを使用して会社を管理できます。

おめでとうございます。Ubuntu17.04サーバーに完全に動作する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の未来は、日々成長を続けています。