介绍
传统的 Customer Relationship Management(CRM])数据管理模型是针对 business-to-many-customers 关系而设计的 CRM 软件旨在组织和分析企业从客户那里收集的大量数据,同时还提供协助协调沟通渠道。
莫妮卡背后的团队称其产品为个人CRM
。莫妮卡采用前面提到的商业原则,并将其应用于日常人们之间的个人关系。
这个教程将引导你通过一个完整的,手动安装的莫妮卡. 这个版本的莫妮卡是完全功能,完全免费和开源,并为您提供了最细微的控制你的设置。
前提条件
开始之前,你必须具备以下几点:
- 具有至少 1.5 GB RAM 的 Ubuntu 20.04 服务器,根据我们的 Ubuntu 20.04 初始服务器设置指南设置,具有
sudo
特权和启用防火墙的非 root 用户。
<$>[警告] 警告: 如果您的服务器 RAM 少于 1.5 GB,本安装教程中的 Yarn 任务不仅需要更长时间,而且可能无法完成。
- LAMP 堆栈安装在您的服务器上. 您可以通过遵循 如何在 Ubuntu 20.04 上安装 Linux, Apache, MySQL, PHP (LAMP) 堆栈的步骤 1 到 3 来设置此设置。
- 在您的服务器上安装的最新版本的 Node.js,使用 NodeSource PPA,如在 [如何在 Ubuntu 20.04 上安装 Node.js 的选项 2 ]中详细描述。
步骤 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
莫妮卡下面的屏幕加载作为回应:
现在您可以使用 your_email_address 和 your_password 登录您之前创建的 Monica 帐户,访问 Monica 主页。
步骤 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)工具,可满足业务需求,如会计、薪酬、库存管理等。