Как установить SuiteCRM с Nginx на CentOS 7
На этой странице
- Что мы будем делать
- Предпосылки
- Шаг 1. Установите веб-сервер Nginx.
- Шаг 2. Установите и настройте PHP-FPM.
- Шаг 3. Установите и настройте MariaDB
- Шаг 4. Загрузите и настройте SuiteCRM
- Загрузить SuiteCRM
- Настройка брандмауэра
- Создать новый SSL Letsencrypt
- Настройка виртуального хоста SuiteCRM Nginx
SuiteCRM — это программное обеспечение CRM (управление взаимоотношениями с клиентами) с открытым исходным кодом, основанное на PHP. Это ответвление популярного программного обеспечения CRM SugarCRM, которое стало более популярным после того, как команда последнего решила прекратить разработку бесплатной версии. SuiteCRM был номинирован как лучшее программное обеспечение CRM с открытым исходным кодом на BOSSIE 2015 и 2016.
В этом руководстве мы покажем вам, как установить и настроить SuiteCRM, используя Nginx в качестве веб-сервера. Программное обеспечение CRM будет работать в стеке LEMP с включенным HTTPS. И для этой цели лучше использовать CentOS 7 в качестве основной ОС.
Что мы будем делать
- Установите веб-сервер Nginx.
- Установка и настройка PHP-FPM
- Установите и настройте MariaDB
- Загрузить и настроить SuiteCRM
- Установите SuiteCRM с помощью веб-установщика
- Окончательная конфигурация
Предпосылки
- Сервер 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/Установка