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

Ubuntu

к сведению

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

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
осторожно

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

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

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

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

к сведению

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

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

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

sudo -i 
apt-get update

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

apt-get install -y apache2 unzip curl zip jq

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

Установить пакет software-properties-common и добавить репозиторий ppa:ondrej/php:

apt-get install -y software-properties-common
add-apt-repository -y ppa:ondrej/php

Обновить локальный список пакетов и репозиториев:

apt-get update

Установить PHP и модули расширений:

apt install -y php8.3 php8.3-cli php8.3-bcmath php8.3-fpm php8.3-curl php8.3-gd php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-soap php8.3-zip php8.3-sqlite3 php8.3-xml php8.3-dev php-pear

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

systemctl status php8.3-fpm

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

systemctl start php8.3-fpm
systemctl enable php8.3-fpm

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

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

pecl install mongodb

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

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

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

к сведению

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

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

Загрузить и преобразовать GPG-ключ MongoDB в файл:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor

Добавить строку репозитория в файл:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Обновить список доступных пакетов:

apt-get update

Установить MongoDB c помощью менеджера пакетов apt:

apt-get install -y mongodb-org

Запустить службу 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-сертификата

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

mkdir /etc/apache2/ssl/

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

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
  • Common Name (CN) — Здесь важно указать IP-адрес вашего сервера или имя хоста, так как ваш сертификат должен соответствовать домену (или IP-адресу) для веб-сайта;

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

chmod 600 /etc/apache2/ssl/*

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

осторожно

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

Активировать модуль SSL в Apache2, позволяя серверу поддерживать протокол HTTPS:

a2enmod ssl

Включить конфигурационный файл виртуального хоста сайта с настройками для SSL-соединения:

a2ensite default-ssl

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

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

Внести следующие изменения:

  • Добавить строку ServerName и изменить www.example.com на IP-адрес или домен сервера (в зависимости от указанного значения в Common Name сертификата):
  • Раскомментировать строку DocumentRoot и изменить путь на корневой каталог Пассворка (/var/www/public);
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
  • Добавить директиву <Directory> после ServerName:
<Directory /var/www/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
  • Обновить пути к файлам сертификатов, которые были сгенерированы ранее:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  • Изменить обработчик .php-файлов, указав проксирование запросов к сокету php-fpm:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
  • После внесения изменений проверить, что файл конфигурации виртуального хоста соответствует примеру:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName passwork:443
DocumentRoot /var/www/public

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

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

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

Включить модули и перезапустить службы:

a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2

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

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

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

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

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

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

к сведению

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