如何使用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期间提供的证书。
现在应该获得证书并自动安装。
第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许可证。
然后它将检查您的服务器环境。 如果一切正常,请单击 下一个。
然后输入在步骤2中创建的MariaDB / MySQL数据库详细信息。您还需要为admin用户设置密码,该密码将用于登录Web界面。 将网址更改为 https://suitecrm.your-domain.com
并输入您的电子邮件地址。
在里面 more options
部分中,您可以配置电子邮件设置,例如设置“发件人姓名”和“发件人地址”。
如果在邮件服务器上安装了SuiteCRM,则可以使用127.0.0.1作为SMTP服务器,使用端口25作为SMTP端口,因此SuiteCRM将使用您自己的邮件服务器发送电子邮件。
如果SuiteCRM和您的邮件服务器运行在不同的主机上,并且您希望SuiteCRM通过邮件服务器发送电子邮件,则需要选择 Other
作为邮件运输。 然后
- 输入邮件服务器的主机名
- 选择端口587
- 选择TLS加密。
- 输入邮件服务器上电子邮件地址的登录凭据。
单击“下一步”按钮,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
只需添加 http2
后 ssl
。
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界面,单击右上角的下拉箭头以访问管理模块。
然后向下滚动并选择OAuth密钥。
创建一个新的OAuth密钥。 给密钥起一个类似的名字 mautic
。 输入类似 matuic-suitecrm
在里面 Consumer key
场地。 然后在 Consumer Secret
场地。 保存您的更改。
接下来,去Mautic Settings
-> Plugins
-> SugarCRM
。 输入SuiteCRM URL,客户端密钥(消费者密钥)和客户端密钥(消费者密钥)。 然后输入SuiteCRM管理员用户名和密码。 选择6.x /社区版本。 单击授权应用程序按钮。
获得授权后,您可以从 No
到 Yes
。 如果在尝试授权应用程序时遇到错误,请确保将Mautic和SuiteCRM子域的DNS记录都传播到Internet。
包起来
我希望本教程可以帮助您在Ubuntu 20.04上安装SuiteCRM。 您也可以查看SuiteCRM用户手册以了解如何使用它。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻简报以获取更多提示和技巧。 保重🙂