如何在Debian 9上安装EspoCRM开源CRM软件

如何在Debian 9上安装EspoCRM开源CRM软件

在本指南中,我们将向您介绍如何在LAMP的顶部安装和配置最新版本的Debian 9上的EspoCRM软件,以便为您的公司创建一个免费的在线客户关系管理平台。

EspoCRM是一个灵活且易于使用的开源客户关系管理(CRM)平台,旨在实现快速,简单和可定制化。 该软件主要是用PHP编程语言编写的,可以在Linux或Apache或Nginx Web服务器,PHP编程语言和MySQL或MariaDB数据库管理系统之上轻松部署。 EspoCRM支持大量语言,可以部署在呼叫中心,银行,教育,医疗保健,旅游,零售,房地产或电子商务领域。

要求

  • 在Debian 9操作系统的虚拟机或物理服务器上进行最小限度的安装
  • root帐户权限或通过sudo命令拥有root权限的帐户(通过控制台本地访问或通过SSH远程访问)
  • 一个配置有静态IP地址的服务器NIC
  • 一个公共注册的域名,所以你通过网页界面进行安装并访问应用程序网站。 在内联网中,您可以通过本地域或通过服务器IP地址访问应用程序
  • 在您的场所配置邮件服务器或访问公共电子邮件服务,例如Gmail,Outlook,Yahoo!

前要求

首先,登录到您的Debian服务器控制台,并确保您通过发出以下命令来更新系统存储库,内核和软件包。

apt update
apt upgrade

接下来,通过执行以下命令配置计算机主机名。 确保使用您自己的表示法替换本主题中使用的主机名值。

hostnamectl set-hostname www.mycrm.org

发出以下命令以检查机器主机名是否已正确配置。

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

最后,重新启动Debian服务器以正确应用内核更新和主机名更改。

systemctl reboot

接下来,您应该在Debian系统中安装LAMP软件包。 在第一步中,通过在服务器控制台中运行以下命令,将Apache Web服务器和PHP处理网关解释器与应用程序所需的所有PHP模块一起正常运行。

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap php7.0-soap php7.0-mcrypt php-mailparse

接下来,安装一个RDBMS数据库后端。 在本指南中,我们将配置EspoCRM应用程序以使用MariaDB数据库作为后端。 发出以下命令以安装访问MySQL数据库所需的MariaDB数据库和PHP模块。

apt install mariadb-server php7.0-mysql mariadb-client

在Apache,MySQL数据库和PHP已安装之后,打开PHP默认配置文件进行编辑并修改以下PHP变量,如下所述。 确保最初,您要对PHP配置文件进行备份。

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

php.ini配置文件中搜索,编辑和更改以下变量:

file_uploads = On
default_charset = UTF-8
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
memory_limit = 256M
max_input_time = 180
max_execution_time = 180
zend.assertions = 0
date.timezone = Europe/London

通过查看PHP文档提供的时区列表,将time.zone变量相应地替换为您的物理时间,链接地址为http://php.net/manual/en/timezones.php

为了通过PHP7中提供的OPCache插件提高应用程序页面的加载速度,请在[opcache]语句下面的PHP解释器配置文件底部插入以下OPCache代码行,如下所示:

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

关闭php.ini配置文件,并检查变量是否已被正确添加,您可以通过执行以下命令来完成某些操作。

grep opcache /etc/php/7.0/apache2/php.ini| grep -v ";"

接下来,通过发出以下命令,在系统中添加以下UFW防火墙应用程序规则,以允许HTTP流量通过防火墙。

ufw allow WWW

要么

ufw allow 80/tcp

有些系统管理员更喜欢使用iptables原始规则来管理Debian服务器中的防火墙规则。 对于iptables,请发出以下命令来安装防火墙并添加以下规则,以允许端口80和22(在SSH远程连接的情况下)入站流量,以便您可以访问系统并通过Web浏览器浏览应用程序。

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

最后,打开浏览器并通过HTTP协议访问您的Debian机器IP地址或您的域名。 如果您不知道机器IP地址,请执行ifconfigip命令以获取服务器的IP地址。 如果建立了与Web服务器的连接,则应该能够在浏览器中查看Apache Web服务器的默认网页。

HTTP://your_domain.tld

在下一步中,启用Apache重写,并通过发出以下命令来缩小EspoCRM所需的SSL模块以正常运行。

a2enmod rewrite deflate ssl

SSL模块要求您还启用默认的SSL配置文件,以便通过HTTPS协议访问应用程序。 HTTPS协议用于保护服务器和客户端之间的流量。 执行以下命令启用Apache SSL站点配置文件。

a2ensite default-ssl.conf

之后,使用文本编辑器打开Apache默认SSL站点配置文件,并在DocumentRoot指令后面插入以下代码行,如下面的示例所示,以激活放置在.htaccess文件中的规则。 .htaccess文件通常位于您的域名webroot的顶部。

nano /etc/apache2/sites-enabled/default-ssl.conf

SSL站点配置文件摘录:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

您还应该打开/etc/apache2/sites-enabled/000-default.conf文件进行编辑,并添加与插入到SSL配置文件中相同的URL重写规则。 在DocumentRoot语句之后添加代码行,如下例所示。

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

最后,重新启动Apache守护程序以应用到目前为止配置的所有规则,并通过HTTPS协议访问您的域。 由于您在安装时使用由Apache发布的自动签名证书对,浏览器不信任证书,因此浏览器中应显示不安全的连接错误警告。 接受警告以接受不受信任的证书,并继续将其重定向到Apache默认网页。

systemctl restart apache2

HTTPS://yourdomain.tld

如果您打算将您的EspoCRM平台公开在互联网上进行制作,您应该考虑购买由受信任的证书颁发机构颁发的证书或从Let's Encrypt CA获取免费证书对,以便客户端可以访问应用程序而不会在其浏览器中显示错误。

如果UFW防火墙应用程序阻止传入网络连接到HTTPS端口,则应发出以下命令添加新规则以允许HTTPS流量通过防火墙。

ufw allow HTTPS

要么

ufw allow 443/tcp

对于iptables防火墙,添加以下规则以允许防火墙中的端口443入站流量,以便您可以浏览域名。 保存并重新启动iptables服务,以便在系统重新启动后应用规则。

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

最后,通过执行以下命令在您的域webroot路径中创建一个PHP信息文件。

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

通过浏览器访问以下URL中的PHP信息脚本文件来检查PHP设置和时区配置,如下图所示。 向下滚动到日期设置来检查PHP时区配置。

HTTPS://domain.tld/info.php

在下一步中,通过执行以下命令登录到MySQL服务器控制台并保护MariaDB root帐户。 输入exit离开数据库控制台。

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>使用mysql;
Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed
MariaDB [mysql]> update user set plugin =''其中user ='root';
Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0
MariaDB [mysql]>刷新权限;
Query OK, 0 rows affected (0.00 sec)

 

MariaDB [mysql]> exit

Bye

另外,执行mysql_secure_installation脚本以进一步保护MariaDB守护进程。 在运行脚本时,您会被问到一系列旨在保护MariaDB数据库的问题,例如:更改MySQL root密码,删除匿名用户,禁用远程root登录并删除测试数据库。 为所有问题输入“是”,如以下摘录所示。

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

尝试通过不带root密码的控制台登录数据库来验证MariaDB服务器安全问题。 如果没有为root帐户提供密码,则应拒绝对数据库的访问,如以下命令摘录所示:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

现在,尝试使用root密码登录数据库。 您应该能够访问MySQL控制台,如下面的命令示例所示:

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Bye

安装EspoCRM

在Apache HTTP服务器之后,MariaDB守护进程和PHP解释器已经正确配置,用于在您的Debian系统中安装EspoCRM应用程序。 执行以下命令以安装其中提到的命令行实用程序。

apt install wget bash-completion zip unzip curl

下一步,请访问EspoCRM官方下载页面, 网址https://www.espocrm.com/download/,并通过wget实用程序获取系统中最新的压缩包压缩存档。 在撰写本教程时,EspoCRM的最新版本是EspoCRM-5.0.3

wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zip
ls

zip存档下载完成后,将zip存档文件提取到当前工作目录,并通过发出以下命令列出提取的文件。 应用程序的安装文件位于EspoCRM-5.0.3目录中。

unzip EspoCRM-5.0.3.zip
ls
ls -al EspoCRM-5.0.3

接下来,请确保从webroot目录中删除index.html和info.php文件:

rm /var/www/html/index.html
rm /var/www/html/info.php

通过发出以下命令将位于提取目录中的所有文件复制到Web服务器文档根路径。 另外,请确保将隐藏文件.htaccess复制到webroot路径。

cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/

接下来,执行以下命令以授予Apache www-data帐户对Web根路径的完全写入权限。 使用ls命令列出位于/ var / www / html /目录中的EspoCRM安装文件的权限。

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

接下来,登录到MariaDB数据库控制台并创建一个EspoCRM数据库。 使用数据库的描述性名称并创建具有强密码的用户来管理此数据库。 用您自己的值替换此示例中使用的数据库名称,用户和密码。 以下摘录中显示了用于此步骤的命令。

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database espocrm_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>将espocrm_db。*的所有权限授予'password1234'标识的'crm_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>刷新权限;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

Bye

现在,打开浏览器并通过HTTPS协议浏览服务器的IP地址或域名,以便继续进行EspoCRM平台安装过程。 在第一个安装屏幕上,EspoCRM安装程序将显示欢迎消息和从中选择安装语言的列表。 从列表中选择适当的语言,点击开始按钮以启动安装过程,如下图所示。

HTTPS://yourdomain.tld

在下一个屏幕中,阅读许可证协议声明并选中“ 我接受同意 ”复选框并点击下一步按钮进入下一步。

在下一个安装屏幕中,设置MySQL数据库连接设置。 提供MySQL数据库主机地址(127.0.0.1或localhost),数据库名称,用户名和为EspoCRM应用程序配置的密码。 完成所有必需的数据库字段后,点击Next按钮进入下一个安装步骤。 使用下面的截图作为指导来完成这一步。

在下一个屏幕中,EspoCRM安装程序将检查您的服务器环境配置,以确定是否正确配置了所有推荐的MySQL变量和PHP模块和设置。 如果所有配置均已通过,请点击安装按钮以启动EspoCRM安装过程。

在下一步中,为EspoCRM添加一个管理员帐户并为此管理员帐户设置一个强密码。 完成后,点击下一步按钮继续进行安装过程。

接下来,通过选择适当的日期格式和时间格式来设置EspoCRM系统设置。 此外,通过从提供的时区列表中选择离您最近的欧洲大陆/城市,选择适当的时区设置。 设置一周中的第一天,应用程序默认货币,千位和小数点分隔符以及系统语言。 当所有上述设置配置完毕后,点击下一步按钮继续安装过程。

在下一步中,配置EspoCRM传出邮件设置。 为“姓名”电子邮件标题和管理员帐户的电子邮件联系人地址添加一个名称。 该地址将用于向外部客户发送电子邮件。 另外,请确保添加邮件服务器地址,邮件服务器的端口号,并检查身份验证复选框并提供服务器身份验证凭证和安全级别(如果是这种情况)。 完成此步骤后,点击下一步按钮完成安装过程。

在导入数据库结构并将所有平台设置写入应用程序配置文件后,安装过程将完成。 安装程序将显示通知您安装已成功完成,并将显示关于您需要添加到服务器crontab文件中的EspoCRM计划作业的注释。

为了访问和管理您的CRM应用程序,请打开浏览器并通过HTTPS导航到您的服务器IP地址或域名。 使用在安装过程中配置的凭证登录到EspoCRM后端面板,如下面的截图所示。

HTTPS://yourdomain.tld

目前,默认的EspoCRM仪表板应该不包含任何数据。 下图显示了EspoCRM初始仪表板的预览。

为了进一步配置EspoCRM平台设置,请使用三条水平线点击右上角的图标,然后点击自上而下菜单中的管理链接,如下图所示。

为了强制访问者通过HTTPS协议安全地访问EspoCRM后端界面,该协议对服务器和客户端浏览器之间的流量进行加密,请通过发出以下命令返回到您的服务器终端并编辑位于您网站文档根路径中的.htaccess文件。

nano /var/www/html/.htaccess

在.htaccess文件中,搜索<IfModule mod_rewrite.c>行并在RewriteEngine On语句后添加以下规则,以自动将所有域通信重定向到HTTPS。

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

在顶部,该文件可以更改原生PHP服务器设置,例如为upload_max_filesizepost_max_size PHP变量增加值,以支持将大文件上载到应用程序存储。 谨慎修改这些PHP设置。 确保这些变量符合您的服务器资源和配置。

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

接下来,通过发出以下命令来测试计划作业,然后将其添加到crontab守护程序文件中。 应该使用Apache HTTP服务器运行时帐户权限执行crontask作业。

sudo -u www-data /usr/bin/php7.0 -f /var/www/html/cron.php

最后,通过发出以下命令添加Apache www-data帐户拥有的以下crontab作业。

crontab -u www-data –e

Crontab文件摘录:

*    *    *    *    *     /usr/bin/php7.0 -f /var/www/html/cron.php > /dev/null 2>&1

就这样! 您已在Debian 9中成功安装并配置了EspoCRM平台。有关EspoCRM平台的其他设置,请访问以下地址的文档页面: https ://www.espocrm.com/documentation/

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏