如何在 CentOS 7 上使用 Nginx 安装 SuiteCRM如何在 CentOS 7 上使用 Nginx 安装 SuiteCRM如何在 CentOS 7 上使用 Nginx 安装 SuiteCRM如何在 CentOS 7 上使用 Nginx 安装 SuiteCRM
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 7 上使用 Nginx 安装 SuiteCRM

在此页

  1. 我们将做什么
  2. 先决条件
  3. 第 1 步 - 安装 Nginx Web 服务器
  4. 第 2 步 - 安装和配置 PHP-FPM
  5. 第 3 步 - 安装和配置 MariaDB
  6. 第 4 步 - 下载并配置 SuiteCRM
    1. 下载 SuiteCRM
    2. 配置防火墙
    3. 生成新的 SSL Letsencrypt
    4. 配置 SuiteCRM Nginx 虚拟主机

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

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

    我们将要做什么

    1. 安装 Nginx Web 服务器
    2. 安装和配置 PHP-FPM
    3. 安装和配置 MariaDB
    4. 下载并配置 SuiteCRM
    5. 通过 Web 安装程序安装 SuiteCRM
    6. 最终配置

    先决条件

    • CentOS 7 服务器
    • 根权限

    第 1 步 - 安装 Nginx Web 服务器

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

    ssh 

    以 root 用户身份连接后,我们需要在我们的系统上安装第三方存储库。具体来说,我们需要在安装 Nginx 之前在系统上安装 EPEL(Extra Package for Enterprise 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 状态代码。

    第 2 步 - 安装和配置 PHP-FPM

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

    使用 rpm 命令将新的 PHP 7 存储库 webtatic 添加到系统。

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

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

    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 文件。

    第 3 步 - 安装和配置 MariaDB

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

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

    yum install -y mariadb mariadb-server

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

    systemctl start mariadb
    systemctl enable mariadb

    所以 MariaDB 现在已经安装并运行了。现在,我们需要使用 mysql_secure_installation 命令配置 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 安装创建一个新数据库和一个新用户。为此,使用用户 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安装的数据库配置就完成了。

    第 4 步 - 下载并配置 SuiteCRM

    在此步骤中,我们将为 SuiteCRM 安装执行一些任务。我们将下载 SuiteCRM 源代码,配置 Firewalld,生成新的 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

    之后创建一个缓存目录,对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/ 目录中。

    配置防火墙

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

    yum -y install firewalld

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

    systemctl start firewalld
    systemctl enable firewalld

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

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

    现在使用以下命令重新加载 firewalld 规则。

    firewall-cmd --reload

    所以现在,新的 HTTP 和 HTTPS 端口已添加到 Firewalld。如果要查看详细配置,请运行以下命令。

    firewall-cmd --list-all

    生成新的 SSL Letsencrypt

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

    要生成新的 SSL letsencrypt 证书,我们需要先将 letsencrypt 命令工具 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。

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

    /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 配置就完成了。

    第 5 步 - SuiteCRM Web 安装程序

    打开 Web 浏览器并访问 SuiteCRM 域名:suitecrm.hakase-labs.co。

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

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

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

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

    滚动到底部并单击下一步以继续安装 SuiteCRM。

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

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

    您将获得如下所示的 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 安装已经完成。

    参考

    • https://suitecrm.com/wiki/index.php/安装

©2015-2025 艾丽卡 support@alaica.com