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

Как установить SuiteCRM на Debian 9


SuiteCRM, ответвление SugarCRM, представляет собой корпоративную платформу управления взаимоотношениями с клиентами (CRM) с открытым исходным кодом, написанную на языке программирования PHP, которую можно использовать для создания бизнес-стратегий, действий и решений.

В этом руководстве описаны все шаги, необходимые для установки последней версии платформы SuiteCRM на Debian 9, чтобы развернуть мощную онлайн-платформу для вашего бизнеса. Приложение CRM будет развернуто на Debian Linux под HTTP-сервером Apache, PHP и механизмом базы данных MariaDB.

Требования

  • Сервер без операционной системы или виртуальный частный сервер с минимум 2 ГБ ОЗУ и минимально установленным сервером Debian 9.
  • Доступ к учетной записи root через консоль компьютера или удаленно через SSH. Помимо учетной записи root, вы также можете использовать учетную запись с привилегиями root с помощью команды sudo.
  • Внешний сетевой интерфейс, настроенный со статическим IP-адресом, или DHCP-сервер, настроенный на аренду статического IP-адреса для этого интерфейса.
  • Общественное зарегистрированное доменное имя для доступа к приложению из Интернета. Если приложение развернуто во внутренней сети, вы можете выполнить процесс установки и получить доступ к веб-сайту через IP-адрес вашего сервера.
  • Почтовый сервер, настроенный в вашем помещении для использования регистрации на веб-сайте или других функций приложения. Вы также можете использовать общедоступную почтовую службу, такую как Gmail или Yahoo!, Microsoft Exchange или другие, для отправки и получения почты.

Подготовьте сервер

На первом этапе войдите в консоль сервера с учетной записью root или пользователем с привилегиями root, полученными с помощью sudo, и настройте имя своей системы с помощью приведенной ниже команды. Убедитесь, что вы соответствующим образом заменили имя хоста компьютера, используемое в этом примере.

hostnamectl set-hostname www.mycrm.org

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

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

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

apt update
apt upgrade

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

systemctl reboot

После перезагрузки компьютера снова войдите в консоль сервера и выполните приведенную ниже команду, чтобы установить некоторые утилиты командной строки, такие как wget, curl и zip, которые позже будут использоваться для загрузки программного обеспечения через Интернет и извлечения файлов zip-архивов.

apt install wget curl zip unzip

Установите Apache и PHP

Приложение SuiteCRM будет развернуто в Debian поверх стека LAMP. Первыми компонентами стека LAMP, которые мы установим, являются HTTP-сервер Apache и интерпретатор языка динамического программирования PHP. Выполните приведенную ниже команду, чтобы установить веб-сервер Apache и все необходимые модули PHP в вашей системе.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap

Установить базу данных MariaDB

Следующим компонентом пакета программного обеспечения LAMP, который мы установим на сервер Debian, является механизм базы данных MariaDB. База данных РСУБД требуется приложению для хранения различных конфигураций платформы, таких как пользователи, сеансы, контакты, продукты, каталоги и прочее. Чтобы установить движок базы данных MariaDB и модуль PHP, необходимый для доступа к базе данных, выполните приведенную ниже команду в консоли вашего компьютера.

apt install mariadb-server php7.0-mysql mariadb-client

После установки всех компонентов LAMP проверьте, запущены ли веб-сервер Apache и демон MariaDB и прослушивают ли они сетевые подключения на портах 80 и 3306 TCP, выполнив одну из следующих команд.

netstat –tlpn
ss- tulpn

Утилита Netstat отсутствует по умолчанию в системе Debian 9. Чтобы установить утилиту netstat на сервер Debian Stretch, выполните приведенную ниже команду.

apt install net-tools

Для безопасного доступа к веб-сайту CRM по протоколу HTTPS, который защитит трафик между браузерами сервера и клиента, убедитесь, что вы также включили модуль Apache TLS и файл конфигурации сайта SSL, выполнив следующие команды.

a2enmod ssl
a2ensite default-ssl.conf

 Затем включите модуль перезаписи Apache, выполнив приведенную ниже команду. Модуль перезаписи необходим, если вы хотите изменять конфигурации веб-сервера на лету с помощью файлов .htaccess, размещенных в веб-корневом каталоге вашего домена.

a2enmod rewrite
systemctl restart apache2

 Затем активируйте модуль перезаписи, разместив необходимые правила в файлах конфигурации Apache. Во-первых, мы применим правила перезаписи в файле конфигурации Apache по умолчанию. Итак, откройте файл /etc/apache2/sites-enabled/000-default.conf для редактирования с помощью текстового редактора и вставьте приведенные ниже правила перезаписи URL после Оператор DocumentRoot, как показано в следующем отрывке.

nano /etc/apache2/sites-enabled/000-default.conf

Выдержка из файла 000-default.conf:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Закройте файл 000-default.conf , нажав CTRL+o, затем Ctrl+x, откройте файл конфигурации сайта Apache по умолчанию SSL и вставьте правила перезаписи URL-адресов, добавив следующие строки кода после директивы DocumentRoot, как показано ниже. в приведенном ниже примере:

nano /etc/apache2/sites-enabled/default-ssl.conf

 Выдержка из файла конфигурации сайта SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

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

systemctl restart apache2

Теперь вы должны посетить свой домен или IP-адрес сервера по протоколу HTTP с удаленного рабочего стола. Веб-страница Debian по умолчанию должна отображаться в вашем браузере.

http://вашдомен.tld

Конфигурация брандмауэра

Если вы не видите веб-страницу, проверьте, включено ли приложение брандмауэра UFW на сервере Debian. В этом случае вы должны ввести приведенные ниже правила, чтобы разрешить трафику HTTP и HTTPS проходить через брандмауэр.

ufw allow 'WWW Full'

или

ufw allow 80/tcp
ufw allow 443/tcp

Необработанные правила брандмауэра iptables, разрешающие входящему TCP-трафику портов 80 и 443 проходить через брандмауэр, описаны ниже.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Наконец, после того как вы добавили необходимые правила брандмауэра, проверьте, может ли веб-страница по умолчанию веб-сервера Apache отображаться в удаленном браузере, посетив ваше доменное имя или IP-адрес сервера по протоколу HTTPS. Выполните команду ifconfig или ip a, чтобы отобразить IP-адрес вашего сервера.

http://вашдомен.tld

Поскольку вы используете автоматически самозаверяющий сертификат, выдаваемый Apache при установке, сертификат, которому браузер не доверяет, в браузере должно отображаться предупреждение о том, что «Ваше соединение не защищено». Примите ненадежный сертификат, чтобы чтобы обойти ошибку и перенаправить на веб-страницу Apache по умолчанию, как показано на рисунке ниже.

Настроить MariaDB и PHP

Теперь приступим к защите корневой учетной записи MariaDB. Войдите в консоль MySQL и выполните приведенные ниже команды, чтобы обновить подключаемый модуль учетной записи root.

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(нет)]> использовать mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [mysql]> обновить пользовательский набор plugin= where user=root;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> сброс привилегий;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [mysql]> exit

Bye

 Кроме того, запустите скрипт mysql_secure_installation, предоставленный репозиториям Debian, для дополнительной защиты базы данных MariaDB. Сценарий задаст вам следующие вопросы: изменить пароль администратора MySQL, удалить анонимных пользователей, отключить удаленный вход в систему root и удалить тестовую базу данных. Ответьте утвердительно на все вопросы, как показано в приведенном ниже примере выходных данных скрипта.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Проверьте, были ли применены все меры безопасности, попытавшись войти в консоль MySQL с учетной записью root и без пароля. Доступ к базе данных должен быть запрещен, если для учетной записи root не указан пароль, как показано в приведенном ниже фрагменте команды:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Теперь попробуйте войти в консоль MySQL с учетной записью root и паролем, как показано в примере ниже. Вы должны иметь возможность войти в консоль MySQL. Введите exit, чтобы выйти из базы данных MySQL.

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Bye

На следующем шаге измените следующие переменные PHP в файле конфигурации php.ini, как описано ниже. Откройте файл /etc/php/7.0/apache2/php.ini для редактирования и измените следующие строки. Во-первых, убедитесь, что вы сделали резервную копию исходного файла конфигурации PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Найдите, отредактируйте и измените следующие переменные в файле конфигурации php.ini:

file_uploads = On
default_charset = UTF-8
memory_limit = 128M
post_max_size = 60M
upload_max_filesize = 60M
memory_limit = 256M
max_input_time = 60
max_execution_time = 6000
date.timezone = Europe/London

Замените переменную timezone в файле конфигурации PHP в соответствии с географическим положением вашего сервера. Список часовых поясов PHP можно найти по следующей ссылке http://php.net/manual/en/timezones.php.

Чтобы увеличить скорость загрузки страниц вашего сайта, включите плагин OPCache, доступный для PHP7. Вставьте следующие строки OPCache в конец файла конфигурации интерпретатора PHP после оператора [opcache], как показано в следующем отрывке:

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Наконец, закройте файл конфигурации php.ini и перезапустите демон Apache, чтобы применить изменения, введя следующую команду.

systemctl restart apache2

Чтобы отобразить все настройки PHP в браузере, создайте информационный файл PHP в корневом каталоге вашего домена, выполнив следующую команду.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Посетите файл информационного сценария PHP из удаленного браузера по следующему URL-адресу. Прокрутите вниз до параметра date, чтобы убедиться, что конфигурация часового пояса PHP и другие параметры были успешно применены.

https://domain.tld/info.php

Установить SuiteCRM

После того, как мы настроили все необходимые параметры LAMP для установки приложения SuiteCRM, посетите официальную страницу загрузки SuiteCRM по адресу https://suitecrm.com/download/ и получите последний архив zip-файла в вашей системе, выполнив приведенную ниже команду. На момент написания этого руководства последней выпущенной версией SuiteCRM был файл SuiteCRM-7.9.9.zip.

wget https://suitecrm.com/files/158/SuiteCRM-7.9/178/SuiteCRM-7.9.9.zip
ls

После завершения загрузки zip-архива SuiteCRM извлеките zip-архив в текущий рабочий каталог и выведите список извлеченных файлов, выполнив приведенные ниже команды.

unzip SuiteCRM-7.9.9.zip
ls
ls –al SuiteCRM-7.9.9

Прежде чем копировать установочные файлы в корневую папку вашего домена, убедитесь, что вы удалили файл index.html по умолчанию, установленный пакетом Apache, в корневой путь документа веб-сервера, а также удалили ранее созданный файл info.php.

rm /var/www/html/index.html
rm /var/www/html/info.php

Установочные файлы приложения SuiteCRM находятся в вашем текущем рабочем каталоге в каталоге SuiteCRM-7.9.9/. Введите команду ls, чтобы получить список файлов этого каталога. Скопируйте все содержимое каталога SuiteCRM-7.9.9/ в корневой путь документа вашего веб-сервера, выполнив следующую команду.

cp -rf SuiteCRM-7.9.9/* /var/www/html/

Затем предоставьте пользователю среды выполнения Apache (www-data) полные права на запись в корневой путь документа Apache, выполнив приведенную ниже команду. Запустите команду ls, чтобы получить список разрешений для установленных файлов, расположенных в каталоге /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Затем войдите в консоль базы данных MariaDB и создайте базу данных SuiteCRM. Выберите имя для этой базы данных и пользователя с надежным паролем для управления базой данных приложения, введя следующие команды. Убедитесь, что вы изменили имя базы данных, пользователя и пароль, используемые в этом руководстве, с вашими собственными настройками.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(нет)]> создать базу данных mycrm_db;

Query OK, 1 row affected (0.00 sec)

MariaDB [(нет)]> предоставить все привилегии на mycrm_db.* пользователю crm_user@localhost, указанному паролем1234;

Query OK, 0 rows affected (0.00 sec) 

MariaDB [(нет)]> сброс привилегий;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> exit

Bye

Теперь давайте начнем процесс установки приложения SuiteCRM. Откройте браузер и перейдите по IP-адресу или доменному имени вашего сервера по протоколу HTTPS.

http://вашдомен.tld

На первом экране установки установщик SuiteCRM отобразит лицензионное соглашение. Установите флажок «Я принимаю», чтобы принять условия лицензии, выберите язык для установки приложения и нажмите кнопку «Далее», чтобы начать процесс установки, как показано на снимке экрана ниже.

На следующем экране установки установщик SuiteCRM проверит требования к вашей системной среде и отобразит сообщение OK, если все конфигурации PHP и сервера пройдены. Чтобы продолжить процесс установки, нажмите кнопку «Далее», как показано на скриншоте ниже.

Далее установщик отобразит параметры подключения к базе данных и страницу конфигурации сайта. На левой панели выберите MySQL с расширением MySQLi в качестве типа базы данных и укажите имя базы данных MySQL, созданное для установки приложения SuiteCRM, адрес хоста сервера базы данных, имя пользователя базы данных и пароль, необходимые для доступа к базе данных SuiteCRM. Кроме того, выберите «То же, что и администратор» в «Пользователь базы данных SuiteCRM /». На правой плоскости добавьте имя пользователя администратора приложения и установите надежный пароль для учетной записи администратора. Проверьте URL-адрес экземпляра SuiteCRM, чтобы он соответствовал вашему доменному имени по протоколу HTTPS, на порту 443 и добавьте адрес электронной почты учетной записи администратора. Используйте следующее изображение в качестве руководства для настройки этого шага.

Затем на том же экране установки нажмите «Выбрать демонстрационные данные» в меню «Дополнительные параметры» и выберите, чтобы не заполнять базу данных SuiteCRM демонстрационными данными. Затем щелкните меню «Выбор сценария» и выберите, чтобы включить следующие модули SuiteCRM: «Продажи», «Маркетинг», «Финансы», «Управление услугами» и «Управление проектами». Если вам не нужен модуль при установке приложения, вы можете оставить его не отмеченным и включить его после завершения процесса установки, используя страницу администрирования приложения.

Затем прокрутите вниз и нажмите меню «Спецификация SMTP-сервера», чтобы включить опцию электронной почты SuiteCRM. Добавьте имя и адрес электронной почты, которые должны отображаться в заголовке сообщения \От. Затем выберите своего поставщика услуг электронной почты и укажите настройки почтового сервера. В этом руководстве мы будем использовать поставщика услуг Gmail для отправки электронной почты и настройки почтового сервера можно найти на снимке экрана ниже.После того, как вы выполнили необходимые настройки для включения вашего поставщика почтовых услуг, нажмите на меню «Брендинг» и добавьте имя, которое будет отображаться в строке заголовка браузера для приложения SuiteCRM, и загрузите свое собственное изображение логотипа сайта.

Затем снова прокрутите вниз и нажмите меню «Настройки языковых стандартов системы» и укажите, как формат времени, часовой пояс и настройки валюты должны отображаться в приложении SuiteCRM. Наконец, пока оставьте параметры Site Security неотмеченными и нажмите кнопку «Далее», чтобы завершить процесс установки. Вы можете использовать изображение ниже, чтобы завершить этот шаг.

После завершения процесса установки вы будете перенаправлены на страницу входа в SuiteCRM. Чтобы получить доступ к панели администратора приложения, войдите в SuiteCRM с учетными данными учетной записи администратора, настроенными в процессе установки, как показано на изображении ниже.

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

rm -rf /var/www/html/install/

Вы также можете посетить панель инструментов SuiteCRM, перейдя к IP-адресу вашего сервера или доменному имени по протоколу HTTPS. Внешний вид панели администратора SuiteCRM представлен на снимке экрана ниже.

http://вашдомен.tld

Наконец, чтобы автоматически перенаправить посетителей на HTTPS, чтобы они могли безопасно получить доступ к интерфейсу SuiteCRM из своих браузеров, вернитесь к терминалу вашего сервера и отредактируйте автоматически сгенерированный файл .htaccess, расположенный в корневом пути документа вашего домена, выполнив приведенную ниже команду.

nano /var/www/html/.htaccess

В файле .htaccess найдите строку и вставьте приведенные ниже правила строки после RewriteEngine On . для автоматического перенаправления доменного трафика на HTTPS.

Выдержка из файла .htaccess:

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

В нижней части файла вы можете изменить собственные настройки PHP-сервера веб-сервера, добавив другие строки с настройками, отражающими ваши собственные ресурсы и конфигурации сервера.

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

Чтобы запустить планировщики SuiteCRM, отредактируйте файл crontab учетной записи времени выполнения веб-сервера с помощью приведенной ниже команды и добавьте следующую задачу cron для запуска каждую минуту.

crontab -e -u www-data

пример файла crontab:

*    *    *    *    *     /usr/bin/php7.0  -f  /var/www/html/cron.php > /dev/null 2>&1

Если вы хотите обойти предупреждения браузера, которые генерируются каждый раз, когда клиент посещает ваше приложение, вам следует подумать о покупке сертификата, выданного доверенным центром сертификации, или выпустить бесплатный сертификат от ЦС Let’s Encrypt.

Вот и все! Веб-приложение SuiteCRM было успешно установлено и настроено на сервере Debian 9 поверх стека LAMP.

Для дальнейшей настройки платформы SuiteCRM обязательно посетите вики-страницу приложения по следующему адресу: https://suitecrm.com/wiki/index.php/Main_Page.