如何在Ubuntu20.04上使用Monica设置个人CRM

来自菜鸟教程
跳转至:导航、​搜索

介绍

传统的 客户关系管理 (CRM) 数据管理模型是为 企业对多客户 关系量身定制的。 CRM 软件致力于组织和分析企业从客户那里收集的大量数据,同时还为协调沟通渠道提供帮助。 为了帮助企业加强与众多个人客户的关系,CRM 软件生成洞察力,以提高客户满意度、客户保留率、销售增长等。

Monica 背后的团队称他们的产品为“个人 CRM”。 莫妮卡将前面提到的商业原则应用到日常生活中的人际关系中。 你想记住的关于你的朋友和家人的一切都可以在 Monica 中存储和组织。

本教程将指导您完成 Monica 的完整手动安装。 此版本的 Monica 功能齐全、完全免费且开源,可为您提供最精细的设置控制。

先决条件

在开始之前,您必须具备以下条件:

  • 一个至少具有 1.5 GB RAM 的 Ubuntu 20.04 服务器,根据我们的 Ubuntu 20.04 初始服务器设置指南进行设置,非 root 用户使用sudo 权限和防火墙已启用。

警告: 如果您的服务器内存小于 1.5 GB,本安装教程中的 Yarn 任务不仅需要更长的时间,而且可能无法完成。 这使得安装无法完成。 在这种情况下,切换到具有更多 RAM 的服务器是唯一的解决方案。


  • 安装在您的服务器上的 LAMP 堆栈。 您可以按照 如何在 Ubuntu 20.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈的 步骤 1 到 3 进行设置。
  • 使用 如何在 Ubuntu 20.04 上安装 Node.js 的 选项 2 中详细说明的 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 代码库 克隆它。

首先,您需要适当的权限才能使用 git 将 Monica 克隆到默认的 Apache 站点目录。 使用 chown 将您当前的 Linux 用户设置为该目录的所有者,以获得适当的权限:

sudo chown -R $USER:$USER /var/www

默认情况下,在 Ubuntu 上,Apache 从 /var/www/html/ 目录提供内容。 以下命令使用 git 将 Monica 存储库克隆到名为 /var/www/monica/ 的目录中。 在本指南的后面部分,您将设置一个 Apache 虚拟主机来从该目录为 Monica 提供服务:

git clone https://github.com/monicahq/monica.git /var/www/monica

运行此命令后,您将在 /var/www/monica 处克隆官方 Monica 存储库。 虽然您现在有一个可用的克隆,但您必须选择最新版本的 Monica。 使用 gitfetch 最新元数据,其中包括指向最新版本 Monica 的 git 标签,然后使用 checkout 选择要使用的版本。

首先,进入您的克隆存储库:

cd /var/www/monica

然后 fetch 来自 git 的最新数据:

git fetch

接下来,使用gitcheckout最新版本的莫妮卡,用你通过fetch获取的git标签进行标记。 要选择最新版本,请查看 Monica 发布页面。 在撰写本文时,Monica 的最新版本是 3.7.0,但可以相应地替换:

git checkout tags/v3.7.0

现在您拥有最新版本,您可以开始配置 Monica。 Monica 依赖环境变量进行配置。 Monica 团队提供了一个示例配置文件,但您不会直接对其进行编辑。 相反,通过运行以下命令制作您自己的此配置文件的副本:

cp .env.example .env

使用 nano 或您喜欢的文本编辑器打开新复制的配置文件:

nano .env

在此文件中,设置您的 MySQL 凭据。 确保它们与您在 Step 1 中设置数据库的方式准确无误。 在文件中向下滚动,直到找到以下行,并相应地替换您的数据:

/var/www/monica/.env

. . .
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

接下来,安装 Composer,它充当 PHP 的依赖管理器。 Composer 也是 Laravel 的首选依赖管理器,这是使用 PHP 为 Monica 提供支持的 Web 框架。

将官方 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,您可以使用首选的 Yarn 安装方式,即通过 npm

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 " > laravel-mix@6.0.41" 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

使用您的应用程序密钥集,您现在可以准备 Laravel 以专门用于 Monica。 下一个命令为生产环境设置 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 需要多个后台进程才能始终运行。 这提供了诸如计划提醒和定期计算统计数据等功能,此处提供了 综合列表

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 步 — 配置 Apache 以服务于您的 Monica 前端

现在您的 Monica 前端已设置好,您现在可以通过修改目录权限和启用所需模块来准备您的 Apache Web 服务器。

首先,授予您服务器的 www-data 用户和组对您的静态资产的访问权限,以便它们可以通过互联网提供服务:

sudo chown -R www-data:www-data /var/www/monica/storage

接下来,您将把您的 Apache Web 服务器指向您系统上当前 Monica 所在的位置。 这需要设置 Apache 配置文件,但该文件需要启用 rewrite 模块。 此模块允许您根据设置的条件将 URL 重写为更清晰、可读的路径。

通过输入以下命令启用 Apache rewrite 模块:

sudo a2enmod rewrite

现在您可以在 Apache 配置文件中使用 rewrite 模块。 通过输入以下命令为 Monica 创建主 Apache 配置文件:

sudo nano /etc/apache2/sites-available/monica.conf

对于新安装,Monica 团队建议使用以下 Apache 配置。 此配置提供 Apache 的基本设置,包括处理 Monica 网页请求、提供静态资产(如 JavaScript、CSS 和图像)以及配置错误和访问日志。

Monica 配置为接受您的服务器 IP,或者,如果您有一个设置,则接受您的服务器域名。 将以下内容插入到您的 Apache 配置文件中,用其中之一代替 server_domain_or_IP

/etc/apache2/sites-available/monica.conf

<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 的 FPM(FastCGI 进程管理器),它可以优化 PHP 和 Apache Web 服务器之间的交互。 与 PHP 的原始 FastCGI 实现相比,FPM 在处理从请求到 Web 服务器产生的进程方面性能更高。

要使用 FastCGI,首先启用它,然后设置要发送到 FastCGI 模块的变量。 输入以下内容以在 Apache 中启用 FastCGI:

sudo a2enmod proxy_fcgi setenvif

要启用 FPM,首先启用其配置文件。 此文件存在的名称包含您当前运行的 PHP 版本。 您可以通过输入以下命令找到您的 PHP 的当前版本:

php -v

作为响应输出您的 PHP 版本。 您只需注意 PHP 版本号中的前两个数字。

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

打开您的网络浏览器并在地址栏中输入您的服务器的域名或 IP:

http://server_domain_or_IP

Monica 的以下屏幕作为响应加载:

现在您可以使用 your_email_addressyour_password 登录您之前创建的 Monica 帐户以访问 Monica 主页。

第 7 步 — 安装 Certbot 并设置 TLS 证书

您的 Monica 站点现在可以运行,但如果您计划通过 Internet 使用服务器域访问您的数据,强烈建议使用 TLS 加密来保护它。 目前,您的站点可以通过 HTTP 访问,适合在本地机器上测试和使用。

为了保护它,您需要更改 Monica 中的设置以仅允许 HTTPS 流量到您的 Monica 站点。 HTTPS 需要 TLS 证书,所以安装 Certbot 以通过 Let's Encrypt 免费证书颁发机构获取 TLS 证书。

首先,打开.env

nano .env

您需要更改的设置是 APP_ENV。 默认情况下,它设置为 local 以允许 HTTP 流量。 将其更改为 production 以将流量限制为仅 HTTPS。 查找并编辑该行:

/var/www/monica/.env

. . .
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 将检测您之前在 monica.conf 中设置的 server_domain,并询问您是否要将所有 HTTP 流量重定向到 HTTPS。 接受此重定向选项,因为 Monica 现在设置为仅允许 HTTPS 流量。

Certbot 将下载您的证书并使用新的配置和证书自动重新加载 Apache。

OutputCongratulations! You have successfully enabled https://test.do-community.com
. . .

再次访问您的网站,它会自动将您从 HTTP 重定向到 HTTPS。 您的网站现在使用 TLS 加密进行保护。

结论

您现在已经完成了 Monica 的设置,可以开始使用它了。 Monica 是围绕一个易于使用的 Web 界面构建的。 有关 Monica 的更多信息,请查看 官方 Monica 存储库

如果您对其他实际适用于企业的自托管工具感兴趣,可以查看 如何使用 Docker 在 Ubuntu 20.04 上安装 Odoo。 Odoo 是一种开源企业资源规划 (ERP) 工具,可满足会计、工资单、库存管理等业务需求。