Миграция на Пассворк 7
Обновление Пассворка на 7 верс...
Windows Server
14min
данная инструкция предпологает следующее расположение компонентов и пассворка расположение пассворка — c \inetpub\wwroot\passwork расположение php8 3 — c \program files\php8 3 имя веб сайта пассворка в веб сервере iis — passwork web site подготовка открыть powershell от имени «администратора» с помощью контекстного меню пуск нажать правой кнопкой мыши на значке пуск в левом нижнем углу экрана выбрать «windows powershell (администратор)» из контекстного меню с помощью меню пуск нажать левой кнопкой мыши на значок пуск в левом нижнем углу экрана прописать powershell открыть powershell от имени «администратора» комбинацией — ctrl + shift + enter для проверки определения расположения пассворка и имени веб сайта, можно выполнить следующий код powershell # импортировать модуль import module webadministration \# получаем список всех сайтов в iis $sites = get website \# вывод заголовка write host "`n список сайтов в iis `n" foregroundcolor blue foreach ($site in $sites) { write host "сайт " nonewline foregroundcolor white write host $site name foregroundcolor darkgreen \# получаем привязки write host " bindings " foregroundcolor darkcyan foreach ($binding in $site bindings collection) { write host " protocol " nonewline foregroundcolor gray write host $binding protocol foregroundcolor white write host " address " nonewline foregroundcolor gray write host $binding bindinginformation foregroundcolor white } \# получаем физический путь $physicalpath = (get webconfigurationproperty filter "system applicationhost/sites/site\[@name='$($site name)']/application\[@path='/']/virtualdirectory\[@path='/']" name physicalpath) value write host " физический путь " nonewline foregroundcolor darkcyan write host $physicalpath foregroundcolor white write host " " foregroundcolor darkgray } получение актуальной версии пассворка создать временную директорию для получения пассворка powershell new item path "$env\ windir\temp\update passwork" itemtype directory если сервер с пассворк расположен в закрытом контуре, то необходимо перейти на клиентский портал пассворка и вручную получить 7 версию и переместить на сервер в директорию с названием — c \windows\temp\update passwork\passwork zip перейти на клиентский портал пассворка и скопировать api ключ для получения актуальной версии создать переменную api key с номером сертификата powershell $api key = "your api key" проверить доступную версию пассворка из клиентского портала с помощью скопированного api ключа запросом powershell invoke restmethod uri "https //portal passwork ru/api/version?apikey=$api key" method get корректный вывод powershell response \ @{last available version=07xxxx} необходимо убедиться, что для скачивания доступна 7 версия пассворка — 07xxxx получить 7 версию пассворка с помощью запроса powershell try { (new object system net webclient) downloadfile( "https //portal passwork ru/api/download?apikey=$api key", "$env\ windir\temp\update passwork\passwork zip" ) write output "архив с пассворком успешно получен" } catch { write output "ошибка при получении пассворка $ " } очистить переменную api key powershell remove variable api key обновление на актуальную версию получить в переменную текущую версию пассворка powershell $version = get content "$env\ systemdrive\inetpub\wwwroot\passwork\version" скопировать конфигурационный файл пассворка в отдельную директорию powershell copy item path "$env\ systemdrive\inetpub\wwwroot\passwork\app\config\config ini" destination "$env\ systemdrive\inetpub\wwwroot\\" создать архив текущей версии пассворка для возможности возврата powershell compress archive path "$env\ systemdrive\inetpub\wwwroot\passwork\\ " destinationpath "$env\ systemdrive\inetpub\wwwroot\passwork $version zip" force удалить всё содержимое из директории пассворка powershell remove item path "$env\ systemdrive\inetpub\wwwroot\passwork\\ " recurse force разархивировать 7 версию пассворка в физическое расположение powershell expand archive path "$env\ windir\temp\update passwork\passwork zip" destinationpath "$env\ systemdrive\inetpub\wwwroot\passwork\\" скачать правила перезаписи ( web config ) и поместить в новую версию пассворка — $env\ systemdrive\inetpub\wwwroot\passwork\public\web config https //archbee doc uploads s3 amazonaws com/w jxazppyuprqlll6w3gi 3flzwmivuhrsf9jl4odk 20250213 210655 config регистрация php и активация расширений импортировать модули iis и зарегистрировать php версию powershell import module iisadministration add pssnapin phpmanagersnapin new phpversion scriptprocessor "$env\ programfiles\php8 3\php cgi exe" sitename "passwork web site" virtualpath "/" активировать php расширения для веб сайта пассворка 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 opcache 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 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" удалить временную директорию расположения архива 7 версии пассворка powershell remove item path "$env\ windir\temp\update passwork" recurse force установить права для физического расположения пассворка powershell invoke expression "icacls '$env\ systemdrive\inetpub\wwwroot' /grant 'iis iusrs (oi)(ci)`m'" invoke expression "icacls '$env\ systemdrive\inetpub\wwwroot' /grant 'users (oi)(ci)`m'" invoke expression "icacls '$env\ systemdrive\inetpub\wwwroot' /grant 'iusr (oi)(ci)`m'"