在CentOS 7上使用Nginx安装SuiteCRM

SuiteCRM是一个基于PHP的开源CRM(客户关系管理)软件。它是流行的CRM软件SugarCRM的分支,在后者背后的团队决定停止开发免费版本后,它变得更加流行。SuiteCRM在2015年和2016年的BOSSIE上被提名为最佳开源CRM软件。

在本教程中,我们将向您展示如何使用Nginx作为Web服务器安装和配置SuiteCRM。CRM软件将在启用HTTPS的LEMP堆栈下运行。为此,我们将使用CentOS 7作为主要操作系统。

步骤1-安装Nginx Web服务器
我们必须做的第一步是连接服务器并安装SuiteCRM的基本堆栈。使用以下命令通过SSH连接到服务器:

ssh [email protected]

以root用户身份连接后,我们需要在系统上安装第三方存储库。具体来说,在安装Nginx之前,我们需要在系统上安装EPEL(企业Linux的额外包)存储库。

使用yum命令按以下方式安装EPEL存储库:

yum -y install epel-release

现在我们可以在系统上安装Nginx web服务器了。

yum -y install nginx

如果安装完成,请启动服务,并使用systemctl命令使其在启动时自动运行,如下所示。

systemctl start nginx
systemctl enable nginx

Nginx web服务器现在已安装,默认情况下,它在端口80上运行。使用netstat或curl命令进行检查。

netstat -plntu
curl -I localhost

确保端口80处于“LISTEN”状态,并且curl命令在其输出中给出200个HTTP状态代码。

图片[1]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

步骤2-安装和配置PHP-FPM
在此步骤中,我们将在CentOS 7服务器上安装和配置PHP-FPM版本7。默认情况下,centOS不为新的PHP版本7提供存储库。因此,我们需要为PHP-FPM 7安装添加一个不同的存储库。

使用rpm命令将新的PHP 7存储库“webstatic”添加到系统中。

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

现在使用yum命令安装PHP7包和扩展,如下所示。

sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

如果安装完成,请使用vim编辑默认的“php.ini”配置文件。

vim /etc/php.ini

将SuiteCRM安装的最大上传文件大小更改为100MB。SuiteCRM至少需要6MB以上。

upload_max_filesize = 100M

取消对以下CGI行的注释,并将值更改为0。

cgi.fix_pathinfo=0

对于会话路径配置,取消注释该行并将路径更改为“/var/lib/session”,如下所示。

session.save_path = "/var/lib/php/session"

就是这样。保存更改并退出vim。

现在为会话路径创建一个新目录,并将目录的所有权权限更改为“nginx”用户和组。

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session

接下来,我们需要编辑php-fpm配置。为此,转到“/etc/php-fpm.d”目录并编辑配置文件www.conf。

cd /etc/php-fpm.d/
vim www.conf

现在将用户和组行更改为“nginx”。

user = nginx
group = nginx

PHP-FPM将在unix套接字文件下运行,而不是使用系统端口。

更改“听”行:

listen = /var/run/php-fpm/php-fpm.sock

设置Unix套接字文件的权限和套接字文件的所有权,如下所示。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

就是这样。保存更改并退出编辑器。

现在启动PHP-FPM服务,并将其添加到启动时自动启动。

systemctl start php-fpm
systemctl enable php-fpm

至此,PHP-FPM被安装并运行套接字文件。

您可以使用netstat命令进行检查:

netstat -pl | grep php

确保您看到php-fpm.sock文件。

图片[2]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

步骤3-安装和配置MariaDB
在这一步中,我们将安装MariaDB,然后启动并使其能够在每次系统启动时启动。最后,我们将为SuiteCRM安装创建新的数据库和用户。

使用以下yum命令从CentOS存储库安装mariadb。

yum install -y mariadb mariadb-server

启动MariaDB服务,并使用以下命令启用它以启动启动时间。

systemctl start mariadb
systemctl enable mariadb

MariaDB现已安装并运行。现在,我们需要使用“mysql_secure_installation”命令配置根密码。

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根密码已配置。

接下来,我们需要为SuiteCRM安装创建一个新数据库和一个新用户。为此,请使用用户“root”和密码登录MySQL shell。

mysql -u root -p

创建一个名为“suitecrm.db”的新数据库和一个密码为“hakase-labs123”的新用户“crmadmin”。所有这些都可以使用下面的mysql查询来完成。

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

因此,SuiteCRM安装的数据库配置已完成。

图片[3]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

步骤4-下载并配置SuiteCRM
在此步骤中,我们将执行一些SuiteCRM安装任务。我们将下载SuiteCRM源代码,配置防火墙,生成新的SSL Letsencrypt,并为SuiteCRM配置nginx虚拟主机。那么,让我们开始吧。

下载SuiteCRM
如果还没有,请使用下面的yum命令在您的系统上安装git。

yum -y install git

现在转到’/opt’目录,使用git命令下载SuiteCRM代码,如下所示。

cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
图片[4]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

之后,创建一个缓存目录,更改suitecrm目录中某些文件和目录的权限,然后将所有suitecrm代码的所有者更改为“nginx”用户和组。

cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm

因此,suiteCRM代码已下载到“/opt/suiteCRM/”目录下的服务器上。

图片[5]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

配置防火墙
如果您的服务器上没有运行防火墙,请使用以下命令安装它。

yum -y install firewalld

启动服务并使其在启动时运行。

systemctl start firewalld
systemctl enable firewalld

接下来,我们需要打开新的端口HTTP和HTTPS。它用于SuiteCRM访问。为此运行以下防火墙cmd命令。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

现在使用以下命令重新加载防火墙规则。

firewall-cmd --reload
图片[6]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

现在,防火墙中添加了新的HTTP和HTTPS端口。如果要查看详细配置,请运行以下命令。

firewall-cmd --list-all
图片[7]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

生成新的SSL Letsencrypt
在本教程中,我们将使用SSL访问SuiteCRM。为此,我们将使用letsencrypt的免费SSL证书。

要生成新的SSL letsencrypt证书,我们需要首先将letsencryct命令工具“certbot”安装到我们的系统中。它可以在CentOS存储库中找到。使用以下yum命令安装certbot。

yum -y install certbot

certbot安装完成后,为suiteCRM域名“suiteCRM.hakase-labs.co”生成SSL证书文件。

运行以下命令以生成SSL证书文件。

certbot certonly --standalone -d suitecrm.hakase-labs.co

系统将询问您续订通知的电子邮件地址-键入您的电子邮件并按Enter键继续。

对于Letsencrypt TOS,键入“A”表示同意,然后再次按Enter键。对于共享电子邮件地址查询,键入“N”并按Enter键。

图片[8]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

证书生成完成后,您将得到如下结果。

图片[9]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

在“/etc/letsencrypt/live/domain.com”目录中生成新的证书文件。

配置SuiteCRM Nginx虚拟主机
转到Nginx配置目录“/etc/Nginx”,并使用Vim编辑器在conf.d目录中创建一个新的suitecrm.conf文件。

cd /etc/nginx/
vim conf.d/suitecrm.conf

在那里,将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 "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; 
 
     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 /usr/share/nginx/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:/var/run/php-fpm/php-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
     }
 
     location ~ /\.ht {
         deny all;
     }
 
 }

就是这样。保存更改并退出Vim。

现在测试nginx配置,确保没有错误。完成后,重新启动服务。

nginx -t
systemctl restart nginx

至此,SuiteCRM安装的nginx配置已完成。

图片[10]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

步骤5-SuiteCRM Web安装程序
打开Web浏览器并访问SuiteCRM域名:“SuiteCRM.hakase-labs.co”。

您将被重定向到HTTPS连接install.php,您将获得有关GNU AFFERO许可证的页面。选中“我接受”框,然后单击“下一步”。

图片[11]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

在系统环境页面上,确保所有结果都是“OK”。

图片[12]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

然后单击“下一步”继续。

接下来是管理和数据库配置。键入数据库信息,如dbname、dbuser和dbpassword。对于管理员配置,请键入您的用户名、电子邮件和密码。

图片[13]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

滚动到底部,然后单击“下一步”继续安装SuiteCRM。

等待片刻,安装完成后,您将被重定向到登录页面,如下所示。

图片[14]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

在此页面上,键入管理员用户和密码,然后按“登录”按钮。

您将获得如下图所示的SuiteCRM仪表板。

图片[15]_在CentOS 7上使用Nginx安装SuiteCRM_马特资源网

因此,SuiteCRM已安装。

第6步-最终配置
在最后一步中,我们需要向cronjob添加配置。

基本上,我们需要创建新的cron作为nginx用户和组。

sudo crontab -e -u nginx

并粘贴以下配置。

*    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

保存并退出。

就是这样。CentOS 7上Nginx web服务器的SuiteCRM安装已经完成。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容