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

РЕД ОС

к сведению

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

  • РЕД ОС 7.3
  • РЕД ОС 8
осторожно

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

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

3.1 Загрузка архива

Загрузить PHP-архив в текущую директорию:

curl -O https://repos.passwork.ru/repository/php/builds/83/linux/redos/80/x86_64/php_latest.tar.gz
к сведению

Вы также можете скачать архивы вручную:

Создать директорию и разархивируйте содержимое:

mkdir ./php && tar -zxvf ./php_latest.tar.gz -C ./php/

3.2 Установка

Установить все .rpm пакеты из архива:

dnf -y install ./php/*.rpm

Установить утилиту PEAR с помощью go-pear.phar:

php ./php/go-pear.phar
к сведению

Выполнить стандартную (без изменений) установку — Enter

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

systemctl status php-fpm

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

systemctl start php-fpm
systemctl enable php-fpm

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

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

pecl install ./php/mongodb-*.tgz

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

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

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

к сведению

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

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

Установить MongoDB и утилиту для подключений к shell-оболочке:

dnf install mongodb-org-6.0.15 mongodb-org-shell.x86_64 -y

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

systemctl start mongod.service

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

systemctl enable mongod.service

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

mv /etc/mongo/mongod.conf /etc/

И перезапустить службу mongod.service:

systemctl restart 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
  • Лицензионный ключ

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

к сведению

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