Windows Server
Bitte beachten Sie:
- Diese Anleitung geht von Folgendem aus:
- Physischer Speicherort von Passwork — C:\inetpub\wwwroot\passwork
- Name der Passwork-Website — Passwork Web Site
- Erstellen Sie vor der Aktualisierung, wenn Passwork in einer Cloud-/virtuellen Umgebung installiert ist, einen Snapshot des virtuellen Betriebssystemzustands, um die Funktionalität bei einer fehlerhaften Aktualisierung wiederherstellen zu können
Aktuelle Version von Passwork abrufen
Erstellen Sie ein temporäres Verzeichnis zum Herunterladen von Passwork:
- PowerShell
mkdir "$env:SystemDrive\inetpub\new_version"
Wenn sich der Server mit Passwork in einem abgeschotteten Netzwerk befindet
Sie müssen zum Passwork-Kundenportal gehen, die Zertifikatsnummer kopieren und die Browser-Adressleiste verwenden, um Version 7 von Passwork zu erhalten:
https://portal.passwork.pro/api/download?apikey=api_key
Gehen Sie zum Passwork-Kundenportal und kopieren Sie den API-Schlüssel, um die aktuelle Version zu erhalten:

Erstellen Sie die Variable API_KEY mit der Zertifikatsnummer:
- PowerShell
$API_KEY = "your_api_key"
Laden Sie Passwork Version 7 mit folgender Anfrage herunter:
- PowerShell
try {
(New-Object System.Net.WebClient).DownloadFile(
"https://portal.passwork.pro/api/download?apikey=$API_KEY",
"$env:SystemDrive\inetpub\new_version\passwork.zip"
)
Write-Output "Passwork archive successfully obtained"
} catch {
Write-Output "Error obtaining Passwork: $_"
}
Leeren Sie die Variable API_KEY mit der Zertifikatsnummer:
- PowerShell
Remove-Variable API_KEY
Aktualisierung auf die aktuelle Version
Aktuelle Passwork-Version in eine Variable einlesen:
- PowerShell
$version = Get-Content "$env:SystemDrive\inetpub\wwwroot\passwork\version"
Passwork-Konfigurationsdateien in das temporäre Verzeichnis kopieren:
- PowerShell
Copy-Item -Path "$env:SystemDrive\inetpub\wwwroot\passwork\init\config.env" -Destination "$env:SystemDrive\inetpub\new_version\" -Recurse -Force
Copy-Item -Path "$env:SystemDrive\inetpub\wwwroot\passwork\init\encryption_key" -Destination "$env:SystemDrive\inetpub\new_version\" -Recurse -Force
Copy-Item -Path "$env:SystemDrive\inetpub\wwwroot\passwork\.env.local" -Destination "$env:SystemDrive\inetpub\new_version\" -Recurse -Force
Erstellen Sie ein Archiv der aktuellen Passwork-Version, um ein Rollback auf die vorherige Version zu ermöglichen:
- PowerShell
Compress-Archive -Path "$env:SystemDrive\inetpub\wwwroot\passwork\*" -DestinationPath "$env:SystemDrive\inetpub\wwwroot\passwork-$version.zip" -Force
Löschen Sie alle Inhalte aus dem Passwork-Verzeichnis:
- PowerShell
Remove-Item -Path "$env:SystemDrive\inetpub\wwwroot\passwork\*" -Recurse -Force
Entpacken Sie die aktualisierte Passwork-Version an den physischen Speicherort:
- PowerShell
Expand-Archive -Path "$env:SystemDrive\inetpub\new_version\passwork.zip" -DestinationPath "$env:SystemDrive\inetpub\wwwroot\passwork\"
Verschieben Sie die kopierten Passwork-Konfigurationsdateien in die neue Version:
- PowerShell
Copy-Item -Path "$env:SystemDrive\inetpub\new_version\config.env" -Destination "$env:SystemDrive\inetpub\wwwroot\passwork\init\" -Recurse -Force
Copy-Item -Path "$env:SystemDrive\inetpub\new_version\encryption_key" -Destination "$env:SystemDrive\inetpub\wwwroot\passwork\init\" -Recurse -Force
Copy-Item -Path "$env:SystemDrive\inetpub\new_version\.env.local" -Destination "$env:SystemDrive\inetpub\wwwroot\passwork\" -Recurse -Force
Löschen Sie das temporäre Verzeichnis update_passwork:
- PowerShell
Remove-Item -Path "$env:SystemDrive\inetpub\new_version" -Recurse -Force
Setzen Sie die Berechtigungen für den physischen Speicherort von Passwork:
- 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'"
Laden Sie die Rewrite-Regeln web.config herunter und platzieren Sie sie in der neuen Passwork-Version — C:\inetpub\wwwroot\passwork\public\web.config
PHP registrieren und Erweiterungen aktivieren
Importieren Sie IIS-Module und registrieren Sie die PHP-Version:
- PowerShell
Import-Module IISAdministration
Add-PsSnapin PHPManagerSnapin
New-PHPVersion -ScriptProcessor "$env:ProgramFiles\php8.3\php-cgi.exe" -SiteName "Passwork Web Site" -VirtualPath "/"
Aktivieren Sie PHP-Erweiterungen für die Passwork-Website:
- 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 enabled: $extension"
Set-PHPExtension -Name $extension -Status Enabled -SiteName "Passwork Web Site" -VirtualPath "/"
}
Aktivieren Sie zusätzliche PHP-Methoden für die Passwork-Website:
- 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"
Navigieren Sie zum Stammverzeichnis von Passwork und aktualisieren Sie die Passwork-Version in der Datenbank:
- PowerShell
cd "$env:SystemDrive\inetpub\wwwroot\passwork"
php -d "memory_limit=-1" .\bin\console cache:clear
php -d "memory_limit=-1" .\bin\console cache:warmup
php -d "memory_limit=-1" .\bin\console app:update