如何在 Ubuntu 16.04 上使用 Nginx 安装 SuiteCRM
本教程适用于这些操作系统版本
- Ubuntu 22.04(果酱水母)
- Ubuntu 16.04(Xenial Xerus)
在此页
- 我们将做什么
- 先决条件
- 第 1 步 - 安装 Nginx Web 服务器
- 第 2 步 - 安装和配置 PHP-FPM
- 第 3 步 - 安装和配置 MariaDB
- 第 4 步 - 下载并配置 SuiteCRM
- 第 5 步 - SuiteCRM 网络安装程序
- 第 6 步 - 最后的步骤
- 参考资料
SuiteCRM是一款基于PHP的开源CRM(客户关系管理)软件。它是流行的 CRM 软件 SugarCRM 的一个分支,在 SugarCRM 决定停止开发免费版本后变得更加流行。 SuiteCRM 被提名为 BOSSIE 2015 和 2016 年度最佳开源 CRM 软件。
在本教程中,我将逐步向您展示如何安装开源 CRM SuiteCRM。软件将运行在带有MariaDB数据库的Nginx Web服务器下,使用Ubuntu 16.04系统。
我们将要做什么
- 安装 Nginx Web 服务器
- 安装和配置 PHP-FPM
- 安装和配置 MariaDB
- 下载并配置 SuiteCRM
- SuiteCRM 网络安装程序
- 最后的步骤
先决条件
- Ubuntu 16.04 服务器
- 根权限
第 1 步 - 安装 Nginx Web 服务器
SuiteCRM 是一个基于网络的软件,它需要一个网络服务器。我们可以为这个软件使用 Apache 或 Nginx。在本教程中,我们将使用 Nginx Web 服务器而不是 Apache Web 服务器。
连接到您的 Ubuntu 服务器并更新存储库。
ssh
sudo apt update
现在按以下方式使用 apt 命令安装 Nginx Web 服务器。
apt install -y nginx
安装后,启动 nginx 并使其在每次系统启动时自动启动。
systemctl start nginx
systemctl enable nginx
Nginx Web服务器已经安装好,运行在默认的HTTP端口80下,使用netstat命令查看,也可以使用curl查看HTTP状态码。
netstat -plntu
curl -I localhost

第 2 步 - 安装和配置 PHP-FPM
SuiteCRM 与多个 PHP 版本兼容。在本教程中,我们将使用最新版本的 PHP 7.0 进行 SuiteCRM 安装。
使用以下 apt 命令安装 PHP 和 PHP-FPM 7 以及其他所需的扩展。
apt install -y php7.0-fpm php7.0-mcrypt php7.0-imap php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl
安装完成后,进入PHP配置目录,编辑cli和fpm配置的php.ini文件。
cd /etc/php/7.0/
编辑 php.ini 文件。
vim cli/php.ini
vim fpm/php.ini
更改最大上传文件大小值。 SuiteCRM 至少需要 6MB,但最好设置 100MB 作为值。
upload_max_filesize = 100M
取消注释 CGI 行(如下所示)并将值更改为 0。
cgi.fix_pathinfo=0
对于会话路径配置,取消注释下面的行。
session.save_path = "/var/lib/php/sessions"
就是这样。保存这些更改并退出。
现在,我们需要为 PHP 会话文件创建一个新目录,并将目录的所有者更改为 www-data 用户和组。
mkdir -p /var/lib/php/sessions
chown -R www-data:www-data /var/lib/php/sessions
PHP 和 PHP-FPM 配置已经完成。现在启动该服务并使其在每次系统启动时启动。
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
默认情况下,在 Ubuntu 系统上,PHP-FPM 将运行在 sock 文件下,而不是使用系统端口。使用下面的 netstat 命令检查它。
netstat -pl | grep php
并确保您看到的结果类似于以下屏幕截图中显示的结果。

第 3 步 - 安装和配置 MariaDB
在此步骤中,我们将安装 MariaDB 并配置 root 密码。然后为 SuiteCRM 安装配置一个新的数据库。
使用下面的 apt 命令安装 MariaDB。
apt install -y mariadb-server mariadb-client
安装后,启动该服务并使其在每次系统启动时启动。
systemctl start mysql
systemctl enable mysql
接下来,使用 mysql_secure_installation 命令配置 MariaDB root 密码,如下所示。
mysql_secure_installation
系统将询问您有关配置的信息,键入 Y 并按 Enter。
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB root 密码已配置。
现在我们将为 SuiteCRM 安装创建一个新的数据库和用户。创建一个名为 suitecrm_db 的数据库,以及一个密码为 hakase-labs123 的新用户 crmadmin。连接到 mysql shell 并运行以下 mysql 查询。
mysql -u root -p
Type your password:
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

用于 SuiteCRM 安装的 MariaDB 数据库配置已完成。
第 4 步 - 下载并配置 SuiteCRM
在此步骤中,我们将执行一些任务,为安装 SuiteCRM 准备系统。我们将下载SuiteCRM源码,配置UFW防火墙,生成Letsencrypt证书,为SuiteCRM配置nginx虚拟主机。
- 下载 SuiteCRM 源代码
suiteCRM 源代码可在 Github 上获得。确保系统上安装了 git 命令。或者,如果您没有 git 包,请使用下面的 apt 命令安装它。
apt install -y git
现在转到 /opt 目录并使用以下 git clone 命令克隆存储库。
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
转到 suitecrm 目录并创建一个新的缓存目录。然后更改一些文件和目录的权限,最后,我们需要将suitecrm目录的所有权权限更改为www-data用户和组。
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown www-data:www-data -R /opt/suitecrm

SuiteCRM 源代码已下载。
- 配置 UFW 防火墙
在 Ubuntu 上,我们将使用 ufw 防火墙。使用 ufw 命令打开新端口 HTTP、HTTPS 和 SSH,如下所示。
ufw allow ssh
ufw allow http
ufw allow https
现在启动防火墙并使用 ufw enable 命令使其每次在系统启动时启动。
ufw enable
键入 y 并按 Enter 以启用防火墙。

如果要检查防火墙状态,请使用 ufw status 命令。
ufw status
您将获得防火墙状态,包括您添加的端口。

- 生成 Letsencrypt 证书
在本教程中,SuiteCRM 将使用 HTTPS 在客户端和服务器之间建立更安全的连接。为此,我们将使用 Letsencrypt 提供的免费 SSL 证书。
在生成证书文件之前,我们需要在系统上安装letsencrypt客户端代理。它在 Ubuntu 存储库中可用,因此请使用下面的 apt 命令安装它。
apt install -y letsencrypt
安装letsencrypt后,我们需要在生成证书文件之前停止nginx服务。
systemctl stop nginx
现在使用下面的 letsencrypt 命令生成 SSL 证书文件。
letsencrypt certonly --standalone -d suitecrm.hakase-labs.co
注意:--standalone选项会在系统上创建一个临时的web服务器,所以我们需要在生成证书文件之前停止Nginx web服务器。
系统会询问您用于更新通知的电子邮件地址。键入您的电子邮件地址,然后单击“确定”。

对于 Letsencrypt 协议,选择 Agree 并按 Enter。

/etc/letsencrypt/live/domain.com 目录中生成了新的 Letsencrypt SSL。

- 为 SuiteCRM 配置 Nginx 虚拟主机
进入 Nginx 配置目录,在 sites-available 目录下新建一个虚拟主机文件 suitecrm。
cd /etc/nginx
vim sites-available/suitecrm
将以下 Nginx 配置粘贴到那里。
# Server Config - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL for SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Enable http2
listen 443 http2 ssl;
# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /var/www/html;
}
## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
保存并退出。
现在激活虚拟主机,测试配置,确保没有错误。然后重新启动网络服务器。
ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

SuiteCRM 安装的系统配置已经完成。
第 5 步 - SuiteCRM Web 安装程序
打开您的网络浏览器并在地址栏中输入 SuiteCRM URL,我的是 suitecrm.hakase-labs.co
您将被重定向到 HTTPS 连接和 install.php 页面。
在出现的页面上,您将看到 GNU AFFERO 许可证 - 选中我接受并单击下一步。

现在您将获得有关 SuiteCRM 安装系统环境的页面。
确保所有结果都正常,如下图所示。

单击下一步继续。
接下来是数据库和管理员用户配置。输入您的数据库信息,dbname suitecrm_db,dbuser crmadmin 和密码 hakase-labs123。并键入您的管理员用户、密码和电子邮件,如下所示。

滚动到底部并单击下一步以继续安装 SuiteCRM。
稍等片刻安装,完成后,您将被重定向到登录页面,如下所示。

输入您的管理员用户和密码,然后单击“登录”按钮。
现在您将能够看到默认的 SuiteCRM 仪表板。

SuiteCRM 已在 Ubuntu 16.04 系统上安装了 Nginx Web 服务器。
第 6 步 - 最后的步骤
对于最后一步,我们将在 www-data 用户下创建一个新的 Cron 作业。
运行以下命令以添加新的 Cron 作业。
sudo crontab -e -u www-data
在下面粘贴 Cron 脚本配置。
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
保存并退出。然后重新启动 Cron 服务。
systemctl restart cron
SuiteCRM 在 Ubuntu 16.04 上的安装已经完成。
参考
- https://suitecrm.com/wiki/