Ubuntu20.04でMonicaを使用してパーソナルCRMを設定する方法
序章
従来の顧客関係管理( CRM )モデルのデータ管理は、企業から多くの顧客の関係に合わせて調整されています。 CRMソフトウェアは、企業が顧客から収集する大量のデータを整理および分析すると同時に、通信チャネルの調整を支援するよう努めています。 CRMソフトウェアは、企業が多くの個々の顧客との関係を強化するのを支援するために、顧客満足度、顧客維持、売上成長などを改善することを目的とした洞察を生成します。
モニカの背後にあるチームは、自社の製品を「パーソナルCRM」と呼んでいます。 モニカは、前述のビジネス原則を採用し、日常の人々の個人的な関係に適用します。 友達や家族について覚えておきたいことはすべて、モニカに保管して整理することができます。
このチュートリアルでは、Monicaの完全な手動インストールについて説明します。 このバージョンのMonicaは、完全な機能を備え、完全に無料でオープンソースであり、セットアップを最もきめ細かく制御できます。
前提条件
開始する前に、次のものが必要です。
- 少なくとも1.5GBのRAMを搭載したUbuntu20.04サーバー。Ubuntu20.04の初期サーバーセットアップガイドに従ってセットアップされ、root以外のユーザーが
sudo
特権とファイアウォールが有効になっています。
警告:サーバーのRAMが1.5 GB未満の場合、このインストールチュートリアル内のYarnタスクは非常に時間がかかるだけでなく、完了に失敗する可能性があります。 これにより、インストールを完了できなくなります。 そのシナリオでは、RAMの量が多いサーバーに切り替えることが唯一の解決策です。
- サーバーにインストールされているLAMPスタック。 これを設定するには、 Ubuntu 20.04 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法のステップ1から3に従います。
- Ubuntu 20.04にNode.jsをインストールする方法のオプション2で詳しく説明されているように、NodeSourcePPAを使用してサーバーにインストールされたNode.jsの最新バージョン。
ステップ1—永続ストレージ用のMySQLデータベースとユーザーの作成
Monicaには、入力されたすべてのデータを保存する場所が必要です。Monicaの背後にあるチームは、MySQLの使用を推奨しています。 MySQLは多くの実稼働環境で信頼できることが証明されており、Monicaが採用している LAMP (Linuxオペレーティングシステム、Apache Webサーバー、MySQLデータベース、PHPプログラミング言語)技術スタックの一部です。
Monicaで使用するデータベースとMySQLユーザーを作成してから、そのユーザーに適切な権限を付与する必要があります。
MySQLコンソールにログインすることから始めます。
- sudo mysql
Monicaのデータを処理するように構成されたデータベースを作成し、希望のデータベース名に置き換えます。
- CREATE DATABASE monicadb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
選択したユーザー名とパスワードで新しいユーザーを作成します。 Monicaでコミットするすべてのデータベースアクションはこのユーザーを介して実行されるため、選択したユーザー名とパスワードを覚えておいてください。
- CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'strong_mysql_password';
作成したばかりの新しいデータベースに対して、この新しいユーザー権限を付与します。
- GRANT ALL ON monicadb.* TO 'sammy'@'localhost';
付与したばかりの新しい権限を有効にするには、MySQLの付与テーブルをリロードします。
- FLUSH PRIVILEGES;
これで、次のように入力してMySQLコンソールを終了できます。
- exit
これでデータベースの準備が完了し、Monicaに入力したすべてのデータが保持されるようになりました。
ステップ2—Monicaのクローン作成と構成
Monicaをインストールするには、公式のMonicaコードリポジトリからクローンを作成する必要があります。
まず、を使用してMonicaをデフォルトのApacheサイトディレクトリに複製するには、適切な権限が必要です。 git
. 使用する chown
適切な権限を取得するために、現在のLinuxユーザーをこのディレクトリの所有者として設定するには:
- sudo chown -R $USER:$USER /var/www
Ubuntuのデフォルトでは、Apacheはコンテンツを提供します /var/www/html/
ディレクトリ。 次のコマンドは git
Monicaリポジトリをという名前のディレクトリに複製します /var/www/monica/
. このガイドの後半で、このディレクトリからMonicaにサービスを提供するようにApache仮想ホストを設定します。
- git clone https://github.com/monicahq/monica.git /var/www/monica
このコマンドを実行すると、公式のMonicaリポジトリのクローンが次の場所にあります。 /var/www/monica
. これで実行可能なクローンができましたが、最新バージョンのMonicaを選択する必要があります。 使用する git
に fetch
最新バージョンのMonicaを指すgitタグを含む最新のメタデータを使用して、 checkout
使用するバージョンを選択します。
まず、複製されたリポジトリに移動します。
- cd /var/www/monica
それで fetch
からの最新データ git
:
- git fetch
次、 checkout
を使用したモニカの最新バージョン git
、これは、取得したgitタグでマークされています fetch
. 最新バージョンを選択するには、モニカリリースページを確認してください。 執筆時点では、モニカの最新バージョンは 3.7.0 ですが、それに応じて置き換えてください。
- git checkout tags/v3.7.0
最新バージョンを入手したので、Monicaの構成を開始できます。 Monicaは、構成を環境変数に依存しています。 設定ファイルの例はMonicaチームから提供されていますが、直接編集することはありません。 代わりに、次のコマンドを実行して、この構成ファイルの独自のコピーを作成します。
- cp .env.example .env
新しくコピーした構成ファイルをで開きます nano
、またはお好みのテキストエディタ:
- nano .env
このファイルで、MySQLクレデンシャルを設定します。 ステップ1でデータベースを設定する方法が正確であることを確認してください。 次の行が見つかるまでファイルを下にスクロールし、それに応じてデータを置き換えます。
. . .
DB_DATABASE=monicadb
DB_USERNAME=sammy
DB_PASSWORD=strong_mysql_password
. . .
挿入したら、テキストエディタを保存して終了します。 使用している場合 nano
、 押す CTRL+O
ファイルを保存するには、を押します CTRL+X
出る。
ステップ3—PHPプラグインとパッケージマネージャーのインストール
Monicaが構成され、データベースに関連付けられたので、次に、実際にMonicaと対話するためのフロントエンドをセットアップします。 このチュートリアルの前提条件として、PHPとNode.jsがすでにインストールされています。 また、PHPプラグイン、Laravelフレームワークを備えたComposer、およびYarnをインストールして、Monicaに適したフロントエンドを構築する必要があります。
Monicaに必要なPHPプラグインをインストールすることから始めます。
- sudo apt install php-bcmath php-cli php-curl php-common \
- php-fpm php-gd php-gmp php-intl php-json php-mbstring \
- php-mysql php-opcache php-redis php-xml php-zip
次に、PHPの依存関係マネージャーとして機能するComposerをインストールします。 Composerは、PHPを使用してMonicaを強化するWebフレームワークであるLaravelの優先依存関係マネージャーでもあります。
公式のComposerインストーラーをにダウンロードします /tmp
、サーバーの乱雑さを回避するための使い捨てインストールファイルの適切な場所である一時フォルダー:
- curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
Composerをインストールし、実際のインストール場所と命名規則を指定します。 --install-dir
と --filename
フラグ:
- sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin/ --filename=composer
Composerをインストールしたら、別の依存関係マネージャーYarnをインストールする必要があります。 ComposerはPHPの依存関係マネージャーですが、YarnはJavaScriptの依存関係を処理します。 Node.jsが前提条件にすでにインストールされている場合、npmを介してYarnをインストールするための推奨される方法にアクセスできます。
npm
また、JavaScriptパッケージマネージャーであり、Yarnと npm
機能が重複しているため、Yarnはさまざまなニーズに対応するために構築されました。 これには、 npm
その安定性とセキュリティに関連しています。
Yarnをインストールする従来の方法は、グローバルにインストールすることです。 これにより、プロジェクト内のすべてのテストおよび自動化ツールがまったく同じバージョンのYarnを使用するようになり、不整合が防止されます。 次のように入力して、Yarnをインストールします。
- sudo npm install --global yarn
パッケージマネージャーをインストールしたら、次のステップは、ComposerとYarnに管理するパッケージとアセットを実際にインストールさせることです。
ステップ4—依存関係パッケージのインストールとアセットの準備
Composerは、Monicaが必要とするすべてのPHP依存関係パッケージのインストールを処理します。 次のコマンドでは、 --no-interaction
インストールする依存関係が扱いにくいため、プロセス中に確認プロンプトをスキップします。 --no-dev
不要な開発ツールのインストールをスキップします。 Composerをインストールするには、次のように入力します。
- composer install --no-interaction --no-dev
コマンドが正常に完了する限り、出力が次の例とまったく同じでなくても問題ありません。
OutputInstalling dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 183 installs, 0 updates, 0 removals
. . .
Package manifest generated successfully.
92 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> Illuminate\Foundation\ComposerScripts::postInstall
次に、Yarnを使用して、Monicaに必要なJavaScriptフロントエンドパッケージをインストールします。
- yarn install
インストールが完全に完了する限り、依存関係の警告は正常であり、重大ではありません。
Outputyarn install v1.22.18
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "@babel/core@^7.15.8".
. . .
Done in 5.85s.
Done in 80.32s.
Monicaには、フォント、画像、JavaScript、CSSファイルなどの静的アセットが付属しており、Monicaフロントエンドサイトで提供する前に準備する必要があります。 それはまた付属しています production
このプロセスを自動化するスクリプト。 使用 yarn run
コマンド。引数としてスクリプト名を取ります。 静的アセットの準備が必要になるため、これには長い時間がかかる場合があります。
- yarn run production
繰り返しになりますが、複数の依存関係と非推奨の警告があるのは正常です。 コマンドが完了する限り、これは無視しても問題ありません。
Outputyarn run v1.22.18
$ php artisan lang:generate -vvv
Created: public/js/langs/vi.json
Created: public/js/langs/es.json
Created: public/js/langs/tr.json
. . .
webpack compiled successfully
Done in 79.24s.
ComposerとYarnによって依存関係が設定されているので、Laravelフレームワークのセットアップを完了する必要があります。 すべてのLaravelプロジェクトには APP_KEY
設定する環境変数。 これは通常、従来のLaravelプロジェクトで自動的に実行されますが、Monicaリポジトリから既存のLaravelプロジェクトのクローンを作成しているため、手動で実行する必要があります。
これは非常に一般的なタスクであるため、Laravelチームはアプリケーションキーを生成および設定するために次のコマンドを提供しました。
- php artisan key:generate
アプリケーションキーセットを使用して、特にMonicaで使用するためにLaravelを準備できます。 次のコマンドは、本番環境用にLaravelをセットアップします。 Laravelは、必要なデータベース移行を初期化し、キャッシュをクリアし、データベースをシードし、シンボリックリンクを設定し、最初のMonicaアカウントを作成します。
次のように入力し、最初のMonicaアカウントを希望のメールアドレスとパスワードに置き換えます。
- php artisan setup:production --email=your_email_address --password=your_password -v
プロンプトが表示されたら、次のように入力します yes
セットアップを確認して ENTER
続ける。
Output You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
> yes
✓ Maintenance mode: on
'/usr/bin/php7.4' 'artisan' down --retry="10"
✓ Clear config cache
'/usr/bin/php7.4' 'artisan' config:clear
. . .
Setup is done. Have fun.
これでMonicaの依存関係が完全にインストールされ、最初のMonicaアカウントが作成されました。
ステップ5—バックグラウンドプロセスを実行し続けるためのcronジョブの設定
Monicaでは、常にいくつかのバックグラウンドプロセスを実行する必要があります。 これにより、スケジュールされたリマインダーや定期的な統計の計算などの機能が提供され、包括的なリストがここにあります。
モニカはこれを使用して管理します cron
、スケジュールされたタスクまたは定期的なタスクの処理を専門としています。 これらを追加するには、最初に次のように入力します。
- sudo crontab -u www-data -e
初めて使用する場合 crontab
、お好みのテキストエディタを選択するように求められます。 選択するには nano
、 タイプ 1
そしてヒット ENTER
. これで、Monicaの定期的なLaravelタスクをスケジュールとして追加できます cron
. これらのスケジュールされたタスクの出力ログとエラーログは必要ないため、次のように設定できます。 /dev/null
宛先として、これは破棄されるデータに相当します。 ファイルの最後に以下を挿入します。
* * * * * php /var/www/monica/artisan schedule:run >> /dev/null 2>&1
完了したら、テキストエディタを保存して終了します。 これにより、Monicaがバックグラウンドで定期的にタスクを実行できるようにすることで、常に最新の統計とリマインダーを提供できるようになりました。
ステップ6—Monicaフロントエンドにサービスを提供するようにApacheを構成する
Monicaのフロントエンドがセットアップされたので、ディレクトリのアクセス許可を変更し、必要なモジュールを有効にすることで、ApacheWebサーバーを準備できます。
まず、サーバーの www-data ユーザーとグループに静的アセットへのアクセスを許可して、インターネット経由でサービスを提供できるようにします。
- sudo chown -R www-data:www-data /var/www/monica/storage
次に、Apache Webサーバーを、Monicaが現在システム上に存在する場所にポイントします。 これにはApache構成ファイルを設定する必要がありますが、そのファイルには rewrite
有効にするモジュール。 このモジュールを使用すると、設定した条件に基づいて、URLをよりクリーンで読みやすいパスに書き換えることができます。
Apacheを有効にする rewrite
次のように入力してモジュールを作成します。
- sudo a2enmod rewrite
今、あなたは使用することができます rewrite
Apache構成ファイルのモジュール。 次のように入力して、MonicaのメインApache構成ファイルを作成します。
- sudo nano /etc/apache2/sites-available/monica.conf
新規インストールの場合、Monicaチームは次のApache構成をお勧めします。 この構成は、Monica Webページの要求の処理、JavaScript、CSS、画像などの静的アセットの提供、エラーおよびアクセスログの構成など、Apacheの基本的なセットアップを提供します。
Monicaは、サーバーIP、またはセットアップされている場合はサーバードメイン名のいずれかを受け入れるように構成されています。 次のファイルをApache構成ファイルに挿入し、server_domain_or_IPの代わりに次のいずれかを使用します。
<VirtualHost *:80>
ServerName server_domain_or_IP
ServerAdmin webmaster@localhost
DocumentRoot /var/www/monica/public
<Directory /var/www/monica/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
完了したら、テキストエディタを保存して終了します。
Monicaサイトの使用を開始するには、最初に新しいサイトを有効にしてから、すべてのApacheインストールに付属するデフォルトサイトを無効にします。
まず、新しいMonicaサイトを有効にします。
- sudo a2ensite monica.conf
次に、デフォルトのApacheランディングページを無効にします。
- sudo a2dissite 000-default.conf
これで、Webサーバーを起動する準備が整いました。 ページをより最適に提供するために、Monicaチームは、PHPとApache Webサーバー間の相互作用を最適化するPHPのFPM(FastCGI Process Manager)を使用することをお勧めします。 FPMは、PHP用の元のFastCGI実装と比較して、Webサーバーへの要求から生成されたプロセスの処理においてはるかにパフォーマンスが高くなります。
FastCGIを使用するには、最初にFastCGIを有効にしてから、FastCGIモジュールに送信する変数を設定します。 次のように入力して、ApacheでFastCGIを有効にします。
- sudo a2enmod proxy_fcgi setenvif
FPMを有効にするには、最初にその構成ファイルを有効にします。 このファイルは、現在実行しているPHPバージョンを含む名前で存在します。 次のように入力すると、PHPの現在のバージョンを確認できます。
- php -v
応答として、PHPバージョンが出力されます。 PHPバージョン番号の最初の2つの番号に注意する必要があります。
OutputPHP 7.4.3 (cli) (built: Mar 2 2022 15:36:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
このバージョン番号を使用すると、次のように入力してFPMを有効にできます。それに応じて、PHPのバージョンを置き換えます。
- sudo a2enconf php7.4-fpm
FPMを機能させるには、次のように再起動する必要があります。
- sudo systemctl restart php7.4-fpm
変更を加えたら、Apache構成ファイルを検証します。
- sudo apache2ctl configtest
限り Syntax OK
行が出力され、他の警告は無視できます。 最後に、Apacheを再起動して、以前のすべての変更を有効にします。
- sudo systemctl restart apache2
Webブラウザーを開き、サーバーのドメイン名またはIPをアドレスバーに入力します。
http:
次のモニカの画面は、それに応じて読み込まれます。
これで、以前に作成したMonicaアカウントにyour_email_addressおよびyour_passwordでログインして、Monicaホームページにアクセスできます。
ステップ7—CertbotのインストールとTLS証明書の設定
Monicaサイトは現在運用可能ですが、サーバードメインを使用してインターネット経由でデータにアクセスできるようにすることを計画している場合は、TLS暗号化でデータを保護することを強くお勧めします。 現在、ローカルマシンでのテストと使用に適したHTTPを介してサイトにアクセスできます。
それを保護するには、MonicaサイトへのHTTPSトラフィックのみを許可するようにMonicaの設定を変更する必要があります。 HTTPSにはTLS証明書が必要なため、Certbotをインストールして、Let’sEncryptの無料認証局からTLS証明書を取得します。
まず、開く .env
:
- nano .env
変更する必要がある設定は APP_ENV
. デフォルトでは、 local
HTTPトラフィックを許可します。 に変更します production
トラフィックをHTTPSのみに制限します。 行を見つけて編集します。
. . .
APP_ENV=production
. . .
完了したら、テキストエディタを保存して終了します。
Apacheをインストールするための前提条件に従っていると仮定すると、ファイアウォールはポートでの接続のみを許可します 80
HTTPトラフィックの場合。 HTTPSトラフィックも許可するには、次のファイアウォールルールを追加します。
- sudo ufw allow 'Apache Full'
さらに、以前に適用されていた、現在は冗長になっているApacheファイアウォールルールを削除する必要があります。
- sudo ufw delete allow 'Apache'
ファイアウォールの準備ができたら、CertbotとそれをApacheと統合するCertbotプラグインをインストールします。
- sudo apt install certbot python3-certbot-apache
このApacheプラグインを使用すると、CertbotはApache構成ファイルを調べて、既に設定したサーバードメインをインタラクティブに表示できます。 monica.conf
. ドメインのTLS証明書を作成する対話型プロセスを開始するには、次のコマンドを実行します。
- sudo certbot --apache
有効なメールアドレスを入力し、利用規約に同意してください。 Certbotは、以前に設定されたserver_domainを検出します monica.conf
、すべてのHTTPトラフィックをHTTPSにリダイレクトするかどうかを尋ねます。 MonicaはHTTPSトラフィックのみを許可するように設定されているため、このリダイレクトオプションを受け入れます。
Certbotは証明書をダウンロードし、Apacheに新しい構成と証明書を自動的にリロードします。
OutputCongratulations! You have successfully enabled https://test.do-community.com
. . .
もう一度Webサイトにアクセスすると、HTTPからHTTPSに自動的にリダイレクトされます。 これで、サイトはTLS暗号化で保護されます。
結論
これでMonicaのセットアップが完了し、使用を開始する準備が整いました。 Monicaは、直感的に使用できるように設計されたWebインターフェイスを中心に構築されています。 Monicaの詳細については、公式Monicaリポジトリを確認してください。
実際にビジネス向けの他のセルフホストツールに興味がある場合は、Dockerを使用してUbuntu20.04にOdooをインストールする方法を確認してください。 Odooはオープンソースのエンタープライズリソースプランニング(ERP)ツールであり、会計、給与、在庫管理などのビジネスニーズに対応します。