如何使用Apache / Nginx在Ubuntu 20.04上安装SuiteCRM

本教程将向您展示如何安装 SuiteCRM 在具有Apache或Nginx Web服务器的Ubuntu 20.04上。 SuiteCRM是一个免费的开源客户关系管理软件解决方案,可提供您的客户和业务的360度视图。 这是流行的叉子 糖CRM 软件,因为SugarCRM在2014年停止发布其开源社区版。

SuiteCRM功能

  • 日历/提醒系统
  • 文件储存
  • 电子邮件营销
  • 内部聊天整合
  • 领导资格
  • 营销自动化
  • 移动访问
  • 配额/估计
  • 分割
  • 社交媒体整合
  • 任务管理
  • 区域管理
  • 销售人员自动化,市场营销活动,客户支持,协作,移动CRM,社交CRM和报表。
  • 安装插件以扩展SuiteCRM的功能。
  • SuiteCRM可以轻松地与第三方SMTP中继服务集成,例如Gmail,Mandrill,Sendgrid,Amazon SES。 您也可以使用自己的邮件服务器。
  • 可以与许多流行的第三方应用程序无缝集成,例如Mautic,Gmail,Facebook,Twitter,GoToMeeting,MailChimp,Zoom,Quickbooks,Avaya,DocuSign等。
  • 支持多个用户帐户和角色。
  • 以及更多

在Ubuntu 20.04 Server上安装SuiteCRM的前提条件

SuiteCRM用PHP编写,并依赖于MySQL / MariaDB数据库服务器。 因此,您需要设置一个LAMP堆栈或LEMP堆栈。 如果你比较喜欢 阿帕奇 Web服务器,然后设置LAMP堆栈。

  • 如何在Ubuntu 20.04上安装LAMP Stack

如果你比较喜欢 Nginx的 Web服务器,然后设置LEMP堆栈。

  • 如何在Ubuntu 20.04上安装LEMP Stack

您还需要一个域名。 我从NameCheap注册了我的域名,因为它价格低廉,并且终身免费提供Whois隐私保护。 事不宜迟,让我们在Ubuntu 20.04服务器上安装SuiteCRM。

步骤1:将SuiteCRM下载到Ubuntu 20.04服务器上

通过在服务器上执行以下命令来下载最新的稳定版本。

wget https://suitecrm.com/files/162/SuiteCRM-7.11/525/SuiteCRM-7.11.18.zip

安装 unzip 实用程序并将其解压缩到 /var/www/ 目录。

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip SuiteCRM-7.11.18.zip -d /var/www/

它将被保存在 /var/www/SuiteCRM-7.11.18/ 目录。 我们对其进行重命名以使其更简单。

sudo mv /var/www/SuiteCRM-7.11.18/ /var/www/suitecrm

然后运行以下命令来设置正确的权限。

cd /var/www/suitecrm

sudo chown -R www-data:www-data /var/www/suitecrm/

sudo chmod -R 755 .

sudo chmod -R 775 cache custom modules themes data upload

sudo chmod 775 config_override.php 2>/dev/null

步骤2:为SuiteCRM创建MariaDB数据库和用户

登录到MariaDB控制台。

sudo mysql -u root

接下来,使用以下命令为SuiteCRM创建一个新数据库。 本教程将其命名 suitecrm,您可以为数据库使用任何您喜欢的名称。

CREATE DATABASE suitecrm;

以下命令将创建数据库用户和密码,并同时将新数据库的所有权限授予新用户,以便稍后在SuiteCRM上可以写入数据库。 将红色文本替换为您首选的数据库名称,用户名和密码。

GRANT ALL ON suitecrm.* TO 'suitecrm'@'localhost' IDENTIFIED BY 'password';

刷新特权表并退出MariaDB控制台。

FLUSH PRIVILEGES;

EXIT;

步骤3:安装必需和推荐的PHP模块。

运行以下命令以安装SuiteCRM所需或推荐的PHP模块

sudo apt install php-imagick php7.4-fpm php7.4-mysql php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp

如果使用Apache Web服务器,则需要禁用Apache的PHP模块。

sudo a2dismod php7.4

您还需要在Apache中禁用prefork MPM模块。

sudo a2dismod mpm_prefork

现在,您需要运行以下命令来启用三个模块,以便在Apache中使用PHP-FPM,无论是否 mod_php 已安装在您的服务器上。

sudo a2enmod mpm_event proxy_fcgi setenvif

然后重新启动Apache。

sudo systemctl restart apache2

步骤4:为SuiteCRM创建Apache虚拟主机或Nginx配置文件

阿帕奇

如果使用Apache Web服务器,请为SuiteCRM创建虚拟主机。

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

将以下文本放入文件中。 代替 suitecrm.example.com 使用您的真实域名,不要忘记为其创建DNS A记录。

<VirtualHost *:80>
  ServerName suitecrm.example.com
  DocumentRoot /var/www/suitecrm/

  ErrorLog ${APACHE_LOG_DIR}/suitecrm_error.log
  CustomLog ${APACHE_LOG_DIR}/suitecrm_access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/suitecrm/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

Include /etc/apache2/conf-available/php7.4-fpm.conf

</VirtualHost>

保存并关闭文件。 然后通过以下方式启用此虚拟主机:

sudo a2ensite suitecrm.conf

重新加载Apache以使更改生效。

sudo systemctl reload apache2

现在,您应该可以在以下位置看到SuiteCRM基于Web的安装向导: http://suitecrm.example.com/install.php

Nginx的

如果您使用Nginx Web服务器,请为SuiteCRM创建一个虚拟主机。

sudo nano /etc/nginx/conf.d/suitecrm.conf

将以下文本放入文件中。 代替 suitecrm.example.com 使用您的真实域名,不要忘记为其创建DNS A记录。

server {
   listen 80;
   listen [::]:80;
   server_name suitecrm.example.com;

   root /var/www/suitecrm;
   error_log /var/log/nginx/suitecrm.error;
   access_log /var/log/nginx/suitecrm.access;
   client_max_body_size 20M;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   location ~ .php$ {
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
     #Note: If you install SuiteCRM on iRedMail server, you should use the TCP socket instead. 
     #fastcgi_pass 127.0.0.1:9999
   }

   location ~* ^/index.php {
     # try_files $uri =404;
     fastcgi_split_path_info ^(.+.php)(/.+)$;
     # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     #Note: If you install SuiteCRM on iRedMail server, you should use the TCP socket instead.
     #fastcgi_pass 127.0.0.1:9999
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;

     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /. {
        deny all;
        access_log off;
        log_not_found off;
    }

     # A long browser cache lifetime can speed up repeat visits to your page
  location ~* .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,请重新加载Nginx以使更改生效。

sudo systemctl reload nginx

现在,您应该可以在以下位置看到SuiteCRM基于Web的安装向导: http://suitecrm.example.com/install.php

步骤5:启用HTTPS

为了加密HTTP流量,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令在Ubuntu 20.04服务器上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot

如果您使用 Nginx的,那么您还需要安装Certbot Nginx插件。

sudo apt install python3-certbot-nginx

接下来,运行以下命令以获取并安装TLS证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d suitecrm.example.com

如果您使用 阿帕奇,安装Certbot Apache插件。

sudo apt install python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d suitecrm.example.com

在哪里

  • --nginx:使用nginx插件。
  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应中。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 将有效的OCSP响应装订到服务器在TLS期间提供的证书。

现在应该获得证书并自动安装。

suitecrm ubuntu certbot https

第6步:增加上传文件大小限制

PHP设置了上传文件大小的限制。 上载的默认最大文件大小为2MB。 要增加上传大小,请编辑PHP配置文件。

sudo nano /etc/php/7.4/fpm/php.ini

找到以下行(行846)。

upload_max_filesize = 2M

如下更改值。 建议将其设置为至少20MB。

upload_max_filesize = 20M

保存并关闭文件。 或者,您可以运行以下命令来更改值,而无需手动打开文件。

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

然后重新启动PHP-FPM。

sudo systemctl restart php7.4-fpm

还要重新启动Apache / Nginx。

sudo systemctl restart apache2

或者

sudo systemctl restart nginx

步骤7:在Web浏览器中完成SuiteCRM安装

现在,在浏览器地址栏中,输入您的域名,SuiteCRM即可访问Web安装向导。

https://suitecrm.your-domain.com/install.php

首先,接受GNU AGPL许可证。

安装suitecrm ubuntu 20.04

然后它将检查您的服务器环境。 如果一切正常,请单击 下一个

在Ubuntu 20上安装suitecrm

然后输入在步骤2中创建的MariaDB / MySQL数据库详细信息。您还需要为admin用户设置密码,该密码将用于登录Web界面。 将网址更改为 https://suitecrm.your-domain.com 并输入您的电子邮件地址。

suitecrm数据库配置

在里面 more options 部分中,您可以配置电子邮件设置,例如设置“发件人姓名”和“发件人地址”。

如果在邮件服务器上安装了SuiteCRM,则可以使用127.0.0.1作为SMTP服务器,使用端口25作为SMTP端口,因此SuiteCRM将使用您自己的邮件服务器发送电子邮件。

suiteCRM SMTP设置

如果SuiteCRM和您的邮件服务器运行在不同的主机上,并且您希望SuiteCRM通过邮件服务器发送电子邮件,则需要选择 Other 作为邮件运输。 然后

  • 输入邮件服务器的主机名
  • 选择端口587
  • 选择TLS加密。
  • 输入邮件服务器上电子邮件地址的登录凭据。

suitecrm smtp服务器规格

单击“下一步”按钮,SuiteCRM将被安装。

步骤8:启用HTTP2以提高性能

您可以启用HTTP2协议来提高SuiteCRM的页面加载性能。

阿帕奇

首先,您需要启用HTTP2模块。

sudo a2enmod http2

然后打开SSL虚拟主机文件。

sudo nano /etc/apache2/sites-enabled/suitecrm-le-ssl.conf

在打开后放置以下指令 <VirtualHost *:443> 标签。

Protocols h2 http/1.1

保存并关闭文件。 然后重新启动Apache,以使更改生效。

sudo systemctl restart apache2

Nginx的

要在Nginx虚拟主机中启用HTTP2协议,请找到以下行。

listen 443 ssl; # managed by Certbot

只需添加 http2ssl

listen 443 ssl http2; # managed by Certbot

保存并关闭文件。 然后重新加载Nginx。

sudo systemctl reload nginx

第9步:添加Cron作业

SuiteCRM依靠Cron作业才能正常工作。 编辑www数据用户的crontab文件。 (您不应在根用户的crontab文件中添加SuiteCRM命令。)

sudo -u www-data crontab -e

将以下行添加到此文件的末尾。

######  SuiteCRM Cron Job #######
* * * * *  php7.4 -f /var/www/suitecrm/cron.php > /dev/null 2>&1

保存并关闭文件。

如何与Mautic集成

Mautic是MailChimp等商业电子邮件服务提供商的免费开源替代方案。 Mautic有一个SugarCRM插件,由于SuiteCRM基于SugarCRM 6.x,因此我们可以使用SugarCRM插件与Mautic集成。

首先,我们需要转到SuiteCRM Web界面,单击右上角的下拉箭头以访问管理模块。

suiteCRM管理

然后向下滚动并选择OAuth密钥。

suiteCRM oauth密钥

创建一个新的OAuth密钥。 给密钥起一个类似的名字 mautic。 输入类似 matuic-suitecrm 在里面 Consumer key 场地。 然后在 Consumer Secret 场地。 保存您的更改。

suitecrm创建oauth密钥

接下来,去Mautic Settings -> Plugins -> SugarCRM。 输入SuiteCRM URL,客户端密钥(消费者密钥)和客户端密钥(消费者密钥)。 然后输入SuiteCRM管理员用户名和密码。 选择6.x /社区版本。 单击授权应用程序按钮。

suiteCRM Mautic集成

获得授权后,您可以从 NoYes。 如果在尝试授权应用程序时遇到错误,请确保将Mautic和SuiteCRM子域的DNS记录都传播到Internet。

包起来

我希望本教程可以帮助您在Ubuntu 20.04上安装SuiteCRM。 您也可以查看SuiteCRM用户手册以了解如何使用它。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻简报以获取更多提示和技巧。 保重🙂

Sidebar