Поиск по сайту:

Как установить SuiteCRM с Nginx на CentOS 7


На этой странице

  1. Что мы будем делать
  2. Предпосылки
  3. Шаг 1. Установите веб-сервер Nginx.
  4. Шаг 2. Установите и настройте PHP-FPM.
  5. Шаг 3. Установите и настройте MariaDB
  6. Шаг 4. Загрузите и настройте SuiteCRM
    1. Загрузить SuiteCRM
    2. Настройка брандмауэра
    3. Создать новый SSL Letsencrypt
    4. Настройка виртуального хоста SuiteCRM Nginx

    SuiteCRM — это программное обеспечение CRM (управление взаимоотношениями с клиентами) с открытым исходным кодом, основанное на PHP. Это ответвление популярного программного обеспечения CRM SugarCRM, которое стало более популярным после того, как команда последнего решила прекратить разработку бесплатной версии. SuiteCRM был номинирован как лучшее программное обеспечение CRM с открытым исходным кодом на BOSSIE 2015 и 2016.

    В этом руководстве мы покажем вам, как установить и настроить SuiteCRM, используя Nginx в качестве веб-сервера. Программное обеспечение CRM будет работать в стеке LEMP с включенным HTTPS. И для этой цели лучше использовать CentOS 7 в качестве основной ОС.

    Что мы будем делать

    1. Установите веб-сервер Nginx.
    2. Установка и настройка PHP-FPM
    3. Установите и настройте MariaDB
    4. Загрузить и настроить SuiteCRM
    5. Установите SuiteCRM с помощью веб-установщика
    6. Окончательная конфигурация

    Предпосылки

    • Сервер CentOS 7
    • Привилегии root

    Шаг 1. Установите веб-сервер Nginx.

    Первый шаг, который мы должны сделать, это подключить сервер и установить базовый стек для SuiteCRM. Подключитесь к серверу через SSH с помощью следующей команды:

    ssh 

    После подключения в качестве пользователя root нам необходимо установить сторонний репозиторий в нашей системе. В частности, нам нужно установить репозиторий EPEL (Extra Package for Enterprise Linux) в системе перед установкой Nginx.

    Установите репозиторий EPEL с помощью команды yum следующим образом:

    yum -y install epel-release

    Теперь мы можем установить веб-сервер Nginx в систему.

    yum -y install nginx

    Если установка завершена, запустите службу и включите ее автоматический запуск во время загрузки с помощью команды systemctl, как показано ниже.

    systemctl start nginx
    systemctl enable nginx

    Веб-сервер Nginx теперь установлен и по умолчанию работает на порту 80. Проверьте его с помощью команд netstat или curl.

    netstat -plntu
    curl -I localhost

    Убедитесь, что порт 80 находится в состоянии LISTEN, а команда curl выдает код состояния HTTP 200 в своем выводе.

    Шаг 2 — Установите и настройте PHP-FPM

    На этом этапе мы установим и настроим PHP-FPM версии 7 на сервере CentOS 7. По умолчанию CentOS не предоставляет репозиторий для новой версии PHP 7. Поэтому нам нужно добавить другой репозиторий для установки PHP-FPM 7.

    Добавьте новый webtatic репозиторий PHP 7 в систему с помощью команды rpm.

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

    Теперь установите пакеты и расширения PHP 7 с помощью команды yum, как показано ниже.

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

    Если установка завершена, отредактируйте файл конфигурации php.ini по умолчанию с помощью vim.

    vim /etc/php.ini

    Измените максимальный размер загружаемого файла для установки SuiteCRM на 100 МБ. По крайней мере, SuiteCRM требуется более 6 МБ.

    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.

    Установите mariadb из репозитория CentOS, используя следующую команду yum.

    yum install -y mariadb mariadb-server

    Запустите службу MariaDB и включите ее для запуска во время загрузки с помощью приведенных ниже команд.

    systemctl start mariadb
    systemctl enable mariadb

    Итак, теперь MariaDB установлена и работает. Теперь нам нужно настроить пароль root с помощью команды 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

    Итак, root-пароль MariaDB настроен.

    Далее нам нужно создать новую базу данных и нового пользователя для установки SuiteCRM. Для этого войдите в оболочку MySQL под пользователем root и своим паролем.

    mysql -u root -p

    Создайте новую базу данных с именем suitecrm_db и нового пользователя crmadmin с паролем hakase-labs123. Все это можно сделать с помощью запросов 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 и настроим виртуальный хост nginx для SuiteCRM. Итак, давайте начнем.

    Скачать SuiteCRM

    Если это еще не сделано, установите git в вашей системе с помощью приведенной ниже команды yum.

    yum -y install git

    Теперь перейдите в каталог /opt и загрузите код SuiteCRM с помощью команды git, как показано ниже.

    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

    Итак, теперь в файл Firewalld добавлены новые порты HTTP и HTTPS. Если вы хотите увидеть подробную конфигурацию, выполните команду ниже.

    firewall-cmd --list-all

    Создать новый SSL Letsencrypt

    В этом руководстве мы будем использовать SSL для доступа к SuiteCRM. Для этой цели мы будем использовать бесплатные SSL-сертификаты от letsencrypt.

    Чтобы сгенерировать новые SSL-сертификаты letsencrypt, нам нужно сначала установить certbot командного инструмента letsencrypt в нашу систему. Он доступен в репозитории CentOS. Установите certbot с помощью следующей команды yum.

    yum -y install certbot

    Когда установка certbot будет завершена, сгенерируйте файл SSL-сертификата для доменного имени suiteCRM suitecrm.hakase-labs.co.

    Запустите команду ниже, чтобы сгенерировать файлы сертификатов SSL.

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

    Вас спросят об адресе электронной почты для обновления уведомления — введите свой адрес электронной почты и нажмите Enter, чтобы продолжить.

    Для TOS Letsencrypt введите A, чтобы согласиться, и снова нажмите Enter. А для запроса общего адреса электронной почты введите N и нажмите Enter.

    Когда генерация сертификата будет завершена, вы получите результат, как показано ниже.

    Новые файлы сертификатов создаются в каталоге /etc/letsencrypt/live/domain.com.

    Настройка виртуального хоста SuiteCRM Nginx

    Перейдите в каталог конфигурации Nginx /etc/nginx и создайте новый файл suitecrm.conf в каталоге conf.d с помощью редактора Vim.

    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

    На этом настройка nginx для установки SuiteCRM завершена.

    Шаг 5. Веб-установщик SuiteCRM

    Откройте веб-браузер и перейдите на доменное имя SuiteCRM: suitecrm.hakase-labs.co.

    Вы будете перенаправлены на HTTPS-соединение install.php, и вы получите страницу о лицензии GNU AFFERO. Установите флажок «Я принимаю» и нажмите «Далее».

    На странице системной среды убедитесь, что все результаты в порядке.

    И нажмите Далее, чтобы продолжить.

    Далее идет администрирование и настройка базы данных. Введите информацию о своей базе данных, такую как 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

    Сохранить и выйти.

    Вот и все. Установка SuiteCRM с веб-сервером Nginx на CentOS 7 завершена.

    Ссылка

    • https://suitecrm.com/wiki/index.php/Установка