SelectOS
Инструкция по установке Пассворка на ОС:
- SelectOS 1.2
1. Минимальные системные требования
Пассворк не требователен к системным ресурсам, а необходимое количество серверов зависит от числа активных пользователей, объема хранимых данных и требований к отказоустойчивости системы.
Ознакомиться с полными системными требованиями.
Если сервер имеет 2–4 ГБ оперативной памяти, рекомендуется включить SWAP файл.
2. Базовые действия перед установкой
Получить права root и обновить локальную базу данных пакетов:
- shell
sudo -i
apt-get update
Установить веб-сервер Apache2 и вспомогательные утилиты:
- shell
apt-get install -y apache2 unzip curl zip jq gnupg ca-certificates
В SelectOS локаль может быть не инициализирована по умолчанию. Это приведёт к ошибкам apt, dpkg, pecl и сборки расширений PHP.
Установить пакет locales и инициализировать локаль:
- shell
apt-get install -y locales
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
3. Установка PHP
В SelectOS отсутствует пакет software-properties-common, поэтому добавление PPA-репозиториев недоступно.
Репозиторий PHP добавляется вручную.
Получить и сохранить GPG-ключ PHP-репозитория:
- shell
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/php.gpg
Добавить PHP-репозиторий в список источников apt:
- shell
echo "deb [signed-by=/usr/share/keyrings/php.gpg] https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/php.list
Обновить локальный список пакетов и репозиториев:
- shell
apt-get update
Установить PHP и модули расширений:
- shell
apt-get install -y php8.3 php8.3-cli php8.3-fpm php8.3-bcmath 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
Изменить объём RAM, доступный для выполнения PHP-скриптов:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/php.ini
При большом количестве пользователей рекомендуется увеличить memory_limit до 512M или выше.
Проверить статус службы PHP-FPM:
- shell
systemctl status php8.3-fpm
Запустить и включить автозапуск:
- shell
systemctl start php8.3-fpm
systemctl enable php8.3-fpm
3.1 Установка драйвера PHP MongoDB
Установить драйвер MongoDB для PHP:
- shell
pecl install mongodb
Использовать стандартные параметры сборки — нажать Enter.
Создать конфигурационные файлы:
- shell
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
Если планируется использование PostgreSQL — данный шаг можно пропустить.
Загрузить и добавить GPG-ключ MongoDB:
- shell
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg
Добавить репозиторий MongoDB в файл:
- shell
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Обновить список пакетов и установить MongoDB:
- shell
apt-get update
apt-get install -y mongodb-org
Запустить и включить службу:
- shell
systemctl start mongod
systemctl enable mongod
5. Получение и настройка Пассворка
Онлайн
Получить скрипт:
- wget
- curl
wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
curl -O 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
- curl
- PowerShell
wget https://repos.passwork.ru/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.ru/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/linux/scripts/passwork.sh", "$PWD\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-сертификата
Создать новую директорию для хранения закрытого ключа и сертификата:
- shell
mkdir /etc/apache2/ssl/
Сгенерировать самоподписанный сертификат X.509 для Apache2 с помощью OpenSSL:
- shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Common Name (CN)— указать IP-адрес сервера или имя хоста так, чтобы они совпадали с тем, как пользователи открывают сайт (по доменному имени или по IP);subjectAltName (SAN)— передать-addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100', подставив вместоyour.domain.nameи192.168.0.100текущее DNS-имя и IP-адрес сервера;
Браузеры и SAN — браузеры при проверке HTTPS в первую очередь используют расширение Subject Alternative Name (SAN), а не только поле CN (Common Name). Чтобы избежать несоответствия имени хоста, задать в SAN и DNS, и IP в соответствии с адресом, который вводят пользователи.
Установить права доступа root пользователю для защиты закрытого ключа и сертификата:
- shell
chmod 600 /etc/apache2/ssl/*
6.2 Настройка виртуального хоста для доступа по HTTPS-протоколу
Перед настройкой веб-сервера с включённой SSL-терминацией, рекомендуется ознакомиться с особенностями настройки.
Активировать модуль SSL в Apache2, позволяя серверу поддерживать протокол HTTPS:
- shell
a2enmod ssl
Включить конфигурационный файл виртуального хоста сайта с настройками для SSL-соединения:
- shell
a2ensite default-ssl
Открыть файл конфигурации виртуального хоста для HTTPS-соединения:
- shell
nano /etc/apache2/sites-enabled/default-ssl.conf
Внести следующие изменения:
- Добавить строку
ServerNameи изменитьwww.example.comна IP-адрес или домен сервера (в зависимости от указанного значения вCommon Nameсертификата): - Раскомментировать строку
DocumentRootи изменить путь на корневой каталог Пассворка (/var/www/public);
- shell
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
- Добавить директиву
<Directory>послеServerName:
- shell
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
- Обновить пути к файлам сертификатов, которые были сгенерированы ранее:
- shell
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
- Изменить обработчик .php-файлов, указав проксирование запросов к сокету php-fpm:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
- После внесения изменений проверить, что файл конфигурации виртуального хоста соответствует примеру:
- shell
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName passwork:443
DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</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>
Включить модули и перезапустить службы:
- shell
a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2
7. Прохождение чек-листа параметров
При первом входе в Пассворк будет выполнено:
- Проверка окружения
- Подключение к MongoDB
- Настройка шиф рования
- Проверка лицензии
- Создание первого пользователя
Дополнительные параметры доступны в разделе расширенных настроек