Windows Server
Перед обновлением PHP, если Пассворк установлен в облачной/виртуальной среде, создайте снимок виртуального состояния ОС для восстановления работоспособности в случае некорректного обновления.
Получение архива
Откройте веб-браузер на сервере, где установлен Пассворк, и перейдите по ссылке для получения PHP 8.3 — https://repos.passwork.ru/repository/windows_packages/php_build/83/php_latest.zip
Обратите внимание, данный архив включает в себя версию PHP x64.
Распакуйте содержимое архива в — C:\Program Files\
:

Изменение версии
Перейдите в — Диспетчер Серверов → Средства» → Диспетчер служб IIS:

Раскройте веб-сайт Пассворк и перейдите в — Администратор PHP:

Зарегистрировать новую версию PHP прописав путь — C:\Program Files\php8.3\php-cgi.exe
:

Перейти в — Включить или выключить расширения и активировать дополнительные модули:

Перезапустите веб-сайт с Пассворком:

Удалить устаревшие PHP версии из переменного окружения PATH с помощью PowerShell:
- PowerShell
function Remove-OldPhpPaths($target) {
$envRecords = [System.Environment]::GetEnvironmentVariable("Path", $target) -split ";"
$phpPathsToRemove = $envRecords | Where-Object {
($_ -imatch "php") -and ((Split-Path $_ -Leaf) -imatch '^(?:v?(?:php)?)?(?<version>\d+\.\d+)$')
}
if ($phpPathsToRemove.Count -gt 0) {
$newPath = $envRecords | Where-Object { $phpPathsToRemove -notcontains $_ }
[System.Environment]::SetEnvironmentVariable("Path", ($newPath -join ";"), $target)
Write-Host "Ус таревшая версия PHP удалена из переменного окружения PATH" -ForegroundColor Green
} else {
Write-Host "Устаревшая версия PHP не найдена в переменном окружении PATH"
}
}
Remove-OldPhpPaths "User"
Remove-OldPhpPaths "Machine"
Добавить PHP в переменное окружение PATH с помощью PowerShell:
- 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)