Windows Server
Инструкция по установке Пассворка на ОС:
- Windows Server 2019
- Windows Server 2022
- Windows Server 2025
1. Минимальные системные требования
Пассворк не требователен к системным ресурсам, а необходимое количество серверов зависит от числа активных пользователей, объема хранимых данных и требований к отказоустойчивости системы.
Ознакомиться с полными системными требованиями.
2. Базовые действия перед установкой
Открыть PowerShell от имени «Администратора»:
С помощью контекстного меню Пуск
- Нажать правой кнопкой мыши на значке Пуск в левом нижнем углу экрана.
- Выбрать «Windows PowerShell (администратор)» из контекстного меню.
С помощью меню Пуск
- Нажать левой кнопкой мыши на значок Пуск в левом нижнем углу экрана.
- Прописать
powershell - Открыть PowerShell от имени «Администратора» комбинацией —
Ctrl + Shift + Enter
Создать временную директорию для скачивания пакетов и архивов:
- PowerShell
New-Item -Path "C:\Windows\Temp\passwork_install" -ItemType Directory
Опеределить имена групп пользователей с помощью SID:
- PowerShell
$userGroupSid = "S-1-5-32-545"
$userSecurityIdentifier = New-Object System.Security.Principal.SecurityIdentifier($userGroupSid)
$userGroupName = $userSecurityIdentifier.Translate([System.Security.Principal.NTAccount]).Value
$userGroupName = $userGroupName.Split("\")[1]
$iis_iusrsGroupSid = "S-1-5-32-568"
$iis_iusrsSecurityIdentifier = New-Object System.Security.Principal.SecurityIdentifier($iis_iusrsGroupSid)
$iis_iusrsGroupName = $iis_iusrsSecurityIdentifier.Translate([System.Security.Principal.NTAccount]).Value
$iis_iusrsGroupName = $iis_iusrsGroupName.Split("\")[1]
Установить роль IIS с модулем:
- PowerShell
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-CGI -IncludeManagementTools
3. Установка PHP
Загрузить архив PHP:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/windows_packages/php_build/83/php_latest.zip", "C:\Windows\Temp\passwork_install\php_latest.zip")
В случае ошибок получить архив вручную.
Разархивировать содержимое в Program Files:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\php_latest.zip" `
-DestinationPath "$env:ProgramFiles\"
Добавить PHP-утилиты в переменное окружение PATH:
- PowerShell
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine) + ";C:\Program Files\php8.3", [System.EnvironmentVariableTarget]::Machine)
$env:Path = [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine)
Установить права группе Users для PHP-директории:
- PowerShell
Invoke-Expression "icacls '$env:ProgramFiles\php8.3' /grant '${userGroupName}:(OI)(CI)`M'"
4. Установка базы данных MongoDB
Если планируется использование PostgreSQL — пропустить 4-й шаг установки.
Подробнее о поддержке PostgreSQL.
Загрузить установщик MongoDB:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/windows_packages/mongodb_database_latest.msi", "C:\Windows\Temp\passwork_install\mongodb_database_latest.msi")
В случае ошибок получить установщик вручную.
Установить MongoDB по умолчанию:
- PowerShell
Start-Process -FilePath "msiexec.exe" -ArgumentList "/l*v", "C:\Windows\Temp\mdbinstall.log", "/qb", "/i", "C:\Windows\Temp\passwork_install\mongodb_database_latest.msi", "SHOULD_INSTALL_COMPASS=0", "ADDLOCAL=Router,ServerService" -Wait
Для установки MongoDB на другой диск нужно добавить "INSTALLLOCATION=A:\MongoDB".
Создать директорию для утилит администрирования MongoDB:
- PowerShell
New-Item -ItemType Directory -Force -Path "$env:ProgramFiles\MongoDB\Tools\"
Загрузить утилиты администрирования:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/windows_packages/database_tools_latest.zip", "C:\Windows\Temp\passwork_install\database_tools_latest.zip")
В случае ошибок получить утилиты вручную.
Разархивировать содержимое:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\database_tools_latest.zip" `
-DestinationPath "$env:ProgramFiles\MongoDB\Tools\"
Добавить утилиты администрирования в переменное окружение PATH:
- PowerShell
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine) + ";C:\Program Files\MongoDB\Tools", [System.EnvironmentVariableTarget]::Machine)
$env:Path = [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine)
5. Установка модулей для IIS
Загрузить архив с модулями:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/windows_packages/iis_package_latest.zip", "C:\Windows\Temp\passwork_install\iis_package_latest.zip")
В случае ошибок получить модули вручную.
Разархивировать модули для IIS:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\iis_package_latest.zip" `
-DestinationPath "$env:SystemDrive\Windows\Temp\passwork_install\"
Установить Visual C++:
- PowerShell
Start-Process `
-FilePath "$env:SystemDrive\Windows\Temp\passwork_install\VC_redist.x64.exe" `
-ArgumentList "/q" -Wait -ErrorAction Stop
Установить PHP Manager:
- PowerShell
Start-Process -FilePath "msiexec.exe" `
-ArgumentList "/i $env:SystemDrive\Windows\Temp\passwork_install\PHPManagerForIIS_x64.msi /quiet /norestart" `
-Wait -ErrorAction Stop
Установить URL Rewrite:
- PowerShell
Start-Process -FilePath "msiexec.exe" `
-ArgumentList "/i $env:SystemDrive\Windows\Temp\passwork_install\rewrite_amd64_en-US.msi /quiet /norestart" `
-Wait -ErrorAction Stop
6. Получение Пассворка
Создать директорию для Пассворка:
- PowerShell
New-Item -ItemType Directory -Force -Path "C:\inetpub\wwwroot\passwork"
Перейти на клиентский портал Пассворка и скопировать API-ключ:

Создать переменную API_KEY:
- PowerShell
$API_KEY = "your_api_key"
Провер ить доступную версию Пассворка из клиентского портала:
- PowerShell
Invoke-RestMethod -Uri "https://portal.passwork.ru/api/version?apikey=$API_KEY" -Method Get
Корректный вывод
- PowerShell
response
--------
@{last-available-version=xxxxxxxx}
Получить Пассворк с помощью запроса:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://portal.passwork.ru/api/download?apikey=$API_KEY", "C:\Windows\Temp\passwork_install\passwork.zip")
Очистить переменную API_KEY:
- PowerShell
Remove-Variable API_KEY
Разархивировать полученный архив:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\passwork.zip" `
-DestinationPath "$env:SystemDrive\inetpub\wwwroot\passwork\"
Отключить запись ошибок в stderr:
- PowerShell
[System.IO.File]::WriteAllText("C:\inetpub\wwwroot\passwork\.env.local", "IS_WRITING_LOGS_TO_STDERR_ENABLED=0", (New-Object System.Text.UTF8Encoding -ArgumentList $false))
Получить и поместить web.config файл в C:\inetpub\wwwroot\passwork\public\ для правил перенаправления:
Установить права для физического расположения Пассворка:
- PowerShell
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant '${userGroupName}:(OI)(CI)`M'"
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant '${$iis_iusrsGroupName}:(OI)(CI)`M'"
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant 'IUSR:(OI)(CI)`M'"
7. Создание веб-сайта с подключением PHP
Важно: для корректной работы Пассворка необходимо использовать HTTPS-протокол.
Подключить модули в PowerShell для управления IIS:
- PowerShell
Import-Module IISAdministration
Import-Module WebAdministration
Add-PsSnapin PHPManagerSnapin
Разблокировать конфигурацию handlers в IIS:
- PowerShell
Invoke-Expression "$env:windir\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers"
Создать веб-сайт с именем Passwork Web Site:
- PowerShell
New-WebSite -Name "Passwork Web Site" -Port "5353" -PhysicalPath "C:\inetpub\wwwroot\passwork\public" -Force
Зарегистрировать PHP-версию для веб-сайта:
- PowerShell
New-PHPVersion -ScriptProcessor "$env:ProgramFiles\php8.3\php-cgi.exe" -SiteName "Passwork Web Site" -VirtualPath "/"
Активировать драйверы и расширения для веб-сайта:
- PowerShell
$extensions = @(
"php_curl.dll",
"php_gd.dll",
"php_gettext.dll",
"php_intl.dll",
"php_ldap.dll",
"php_mbstring.dll",
"php_mongodb.dll",
"php_mysqli.dll",
"php_openssl.dll",
"php_pdo_pgsql.dll",
"php_pdo_sqlite.dll",
"php_pgsql.dll",
"php_soap.dll",
"php_zip.dll",
"php_fileinfo.dll"
)
foreach ($extension in $extensions) {
Write-Host "PHP расширение активировано: $extension"
Set-PHPExtension -Name $extension -Status Enabled -SiteName "Passwork Web Site" -VirtualPath "/"
}
Получить номер версии PHP в переменную:
- PowerShell
$phpVersion = (Get-PHPConfiguration -SiteName "Passwork Web Site" -VirtualPath "/").version
Обновить список HTTP-методов, разрешённых для обработчика PHP:
- PowerShell
Set-WebConfigurationProperty -PSPath "IIS:\Sites\Passwork Web Site" -Filter "system.webServer/handlers/add[@name='php-$phpVersion']" -Name "verb" -Value "GET,HEAD,POST,PUT,DELETE,PATCH"
Выполнить прогрев кэша:
- PowerShell
cd "$env:SystemDrive\inetpub\wwwroot\passwork"
php -d "memory_limit=-1" .\bin\console cache:warmup
8. Настройка веб-сервера для HTTPS-протокола
Для обеспечения корректной работы необходимо использовать HTTPS протокол. Использование HTTP приведёт к ошибкам.
8.1 Генерация самоподписанного SSL-сертификата
Создать самоподписанный SSL-сертификат с значением имени сервера:
- PowerShell
$dnsName = "$env:COMPUTERNAME"
$newCert = New-SelfSignedCertificate -DnsName $dnsName -CertStoreLocation cert:\LocalMachine\My
8.2 Создание привязки IIS для доступа по HTTPS-протоколу
Создать HTTPS-привязку в веб-сайте Пассворка:
- PowerShell
New-WebBinding -Name "Passwork Web Site" -IPAddress "*" -Port "443" -Protocol "https"
Получить текущую привязку веб-сайта Пассворка:
- PowerShell
$binding = Get-WebBinding -Name "Passwork Web Site" -Protocol "https"
Привязать ранее созданный самоподписанный SSL-сертификат к HTTPS-протоколу веб-сайта:
- PowerShell
$binding.AddSslCertificate($newCert.GetCertHashString(), "my")
Перезапустить веб-сервер IIS:
- PowerShell
Restart-Service -Name "W3SVC"
9. Прохождение чек-листа
При первом подключении к Пассворк, необходимо пройти чек-лист параметров, в ходе которого будет выполнена:
- Проверка необходимых параметров
- Подключение к базе данных MongoDB
- Выбор режима шифрования данных
- Случайно сгенерированный ключ для шифрования данных в MongoDB
- Проверка лицензионного ключа
После прохождения чек-листа будет предложено создать первого пользователя в Пассворк, где необходимо указать логин, пароль и почтовый адрес для отправки уведомлений.
Дополнительные параметры компонентов, настройки безопасности и конфигурации системы Пассворка доступны в разделе расширенных настроек.
10. Настройка фоновых задач
Фоновые задачи — это задачи, которые выполняются по планировщику в фоновом режиме. Узнайте, как настроить фоновые задачи.
Фоновые задачи обязательны для корректной работы части функционала Пассворка, например:
- Работы LDAP;
- Отправки почтовых уведомлений;
- Загрузки фавиконов;
- Очистки коллекции session в базе данных Пассворка