Перейти к основному содержимому
Версия: 7.0

Alma/Rocky/CentOS/MSVSPhere

к сведению

Инструкция по установке Пассворка на ОС:

  • CentOS 8 Stream, Alma Linux 8, Rocky Linux 8, MSVSPhere 8.
  • CentOS 9 Stream, Alma Linux 9, Rocky Linux 9, MSVSPhere 9.
осторожно

В инструкции используются переключаемые блоки кода для разделения команд согласно версиям операционной системы

1. Минимальные системные требования

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

Ознакомьтесь с полными системными требованиями.

к сведению

Если сервер имеет 2-4 ГБ оперативной памяти, мы рекомендуем включить SWAP файл.

2. Базовые действия перед установкой

Получить права root и обновить локальную базу данных пакетов:

sudo -i 
dnf makecache

Установить веб-сервер Apache2 и утилиту передачи данных curl:

dnf install -y httpd unzip curl zip jq

Заменить расположение DocumentRoot в конфигурации Apache:

sed -i 's|^DocumentRoot "/var/www/html"|DocumentRoot "/var/www"|' /etc/httpd/conf/httpd.conf

Запустить службу httpd.service:

systemctl start httpd.service

Включить автозапуск службы:

systemctl enable httpd.service

2.1 Установка и базовая настройка Firewalld

Установить службу динамического управления брандмауэром Firewalld:

dnf install firewalld -y

Запустить службу firewalld.service:

systemctl start firewalld.service

Включить автозапуск службы:

systemctl enable firewalld.service

Добавить HTTPS-протокол в список разрешенных сервисов конфигурации Firewalld:

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

Применить изменения в конфигурации Firewalld:

firewall-cmd --reload

2.2 Отключение SELinux и перезагрузка ОС

Отредактировать конфигурационный файл /etc/selinux/config:

nano /etc/selinux/config

Изменить значение параметра SELINUX с enforcing на disabled:

SELINUX=disabled

Сохранить изменения (Ctrl+O) и выйдите (Ctrl+X). Перезагрузить систему, чтобы применить изменения в SELinux:

reboot

3. Установка PHP

Установить пакет EPEL (epel-release) и утилиты для управления пакетами yum (yum-utils):

dnf -y install epel-release yum-utils

Получить и установите последний EPEL репозиторий:

dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Получить и установить репозиторий, предоставляющий доступ к версиям PHP:

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Включить модуль PHP версии 8.3 из репозитория REMI:

dnf module enable php:remi-8.3

Установить PHP и дополнительные расширения:

dnf install -y php-cli php-fpm php-curl php-devel php-pear php-gd php-intl php-ldap php-bcmath php-mbstring php-mysqlnd php-opcache php-pgsql php-soap php-zip php-sqlite3 php-xml

Убедиться, что служба php-fpm запущена:

systemctl status php-fpm

Запустить и активировать автозапуск службы, если она остановлена:

systemctl start php-fpm
systemctl enable php-fpm

3.1 Установка драйвера PHP MongoDB

Установить драйвер PHP MongoDB:

pecl install mongodb

Создайть файл конфигурации для загрузки и включения PHP MongoDB:

echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini

4. Установка базы данных MongoDB

к сведению

Eсли вы планируете использовать PostgreSQL, пропустите 4-й шаг установки.

Подробнее о поддержке PostgreSQL

Создать файл для добавления репозитория MongoDB к системе управления пакетами yum:

nano /etc/yum.repos.d/mongodb-org-6.0.repo

Поместить в файл следующее содержимое:

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-6.0.asc

Установить MongoDB:

dnf install mongodb-org -y

Запустить службу mongod.service:

systemctl start mongod.service

Включить автозапуск службы:

systemctl enable mongod.service

5. Получение и настройка Пассворка

Онлайн

Получить скрипт:

wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
осторожно

Скрипт установки Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.

Назначить скрипту права на исполнение:

chmod +x passwork.sh

По умолчанию, скрипт passwork.sh выполнит:

  • Создание скрытого .script_env файла в текущем каталоге;
  • Создание директории passwork_archive для резервного копирования Пассворка;
  • Получение последней доступной верси Пассворка, подпись и открытый ключ;
  • Установку ранее полученного архива в /var/www/
к сведению

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

Запустить скрипт:

sudo ./passwork.sh

При первом запуске скрипт запросит API ключ и выполнит базовые проверки окружения:

Пример запуска скрипта

Пример успешного выполнения скрипта:

Успешное выполнение скрипта
Офлайн

Получить скрипт на другой машине с доступом в Интернет:

wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
к сведению

Или получить passwork.sh скрипт вручную используя ссылку

осторожно

Скрипт установки Пассворка не должен располагаться в каталоге вместе с файлами сервера приложений.

Назначить скрипту права на исполнение:

chmod +x passwork.sh

Перед запуском passwork.sh необходимо:

  • Получить 7 версию Пассворка из клиентского портала (Обязательно);
  • Поместить в директорию запуска или использовать --input аргумент для указания расположение (Обязательно);
  • Получить подпись архива и публичный ключ Пассворка (необязательно если используется --skip аргумент). 

По умолчанию, скрипт passwork.sh выполнит:

  • Создание директории passwork_archive для резервного копирования Пассворка;
  • Разархивирование архива с Пассворком;
  • Установку ранее полученного архива в /var/www/
к сведению

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

После подготовки запустить passwork.sh скрипт:

sudo ./passwork.sh -offline

Пример успешного выполнения скрипта:

Успешное выполнение скрипта офлайн

6. Настройка веб-сервера для HTTPS-протокола

к сведению

Для обеспечения корректной работы необходимо использовать HTTPS протокол. Использование HTTP приведёт к ошибкам.

6.1 Генерация самоподписанного SSL-сертификата

Установить SSL модуль для Apache2:

dnf install mod_ssl -y

Создать новую директорию для хранения закрытого ключа и сертификата:

mkdir /etc/ssl/private

Сгенерировать самоподписанный сертификат X.509 для Apache2 с помощью OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
осторожно

В поле Common Name (CN) важно указать IP-адрес вашего сервера или имя хоста, так как ваш сертификат должен соответствовать домену (или IP-адресу) для веб-сайта

Сгенерировать параметры Диффи-Хеллмана с длиной ключа 2048:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Добавить параметры Диффи-Хеллмана к самоподписанному сертификату:

cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt

Установить права доступа root пользователю для защиты закрытого ключа и сертификата:

chmod 700 /etc/ssl/private

6.2 Настройка виртуального хоста для доступа по HTTPS-протоколу

осторожно

Перед настройкой веб-сервера с включённой SSL-терминацией, рекомендуется ознакомиться с особенностями настройки.

Открыть конфигурационный файл для настройки HTTPS протокола:

nano /etc/httpd/conf.d/ssl.conf

Найти раздел, начинающийся с <VirtualHost _default_:443> и внести следующие изменения:

  • Раскомментировать строку DocumentRoot и изменить путь на корневой каталог Пассворка /var/www/public;
  • Раскомментировать строку ServerName и изменить www.example.com на IP-адрес или домен сервера (в зависимости от указанного значения в Common Name сертификата):
DocumentRoot /var/www/public
ServerName passwork:443
  • Добавить директиву — <Directory> после ServerName:
<Directory /var/www/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
  • Обновить пути к файлам сертификатов, которые были сгенерированы ранее:
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
  • Изменить обработчик .php-файлов, указав проксирование запросов к сокету php-fpm:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
  • Проверить, что блок SSL Virtual Host Context соответсвует примеру:
<VirtualHost _default_:443>

DocumentRoot "/var/www/public"
ServerName passwork:443

<Directory /var/www/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLHonorCipherOrder on
SSLCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite PROFILE=SYSTEM

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>
осторожно

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

Перезапустить службы:

systemctl restart php-fpm
systemctl restart httpd

7. Прохождение чек-листа

При первом подключении к Пассворк, необходимо пройти чек-лист параметров, в ходе которого будет выполнена:

  • Проверка необходимых параметров
  • Подключение к базе данных MongoDB
осторожно

Изменить подключение к MongoDB на адрес — mongodb://localhost:27017

  • Случайно сгенерированный ключ для шифрования данных в MongoDB
  • Проверка лицензионного ключа

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

к сведению

Дополнительные параметры компонентов, настройки безопасности и конфигурации системы Пассворка доступны в разделе расширенных настроек.