Ubuntu18.04にERPNextスタックをインストールする方法
著者は、 Write for DOnations プログラムの一環として、 Software in the PublicInterestを選択して寄付を受け取りました。
序章
ERPNext は、オープンソーステクノロジーのパワーと柔軟性を活用するエンタープライズリソースプランニング(ERP)スイートです。 財務、販売、人材、製造、購入、サービス、ヘルプデスクのニーズなどのコアビジネスプロセスの管理に優れています。 ERPNextのようなシステムを実装する利点には次のものがあります。
- 反復的なビジネスプロセスを自動化することによる生産性の向上
- 社内のすべての部門のデータベースを共有することにより、IT効率が向上しました
- ビジネスユニットが互いにどのように関連しているかという統合されたビジョンのおかげで、より良い意思決定が可能になります
ERPNextは、[X13X] Node / JavaScriptランタイム環境を最大限に活用し、を使用するPythonで記述されたフルスタックWebアプリケーションフレームワークであるFrappeに基づいています。データベースバックエンドとしてのMariaDB。 ERPNextのようなFrappeベースのアプリケーションの多くの利点の1つは、benchコマンドラインユーティリティです。 ベンチCLIは、複数のFrappe / ERPNextサイトのインストール、更新、構成、管理などのタスクを自動化することにより、管理者の時間を節約します。
このチュートリアルでは、Ubuntu18.04を実行している1台のサーバーにERPNextスタックをインストールして構成します。 これにより、ニーズに応じてさまざまな開発環境または本番環境用にスタックを構成でき、より複雑でフォールトトレラントなアーキテクチャを構築する準備が整います。
前提条件
- 少なくとも4GBのRAMと非ルート
sudo
ユーザーを備えた1つのUbuntu18.04サーバー。 Ubuntu 18.04初期サーバーセットアップガイドに従って、サーバーとユーザーをセットアップできます。
注:サーバーの仕様を選択するときは、ERPシステムはリソースを大量に消費することに注意してください。 このガイドでは、4 GBのRAMを搭載した1台のサーバーが必要です。これは、基本的な使用例には十分ですが、特定のハードウェア要件は、ユーザー数やビジネスの規模によって異なる場合があります。
- サーバーを指すAレコードを持つ完全に登録されたドメイン名。 DigitalOcean Dropletを使用している場合は、このガイドに従ってDNSを適切に設定できます。 このチュートリアルでは、全体を通して
your_domain
を使用します。
ステップ1—ファイアウォールの構成
開発用にファイアウォールを構成することはオプションですが、本番用にファイアウォールを構成することは必須のセキュリティ慣行です。
ERPNextサーバーで次のポートを開く必要があります。
- HTTPおよびHTTPSの場合はそれぞれ
80/tcp
および443/tcp
3306/tcp
MariaDB接続用(データベースへのリモートアクセスが必要な場合にのみ推奨)- IMAPとSTMPの場合はそれぞれ
143/tcp
と25/tcp
- SSH用の
22/tcp
(OpenSSH
をまだ有効にしていない場合) 8000/tcp
サイトを展開する前の開発テスト用
一度に複数のポートを開くには、次のコマンドを使用できます。
sudo ufw allow 22,25,143,80,443,3306,8000/tcp
または、次のコマンドを使用して、特定のポートの特定のIPアドレスからの接続を許可できます。
sudo ufw allow from server_IP to any port port_number
必要なすべてのポートを開いた後、ファイアウォールを有効にします。
sudo ufw enable
ファイアウォールを有効にした後、開いているポートのステータスを確認します。
sudo ufw status
ファイアウォールの設定の詳細については、ガイド Ubuntu18.04でUFWを使用してファイアウォールを設定する方法をお読みください。
適切なファイアウォールの設定は、2つの準備手順の最初のステップです。 次に、サーバーでキーボードマッピングと文字エンコードを構成します。
ステップ2—ロケールの構成
コンソールのキーボードマッピング、およびホストの言語と文字エンコードを構成することを強くお勧めします。 これは、ERPNext12のインストールプロセス中に発生する可能性のある問題を回避するために必要です。 この構成は、実際のERPNextプラットフォームのUI言語とは関係がなく、システムロケール構成と関係があることに注意してください。
まず、サーバーを更新します。
sudo apt update
次に、キーマップ、言語、および文字エンコードを構成します。
sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8
localectl
ユーティリティは、Ubuntu 18.04およびその他のLinuxディストリビューションで使用され、ユーザーがログインする前にシステム全体のロケールとキーボードレイアウトの設定を制御および変更します。これは、ERPNext12がまさに必要とするものです。
また、/etc/environment
ファイルに次の行を追加する必要があります。 nano
またはお好みのテキストエディタを使用して、ファイルを開きます。
sudo nano /etc/environment
次に、次のコンテンツを追加します。
/ etc / environment
LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8
ファイルを保存して閉じます。
サーバーを再起動して、すべての変更を適用します。
sudo reboot
サーバーを数分待ってから再起動してから、ssh
を内部に戻します。 これで、データベースをインストールする準備が整いました。
ステップ3—MariaDB10.4をインストールする
次に、MariaDBをサーバースタックに追加します。 ERPNext12にはMariaDB10.2+が必要ですが、Ubuntu 18.04の公式リポジトリに含まれるバージョンは10.1です。つまり、より高いバージョンをインストールする必要があります。 このガイドでは、MariaDBの最新の安定したリリースを使用します。これは、この記事の執筆時点ではバージョン10.4です。
MariaDB10.4をUbuntu18.04にインストールするには、適切な署名キーとリポジトリを追加する必要があります。 この情報は、MariaDBFoundationのリポジトリウィザードにあります。 WebブラウザでこのURLにアクセスします。 さて、 1.1。 ディストリビューションを選択 、 クリック Ubuntu 。 タイトルの2番目の列 2.2。 リリースを選択してください現れる。 このタイトルの下にある18.04LTS「バイオニック」をクリックします。 3.Choose aVersionというタイトルの3番目の列が表示されます。 この下で10.4安定をクリックします。 4。ミラーの選択というタイトルの3番目の列が表示されます。 場所に基づいてミラーを選択すると、MariaDBがカスタムインストールに適切なコマンドを入力します。
設定された3つのコマンドを実行すると、MariaDBリポジトリとキーが適切に追加されます。 独自のコマンドは次のようになります。
sudo apt-get install software-properties-common && sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' && sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.4/ubuntu bionic main'
リポジトリの追加が完了したら、MariaDBをインストールします。
sudo apt install mariadb-server
mariadb-server
をインストールした後、次のパッケージをインストールします。
sudo apt install libmysqlclient-dev python3-mysqldb
ERPNext 12はPythonアプリケーションであるため、データベース管理にはpython3-mysqldb
ライブラリが必要です。 libmysqlclient-dev
、mariadb-client
、およびlibmariadbclient18
に関して:これらのパッケージにより、ユーザーはMariaDBサービスと通信できます。 ntpdate
およびlibdate-manip-perl
は、サーバーの時刻同期のためにERPNextによって使用されます。
次に、mysql_secure_installation
スクリプトを実行して、MariaDBサーバーに基本的なセキュリティレイヤーを追加します。
sudo mysql_secure_installation
mysql_secure_installation
スクリプトは、いくつかの質問を表示します。
- 最初のプロンプトでrootパスワードについて尋ねられますが、パスワードがまだ構成されていないため、
ENTER
を押します。 - 次に、Unix認証を使用するかどうかを決定する必要があります。
Y
と答えて、この認証方法を受け入れます。 - MariaDB root パスワードの変更について尋ねられたら、
N
と答えてください。 root アカウントは自動化されたシステム保守タスクと密接に関連しているため、Unix認証とともにデフォルトのパスワードを使用することをUbuntuベースのシステムに推奨するセットアップです。 - 残りの質問は、匿名データベースユーザーの削除、ローカルホストにリモートでログインするための root アカウントの制限、テストデータベースの削除、および特権テーブルの再読み込みに関係しています。 これらすべての質問に
Y
と答えても安全です。
mysql_secure_installation
スクリプトを完了すると、MariaDBはデフォルト構成を使用して実行を開始します。 標準のERPNextインストールでは、すべてのデータベース操作にMariaDBのrootユーザーが使用されます。 このアプローチは単一サーバーのセットアップでは便利な場合がありますが、適切なセキュリティプラクティスとは見なされません。 したがって、次のセクションでは、特別な権限を持つ新しいユーザーを作成することにより、この問題を回避する方法を学習します。
MariaDBスーパー管理者ユーザーの作成
ERPNextは、データベース接続の管理にMariaDBの root ユーザーを使用することを想定していますが、これは必ずしも理想的ではありません。 この制限を克服し、root以外のユーザーにMariaDBを管理させるには、ユーザーにちなんで名付けられたデータベースを手動で作成する必要があります。 次に、新しいユーザーに特別な特権を割り当てて、ERPNextデータベース操作を実行できるようになります。
MariaDBプロンプトを開きます。
sudo mysql
次に、MariaDB接続に割り当てるユーザーにちなんで名付けられた新しいデータベースを作成します。 このチュートリアルではsammy
を使用しますが、自分の名前を自由に選択できます。
CREATE DATABASE sammy;
次のSQLステートメントを使用してデータベースが作成されたことを確認します。
SHOW DATABASES;
次のような出力が表示されます。
Output+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+
次に、 root と同様の権限を持つMariaDBユーザーsammy
を作成し、ユーザーに選択した強力なパスワードを与えます。 パスワードは安全な場所に保管してください。 後で必要になります:
GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;
次に、ユーザーの作成と新しいユーザーの特権の両方を確認します。
SELECT host, user, Super_priv FROM mysql.user;
次のような出力が表示されます。
Output+-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy | Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)
次に、特権をフラッシュしてすべての変更を適用します。
FLUSH PRIVILEGES;
終了したら、セッションを終了します。
exit
データベースユーザーを作成したので、MariaDBを微調整するだけで、ERPNext12が適切に動作するようになります。 幸い、ERPNextチームは、実装の開始点として使用する優れた構成テンプレートを提供します。 次のセクションでは、そのテンプレートを使用してMariaDBデータベースを適切に構成する方法を学習します。
ステップ4—ERPNext用のMariaDBの構成
MariaDBをインストールして保護したら、ERPNext接続用に微調整します。
まず、mariadb.service
を停止します。
sudo systemctl stop mariadb
次に、nano
またはお気に入りのテキストエディターを使用して、settings.cnf
という名前のMariaDB構成ファイルを作成します。
sudo nano /etc/mysql/conf.d/settings.cnf
次に、ERPNextの構成テンプレートを追加します。
/etc/mysql/conf.d/settings.cnf
[mysqld] # GENERAL # user = mysql default-storage-engine = InnoDB socket = /var/lib/mysql/mysql.sock pid-file = /var/lib/mysql/mysql.pid # MyISAM # key-buffer-size = 32M myisam-recover = FORCE,BACKUP # SAFETY # max-allowed-packet = 256M max-connect-errors = 1000000 innodb = FORCE # DATA STORAGE # datadir = /var/lib/mysql/ # BINARY LOGGING # log-bin = /var/lib/mysql/mysql-bin expire-logs-days = 14 sync-binlog = 1 # REPLICATION # server-id = 1 # CACHES AND LIMITS # tmp-table-size = 32M max-heap-table-size = 32M query-cache-type = 0 query-cache-size = 0 max-connections = 500 thread-cache-size = 50 open-files-limit = 65535 table-definition-cache = 4096 table-open-cache = 10240 # INNODB # innodb-flush-method = O_DIRECT innodb-log-files-in-group = 2 innodb-log-file-size = 512M innodb-flush-log-at-trx-commit = 1 innodb-file-per-table = 1 innodb-buffer-pool-size = 5462M innodb-file-format = barracuda innodb-large-prefix = 1 collation-server = utf8mb4_unicode_ci character-set-server = utf8mb4 character-set-client-handshake = FALSE max_allowed_packet = 256M # LOGGING # log-error = /var/lib/mysql/mysql-error.log log-queries-not-using-indexes = 0 slow-query-log = 1 slow-query-log-file = /var/lib/mysql/mysql-slow.log [mysql] default-character-set = utf8mb4 [mysqldump] max_allowed_packet=256M !includedir /etc/mysql/mariadb.conf.d/
ファイルを保存して閉じます。 これらの構成の詳細については、ERPNextのGithubリポジトリでこのテンプレートファイルを確認してください。 これは、これらのオプションを検討するための便利な出発点です。
次に、erpnext.cnf
という別のファイルを作成します。
sudo nano /etc/mysql/mariadb.conf.d/erpnext.cnf
次のコンテンツをファイルに追加します。
/etc/mysql/mariadb.conf.d/erpnext.cnf
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock bind-address = 0.0.0.0
最初のファイル/etc/mysql/conf.d/settings.cnf
は、/etc/mysql/my.cnf
にあるデフォルトのMariaDB構成に含まれるいくつかの値を補完し、オーバーライドします。 このファイルは、ERPNextのデータベースパフォーマンスを大幅に向上させる厳選されたテンプレートを提供します。 このテンプレートは優れた出発点ですが、ニーズに合わせてこれらのパラメーターを調整することで、MariaDBのパフォーマンスをさらに向上させることを妨げるものは何もないことに注意してください。
2番目のファイル/etc/mysql/mariadb.conf.d/erpnext.cnf
も、データベース接続に関する特定の情報を導入することにより、一部の値を上書きします。
MariaDB接続のテスト
ERPNextは、ほとんどすべての内部操作をデータベース接続に依存しているため、続行する前に接続をテストすることをお勧めします。
mariadb.service
を開始します:
sudo systemctl start mariadb
接続をテストするには、次のコマンドを使用できます。 sammy
およびmariadb_password
を独自のクレデンシャルに置き換えることを忘れないでください。
mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test
MariaDBの基本的なヘルプコンテンツといくつかのパラメーターを示す出力が表示されます。 これは、接続が成功したことを意味します。
Outputmysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE
MariaDBの設定を調整したり、エラーを修正したりする必要がある場合は、次のコマンドを使用してサービスをリロードすることを忘れないでください。
sudo systemctl restart mariadb
完了したら、MariaDBを有効にします。
sudo systemctl enable mariadb
データベース接続をテストしたので、ERPNextアプリケーションのインストールを続行できます。
ステップ5—ERPNextの設定12
データベースバックエンドの準備ができたので、ERPNextWebアプリケーションのセットアップを続行できます。 このセクションでは、ERPNext 12に必要なすべてのコンポーネントをインストールおよび構成してから、アプリケーション自体をインストールする方法を学習します。
ERPNext12に必要なすべてのシステムパッケージを使用してサーバーを準備することから始めます。 次のコマンドを使用して、システム全体の依存関係をインストールします。
sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential mariadb-client python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl1.0-dev python3-mysqldb libdate-manip-perl logwatch
Postfixプロンプトを回避するために、DEBIAN_FRONTEND=noninteractive
変数がインストールコマンドに渡されました。 Postfix設定の詳細については、 Ubuntu18.04にPostfixをインストールして設定する方法に関するガイドをお読みください。
次に、pip3
を更新してから、ERPNextに必要な3つの追加のPythonモジュールの最新バージョンをインストールします。
sudo -H python3 -m pip install --upgrade setuptools cryptography psutil
必要なすべてのグローバル依存関係をインストールしたので、ERPNext12に必要なすべてのサービスとライブラリをインストールします。
Node.jsとYarnの設定
ERPNext 12は、Node.jsサーバー環境のバージョン8以降で動作します。 実際、この記事の執筆時点では、公式のERPNexteasy_install
スクリプトはノード8を使用しています。 ただし、セキュリティの観点から、ノード8は2020年に保守終了(EOL)に達し、セキュリティパッチをこれ以上受け取らないため、新しいバージョンをインストールすることをお勧めします。 このガイドでは、Node.jsバージョン12 LTSが、対応するnpm
およびyarn
パッケージマネージャーとともにインストールされます。 Frappeフレームワークはyarn
を使用して依存関係をインストールすることに注意してください。 別のインストール方法を使用する場合は、システムでバージョン1.12+のyarn
が実行されていることを確認してください。
NodeSourceリポジトリをシステムに追加します。
curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
これで、ダウンロードしたスクリプトの内容を調べることができます。
sudo nano nodesurce_setup.sh
満足したら、スクリプトを実行できます。
sudo bash nodesource_setup.sh
このスクリプトは、apt
リストを自動的に更新します。 これで、サーバーにnodejs
をインストールできます。
sudo apt install nodejs
次に、付属のnpm
パッケージを使用して、yarn
をグローバルにインストールします。
sudo npm install -g yarn
Nodeをインストールしたので、引き続きプラットフォーム用にwkhtmltopdf
を構成できます。
ERPNextは、wkhtmltopdf
オープンソースツールを使用して、QtWebKitレンダリングエンジンを使用してHTMLコンテンツをPDFに変換します。 この機能は主に、請求書、見積もり、およびその他のレポートの印刷に使用されます。 ERPNext 12の場合、wkhtmltopdf
の特定のバージョン、0.12.5
にパッチが適用されたQtが必要です。
wkhtmltopdf
をインストールするには、適切なディレクトリに切り替えてパッケージをダウンロードすることから始めます。この場合は/tmp
です。
cd /tmp
プロジェクトのページから、Ubuntu18.04用の適切なwkhtmltopdf
バージョンとパッケージをダウンロードします。
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
次に、dpkg
ツールを使用してパッケージをインストールします。
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
次に、関連するすべての実行可能ファイルを/usr/bin/
ディレクトリにコピーします。
sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
ファイルを配置したら、アクセス許可を変更して実行可能にします。
sudo chmod a+x /usr/bin/wk*
wkhtmltopdf
が正しくインストールされたので、データベーススタックにRedisを追加します。
Redisのインストール
ERPNext 12は、Redisを使用してMariaDBのパフォーマンスを強化します。 具体的には、キャッシュを支援します。
まず、公式のUbuntu18.04リポジトリからRedisをインストールします。
sudo apt install redis-server
次に、起動時にRedisを有効にします。
sudo systemctl enable redis-server
スタックにRedisを追加したので、これまでに達成したことを要約してみましょう。 これまでに、ERPNext12に必要なすべての主要コンポーネントをインストールしました。これには次のものが含まれます。
- MariaDBデータベースバックエンド
- Node.jsJavaScriptサーバー環境
- ヤーンパッケージマネージャー
- Redisデータベースキャッシュ
wkhtmltopdf
PDFドキュメントジェネレーター
ERPシステムを開発用にインストールする場合でも、本番用にインストールする場合でも、次のステップであるFrappeフルスタックフレームワークと実際のERPNext12Webアプリケーションをインストールする準備が整いました。
ステップ6— FrappeBenchCLIのインストール
ERPNextのスタック要件をすべてインストールしたので、Frappeのbench
コマンドラインユーティリティの柔軟性を解き放つことができます。 bench
CLIは、Frappe Frameworkに基づくERPNextなどのアプリケーションのインストール、セットアップ、および管理のプロセスでユーザーを支援することを目的として設計されました。 次のセクションでは、bench
CLIをインストールし、それを使用してERPNext12のセットアッププロセスを完了します。
Frappeユーザー(この場合はsammy
)がhome
ディレクトリに対して適切な権限を持っていることを確認してください。
sudo chown sammy -R /home/sammy
次に、frappe/bench
リポジトリをホームディレクトリに複製します。 sammy
をシステムユーザー名に置き換えることを忘れないでください。
git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master
bench
CLIをインストールします。
sudo pip3 install -e /home/sammy/.bench
このガイドでは、テスト/実稼働シナリオ用にERPNext 12をインストールしているため、master
ブランチを使用していることを前提としています。 ただし、アプリケーションまたはカスタムERPNextモジュールを開発する場合は、develop
ブランチの方が適している可能性があります。 いずれの場合も、これでFrappeFrameworkをインストールする準備が整いました。 これは、ERPNext自体をインストールする前の最後のステップになります。
Frappeフレームワーク環境のセットアップ
このセクションでは、bench
CLIを使用してFrappe環境を作成します。
Frappeのインストール中に、Ubuntuのファイル監視制限(デフォルトでは8192に設定されている)を超える場合があります。 この問題を回避するには、次のコマンドを使用して上限を設定します。
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
次に、FrappeFramework12を初期化します。 Sammyをシステムユーザー名に置き換えます。
bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3
実行中に、いくつかの警告とともに、パスに関する1つのエラーが表示される場合があります。 プロセスを最後まで続けましょう。 完了すると、次のような出力が表示され、環境が正常に作成されたことを示します。
Output... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized
注: spawn ENOMEM
エラーが発生すると、bench init
プロセスが停止する可能性があります。 このエラーは、システムのメモリが不足した場合に発生します。 続行する前に、物理メモリを増設するか、SWAPスペースを割り当てることにより、問題を修正する必要があります。
環境の作成に使用されるコマンドを詳しく見てみましょう。
/home/sammy/frappe-bench
は、Frappe Framework、Webサイト、および関連するアプリケーションがインストールされるパスです。 この例ではfrappe-bench
と呼ばれる新しいディレクトリが作成され、必要なすべてのファイルを収容します。--frappe-path
は、Frappeリポジトリを指します。この場合は、公式のGithubリポジトリです。--frappe-branch
は、インストールするFrappeバージョンです。 ERPNext 12をインストールするため、選択したバージョンはFrappe12です。--python
は、使用されるPythonバージョンです。 ERPNext12にはPython3.6以降が必要です。 ただし、以前のバージョンでは引き続きPython2.7を使用しています。
bench
CLIコマンドの詳細については、ベンチコマンドのチートシートを参照してください。
Frappeフレームワークによって提供される柔軟性は、分離された環境を使用することをはるかに超えています。 また、さまざまなWebサイトを作成して、それらにアプリケーションをインストールすることもできます。
ステップ7— ERPNext12Webアプリケーションのインストール
このセクションでは、Frappeベースのサイトをセットアップしてから、ERPNext12アプリケーションをインストールします。
Frappeが初期化されたディレクトリに移動します。
cd /home/sammy/frappe-bench
次に、bench
CLIを使用してリポジトリからERPNext12をダウンロードします。
bench get-app erpnext https://github.com/frappe/erpnext --branch version-12
次に、新しいサイトを作成し、your_domain
をこのサーバーのIPに関連付けたドメインに置き換えます。
bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'
上記のコマンドで使用されているオプションを確認してみましょう。
bench new-site
は、FrappeFrameworkに基づいて新しいサイトを作成します。your_domain
は新しいサイトの名前です。 ドメインのDNSにサーバーのIPを指すAレコードがあることを確認してください。erpnext_admin_password
は、ERPNextのAdministratorユーザーに必要なパスワードです。 このパスワードは安全な場所に保管してください。まもなく必要になります。mariadb_password
は、MariaDBユーザーsammy
のガイドの冒頭で作成したパスワードです。
これに続いて、ERPNextアプリケーションをサイトにインストールします。
bench --site your_domain install-app erpnext
インストールが完了すると、ERPNext12アプリケーションが機能するようになります。 次に、bench
コマンドを使用してテストしてみましょう。
bench start
上記は、Webサーバーやその他のサービスに関するさまざまなメッセージを表示するリアルタイム監視コンソールを開始します。 Webブラウザーを開き、localhost:8000
(ローカルインストールの場合)またはyour_domain:8000
(リモートサーバーを使用している場合)に移動します。 ERPNextログイン画面が表示されます(サイトの運用準備が整ったら、後のステップでログインとセットアップを続行します)。
テスト展開にアクセスした後、ターミナルに戻り、CTRL+C
を押します。 これにより、ERPNextが停止し、監視コンソールが終了します。
主な目標がモジュールの作成またはERPNext12の変更である場合は、この時点で停止できます。 開発目的でこれ以上のコンポーネントは必要ありません。 ただし、手動で初期化する必要のない本番環境に対応したシステムが必要な場合は、いくつかの追加コンポーネントをインストールして構成する必要があります。 これがあなたの次のステップです。
ステップ8—本番用にERPNext12をセットアップする
ERPNext 12アプリケーションの準備はできていますが、システム全体としては、まだ完全に本番環境に対応する準備ができていません。 ERPNextの信頼性とセキュリティを確保するには、いくつかの追加サービスを有効にする必要があります。
- Fail2ban は、悪意のあるユーザーやボットからのブルートフォース攻撃に対する保護の追加レイヤーを提供します。
- Nginx は主にWebプロキシとして使用され、すべてのトラフィックをポート
8000
からポート80
(HTTP)またはポート443
(HTTPS)にリダイレクトします。 - スーパーバイザーこのサービスは、ERPNextキープロセスが常に稼働し、必要に応じて再起動することを保証します。
ここまでは、ERPNext 12を手動でインストールして構成しました。これにより、特定のユースケースに合わせてプロセスをカスタマイズできます。 それでも、残りの本番セットアップでは、bench
CLIの利便性を活用して、これらの残りのサービスのインストールと構成を自動化できます。
Frappe作業ディレクトリにいることを確認します。
cd /home/sammy/frappe-bench
次に、次のコマンドを使用して、本番用のERPNext12のセットアップを完了します。
sudo bench setup production sammy --yes
上記では、Nginx、Supervisor、Fail2Banをインストールして構成し、sammy
を本番環境の所有者として設定します。
bench
コマンドによって作成される構成ファイルは次のとおりです。
/etc/nginx/nginx.conf
と/etc/nginx/conf.d/frappe-bench.conf
にある2つのNginx構成ファイル/etc/fail2ban/jail.d/nginx-proxy.conf
にある1つのFail2Banプロキシジェイルと/etc/fail2ban/filter.d/nginx-proxy.conf
にある1つのフィルター
このチュートリアルでは、これらのデフォルト構成で十分ですが、これらのファイルを自由に調べて調整し、独自の要件に一致させる必要があります。 次のコマンドを実行すると、すべてのサービスを停止できます。
sudo supervisorctl stop all
そして、準備ができたら、サービスを再開できます。
sudo supervisorctl start all
これで、インストールをテストする準備が整いました。
ERPNext12インストールのテスト
まず、次のsystemctl
コマンドを使用して、主要な本番サービスが実行されていることを確認してから、grep
にパイプします。
systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'
次のような出力が表示されます。
Outputfail2ban.service enabled nginx.service enabled supervisor.service enabled
すべてが期待どおりに機能していることを確認したら、サーバー上でERPNext12をライブでテストできます。 お気に入りのブラウザを開き、ERPNext12アプリケーションをホストしているドメインに移動します。
数秒後、ERPNext12ログイン画面が表示されます。 ユーザー名にはAdministratorを使用し、パスワードには以前に作成したerpnext_admin_password
を使用します。
次の画面に、アプリケーションのUI言語を選択できるドロップダウンメニューが表示されます。
言語の選択に続いて、ERPNextはあなたの国、タイムゾーン、および通貨についてプロンプトを表示します。
地域情報を入力すると、最初のERPNextユーザーを作成できるようになります。 指定した情報は、ユーザーのログイン資格情報として使用されます。
次の画面で、ERPNextがDomainsと呼ぶものについて尋ねられます。 ドメインがわからない場合は、配信を選択し、次へボタンをクリックしてください。
次に、会社名と略語を入力する必要があります。
最後の画面で、ERPNextはあなたの会社が何をしているのか、銀行名、勘定科目表の種類、そして会計年度の期間を尋ねます。 後で追加の銀行に入ることができます。 今のところ、必要に応じてすべてのフィールドに入力し、セットアップの完了ボタンをクリックします。
次に、プログレスバーが表示されます。
セットアッププロセスが完了すると、ERPNext12のメインダッシュボードが表示されます。
これで、ERPNext12アプリケーションが完全にインストールおよび構成されました。
結論
ERPNext 12アプリケーションが適切にインストールされたので、ビジネスニーズに合わせてシステムの実装を開始することをお勧めします。 良い出発点は、ERPNextダッシュボードのはじめにボタンをクリックすることです。 ERPNextは、すべてのビジネスおよびeコマースのニーズに合わせてプラットフォームを構成するのに役立ちます。
また、ERPNextの速度を向上させることもできます。 その場合は、 ERPNext Performance Tuning をお読みください。これにより、ベストプラクティスと、パフォーマンス関連の問題をデバッグする方法について説明します。