如何在 Ubuntu 20.04 上用莫妮卡设置个人客户关系管理系统

介绍

传统的 Customer Relationship Management(CRM])数据管理模型是针对 business-to-many-customers 关系而设计的 CRM 软件旨在组织和分析企业从客户那里收集的大量数据,同时还提供协助协调沟通渠道。

莫妮卡背后的团队称其产品为个人CRM。莫妮卡采用前面提到的商业原则,并将其应用于日常人们之间的个人关系。

这个教程将引导你通过一个完整的,手动安装的莫妮卡. 这个版本的莫妮卡是完全功能,完全免费和开源,并为您提供了最细微的控制你的设置。

前提条件

开始之前,你必须具备以下几点:

<$>[警告] 警告: 如果您的服务器 RAM 少于 1.5 GB,本安装教程中的 Yarn 任务不仅需要更长时间,而且可能无法完成。

步骤 1 — 创建 MySQL 数据库和永久存储的用户

莫妮卡需要一个地方来存储所有输入的数据,而莫妮卡背后的团队建议使用MySQL。MySQL在许多生产环境中被证明是可靠的,并且是莫妮卡使用的LAMP(Linux操作系统,Apache Web服务器,MySQL数据库,PHP编程语言)技术堆栈的一部分。

您需要创建一个数据库和MySQL用户,以便与Monica一起使用,然后授予该用户相应的特权。

首先,您可以登录到 MySQL 控制台:

1sudo mysql

创建一个配置来处理 Monica 数据的数据库,以您偏好的数据库名称代替:

1CREATE DATABASE monicadb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建一个新的用户名和您选择的密码. 您与 Monica 进行的每个数据库操作都是通过该用户完成的,所以请记住您选择的用户名和密码:

1CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'strong_mysql_password';

向您刚刚创建的新数据库授予此新用户权限:

1GRANT ALL ON monicadb.* TO 'sammy'@'localhost';

为了使您刚刚授予的新特权生效,请重新加载 MySQL 授予表:

1FLUSH PRIVILEGES;

您现在可以通过输入以下方式退出MySQL控制台:

1exit

您已经完成了数据库的准备,确保您输入的所有数据仍然存在。

步骤 2 – 克隆和配置Monica

安装 Monica 需要从 官方 Monica 代码存储库中克隆它。

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

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

默认情况下,在Ubuntu上,Apache将内容从/var/www/html/目录中提供。下列命令使用git来克隆Monica存储库到名为/var/www/monica/的目录中。

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

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

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

1cd /var/www/monica

然后从git中获取最新数据:

1git fetch

接下来,使用git检查Monica的最新版本,该版本由您通过fetch获取的 git 标签标记。 要选择最新版本,请检查 Monica 发布页面。 在写作时,Monica 的最新版本是 3.7.0,但相应地取代:

1git checkout tags/v3.7.0

现在你有最新版本,你可以开始配置Monica。Monica依赖环境变量进行配置。Monica团队提供了一个示例配置文件,但你不会直接编辑它。

1cp .env.example .env

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

1nano .env

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

1[label /var/www/monica/.env]
2. . .
3DB_DATABASE=monicadb
4DB_USERNAME=sammy
5DB_PASSWORD=strong_mysql_password
6. . .

一旦插入,保存并退出文本编辑器. 如果您使用nano,请按CTRL+O来保存文件,然后按CTRL+X来退出。

步骤 3 — 安装 PHP 插件和包管理器

现在莫妮卡已配置并绑定到一个数据库,是时候设置一个前端实际上与莫妮卡互动了。你已经安装了PHP和Node.js作为本教程的先决条件。你还需要安装PHP插件,Composer与Laravel框架,和Yarn来构建一个适合莫妮卡的前端。

开始安装Monica所需的PHP插件:

1sudo apt install php-bcmath php-cli php-curl php-common \
2 php-fpm php-gd php-gmp php-intl php-json php-mbstring \
3 php-mysql php-opcache php-redis php-xml php-zip

接下来,安装 Composer,它作为PHP的依赖管理器。

将官方的 Composer 安装程序下载到 /tmp,这是一个临时文件夹,这是一个很好的安装文件的位置,以避免您服务器上的混乱:

1curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

安装 Composer,指定实际安装位置和命名协议,使用--install-dir--filename旗帜:

1sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin/ --filename=composer

安装了 Composer 时,您需要安装另一个依赖管理器: Yarn。而 Composer 是 PHP 的依赖管理器, Yarn 处理了 JavaScript 依赖。

npm也是一个JavaScript包管理器,虽然Yarn和npm具有重叠的功能,但Yarn是为了满足不同的需求而构建的。

安装 Yarn 的常规方法是将其安装在全球范围内,从而确保项目中的所有测试和自动化工具都使用相同的 Yarn 版本,防止出现不一致。

1sudo npm install --global yarn

有了安装的包管理器,下一步就是让 Composer 和 Yarn 实际上安装他们管理的包和资产。

步骤 4 – 安装依赖包和准备资产

Composer 处理所有由 Monica 要求的 PHP 依赖包的安装。在下面的命令中, `--no-interaction' 会在整个过程中跳过确认提示,因为需要安装大量的依赖程序。

1composer install --no-interaction --no-dev

只要命令成功完成,如果输出不完全与此示例相同,则没问题:

 1[secondary_label Output]
 2Installing dependencies from lock file
 3Verifying lock file contents can be installed on current platform.
 4Package operations: 183 installs, 0 updates, 0 removals
 5
 6. . .
 7
 8Package manifest generated successfully.
 992 packages you are using are looking for funding.
10Use the `composer fund` command to find out more!
11> Illuminate\Foundation\ComposerScripts::postInstall

接下来,使用Yarn来安装Monica所需的JavaScript前端包:

1yarn install

任何依赖性警告都是正常的,只要安装完毕,就不会至关重要:

 1[secondary_label Output]
 2yarn install v1.22.18
 3[1/5] Validating package.json...
 4[2/5] Resolving packages...
 5[3/5] Fetching packages...
 6[4/5] Linking dependencies...
 7warning " > [email protected]" has unmet peer dependency "@babel/core@^7.15.8".
 8
 9. . .
10
11Done in 5.85s.
12Done in 80.32s.

Monica 配备了静态资产,如字体、图像、JavaScript 和 CSS 文件,这些文件必须准备好,才能由Monica 前端网站提供服务。它还配备了制作脚本,为您自动化此过程。使用yarn run命令,以脚本名称作为论点。这可能需要很长时间,因为它涉及准备静态资产:

1yarn run production

再次,有多个依赖和减肥警告是正常的,只要命令完成,可以安全地忽略。

 1[secondary_label Output]
 2yarn run v1.22.18
 3$ php artisan lang:generate -vvv
 4Created: public/js/langs/vi.json
 5Created: public/js/langs/es.json
 6Created: public/js/langs/tr.json
 7
 8. . .
 9
10webpack compiled successfully
11Done in 79.24s.

随着 Composer 和 Yarn 设置的依赖性,您仍然需要完成 Laravel 框架的设置。 每个 Laravel 项目都需要设置APP_KEY环境变量。 通常在传统的 Laravel 项目中,这通常是自动完成的,但由于您正在从Monica 存储库克隆现有的 Laravel 项目,您必须手动执行。

这是一个非常常见的任务,因此Laravel团队提供了以下命令来生成和设置您的应用程序密钥:

1php artisan key:generate

通过应用程序密钥集,您现在可以准备 Laravel 专门用于 Monica。下一个命令将 Laravel 设置为生产环境。Laravel 启动必要的数据库迁移,清除缓存,种植数据库,设置符号链接,并创建您的第一个 Monica 帐户。

输入以下内容,替换您想要的电子邮件和密码为您的第一个 Monica 帐户:

1php artisan setup:production --email=your_email_address --password=your_password -v

当被提示时,键入来确认设置,然后按ENTER来继续。

 1[secondary_label Output]
 2 You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
 3 > yes
 4
 5✓ Maintenance mode: on
 6'/usr/bin/php7.4' 'artisan' down --retry="10"
 7
 8✓ Clear config cache
 9'/usr/bin/php7.4' 'artisan' config:clear
10
11. . .
12
13Setup is done. Have fun.

莫妮卡的依赖已经完全安装,你的第一个莫妮卡帐户已经创建。

步骤5 – 设置一个Cron工作以保持背景流程运行

Monica 需要多个背景流程,以便始终运行,这提供了计划提醒和定期计算统计等功能,其中包括 在这里找到的综合列表

莫妮卡通过使用cron来管理这一问题,该功能专门用于处理计划或定期任务,您可以先输入以下内容来添加这些内容:

1sudo crontab -u www-data -e

如果这是你第一次使用crontab,你将被要求选择你喜欢的文本编辑器。 要选择nano,键入1,然后按ENTER。 现在,你可以将莫妮卡的定期 Laravel 任务添加为计划的cron。 由于这些计划的任务不需要输出和错误日志,你可以将/dev/null设置为目的地,这相当于被丢弃的数据。 在文件末尾插入以下内容:

1* * * * * php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

完成后,保存并退出文本编辑器,从而确保Monica通过允许它定期在背景中运行任务,始终为您提供最新的统计数据和提醒。

步骤 6 — 配置Apache来服务您的Monica Frontend

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

首先,让您的服务器的用户和群组访问您的静态资产,以便它们可以通过互联网提供服务:

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

接下来,你会将你的Apache网页服务器指向Monica当前存在的位置,这需要设置一个Apache配置文件,但该文件需要启用重写模块。

启用Apache重写模块,输入:

1sudo a2enmod rewrite

现在你可以在你的Apache配置文件中使用重写模块,通过输入创建你的Mony的主要Apache配置文件:

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

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

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

 1[label /etc/apache2/sites-available/monica.conf]
 2<VirtualHost *:80>
 3    ServerName server_domain_or_IP
 4
 5    ServerAdmin webmaster@localhost
 6    DocumentRoot /var/www/monica/public
 7
 8    <Directory /var/www/monica/public>
 9        Options Indexes FollowSymLinks
10        AllowOverride All
11        Require all granted
12    </Directory>
13
14    ErrorLog ${APACHE_LOG_DIR}/error.log
15    CustomLog ${APACHE_LOG_DIR}/access.log combined
16</VirtualHost>

完成后,保存并退出文本编辑器。

要开始使用Monica网站,先启用新网站,然后禁用附带所有Apache安装的默认网站。

首先,启用你的新的莫妮卡网站:

1sudo a2ensite monica.conf

然后,禁用默认的 Apache 登陆页:

1sudo a2dissite 000-default.conf

为了更好地服务页面,Monica团队建议使用PHP的FPM(FastCGI Process Manager),它优化了PHP和ApacheWeb服务器之间的互动。

若要使用 FastCGI,请先启用它,然后设置要发送到 FastCGI 模块的变量。

1sudo a2enmod proxy_fcgi setenvif

要启用 FPM,请先启用其配置文件. 此文件以包含您当前正在运行的 PHP 版本的名称存在。

1php -v

你的PHP版本是响应的,你只需要在PHP版本号中记住前两个数字。

1[secondary_label Output]
2PHP 7.4.3 (cli) (built: Mar 2 2022 15:36:52) ( NTS )
3Copyright (c) The PHP Group
4Zend Engine v3.4.0, Copyright (c) Zend Technologies
5    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

使用此版本号,您可以通过输入以下内容来启用 FPM,相应地更换您的 PHP 版本:

1sudo a2enconf php7.4-fpm

FPM现在需要重新启动才能运行:

1sudo systemctl restart php7.4-fpm

有了您的更改,请验证您的 Apache 配置文件:

1sudo apache2ctl configtest

只要输出Syntax OK行,可以忽略其他警告,最后,重新启动Apache,以使所有以前的更改生效:

1sudo systemctl restart apache2

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

1http://server_domain_or_IP

莫妮卡下面的屏幕加载作为回应:

Monica Login

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

Monica Home

步骤 7 – 安装 Certbot 和设置 TLS 证书

您的Monica网站现在已启动,但如果您计划通过网络通过服务器域访问您的数据,则强烈建议使用TLS加密来保护它。

要保护它,您需要更改 Monica 中的设置,以便只允许 HTTPS 流量到您的 Monica 网站. HTTPS 需要 TLS 证书,因此安装 Certbot 以通过 Let's Encrypt 免费证书权限获得 TLS 证书。

首先,打开.env:

1nano .env

您需要更改的设置是APP_ENV。 默认情况下,设置为本地,允许 HTTP 流量。 更改为生产,以限制流量仅限于 HTTPS。

1[label /var/www/monica/.env]
2. . .
3APP_ENV=production
4. . .

完成后,保存并退出文本编辑器。

假设您遵循安装 Apache 的先决条件,您的防火墙只允许对 HTTP 流量的端口 `80 进行连接。

1sudo ufw allow 'Apache Full'

此外,您还应该删除以前应用的 Apache 防火墙规则,该规则现在是多余的:

1sudo ufw delete allow 'Apache'

随着防火墙的准备,安装Certbot和将其集成到Apache的Certbot插件:

1sudo apt install certbot python3-certbot-apache

这个 Apache 插件允许 Certbot 查看您的 Apache 配置文件,并与您在 monica.conf 中已经设置的服务器域交互式提示您。

1sudo certbot --apache

输入您的有效电子邮件地址并接受服务条款. Certbot 会检测到您之前在 monica.conf 中设置的 server_domain,并询问您是否希望将所有 HTTP 流量重定向到 HTTPS。

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

1[secondary_label Output]
2Congratulations! You have successfully enabled https://test.do-community.com
3. . .

再次访问您的网站,它将自动将您从 HTTP 重定向到 HTTPS。

结论

您现在已经完成了 Monica 的设置,并且已经准备好开始使用它。 Monica 是围绕一个直观的 Web 界面构建的。 有关 Monica 的更多信息,请参阅 官方 Monica 存储

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

Published At
Categories with 技术
Tagged with
comments powered by Disqus