[12] Serwer Web (IIS) – Python

2 sierpnia 2024 Wyłączono przez Adam [zicherka] Nogły

Skonfigurujemy teraz usługi IIS, aby móc używać skryptów języka Python. Zainstaluj Pythona, patrz rozdział: „Dodatki – Python”.

Uruchom PowerShell z uprawnieniami administratora.

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# zainstaluj rozszerzenie dla CGI oraz ISAPI
PS C:\Users\Administrator> Install-WindowsFeature Web-CGI,Web-ISAPI-Ext
Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Interfejs CGI}

# zrestartuj IIS
PS C:\Users\Administrator> Restart-Service W3SVC

PS C:\Users\Administrator> Get-Website
Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:
VWSR01.zicher.la 3    Started    C:\inetpub\newsite             http *:80:vwsr01.zicher.lab
b                                                               https *:443:vwsr01.zicher.lab sslFlags=0

PS C:\Users\Administrator> Get-ChildItem C:\inetpub\newsite
    Directory: C:\inetpub\newsite
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        04.01.2023     21:47                aspnet_client
d-----        04.01.2023     22:02                auth_basic
d-----        04.01.2023     22:38                auth_win
d-----        05.01.2023     19:58                content01
d-----        05.01.2023     19:59                content02
-a----        04.01.2023     21:49            436 index.aspx
-a----        03.01.2023     20:37             28 index.html

# dodaj Python’a do rozszerzeń CGI/ISAPI
PS C:\Users\Administrator> Add-WebConfiguration -Filter '/system.webServer/security/isapiCgiRestriction' -Value @{description="Python";path="C:\Program Files\Python311\python.exe %s %s";allowed="true"}

# ustaw skrypty [*.py] jako wykonywalne w katalogu [content01] na serwerze [vwsr01.zicher.lab]
PS C:\Users\Administrator> Set-WebConfigurationProperty -Filter '/system.webServer/handlers' -Location "vwsr01.zicher.lab/content01" -Name accessPolicy -Value "Read, Script"

PS C:\Users\Administrator> Add-WebConfiguration -Filter '/system.webServer/handlers' -Location "vwsr01.zicher.lab/content01" -Value @{name="Python Interpreter";path="*.py";verb="*";modules="CgiModule";scriptProcessor="C:\Program Files\Python311\python.exe %s %s";resourceType="File"}

# zrestartuj witrynę Web
PS C:\Users\Administrator> Restart-WebItem -PSPath 'IIS:\Sites\vwsr01.zicher.lab'

# utwórz testowy skrypt
PS C:\Users\Administrator> $str_document = @'
print("Content-type: text/html\n\n")
print("Python Script - trona testowa @ IIS")
'@

PS C:\Users\Administrator> Write-Output $str_document | Out-File C:\inetpub\newsite\content01\test.py -Encoding Default

# sprawdź poprawność działania
PS C:\Users\Administrator> curl.exe -k https://vwsr01.zicher.lab/content01/test.py
Python Script - trona testowa @ IIS

Aby skonfigurować IIS za pomocą narzędzi graficznych do korzystania ze skryptów CGI, należy wykonać poniższe czynności.

Uruchom [Start] > [Menadżer serwera], następnie kliknij [Dodaj role i funnkcje].

Kliknij [Dalej].

Wybierz [Instalacja oparta na rolach lub oparta na funkcjach] i kliknij [Dalej].

Wybierz serwer, na którym chcesz zainstalować usługę, następnie kliknij [Dalej].

Zaznacz [Interfejs CGI], a następnie kliknij [Dalej].

Kliknij [Dalej].

W celu zainstalowania wybranych funkcji kliknij [Zainstaluj].

Po zakończeniu instalacji kliknij [Zamknij].

Na przykład ustaw skrypty [*.py] jako wykonywalne w folderze [content01] w witrynie [vwsr01.zicher.lab].

Wybierz folder docelowy w lewym okienku i otwórz [Mapowanie obsługi] w środkowym okienku.

Kliknij link [Dodaj mapę skryptu] w prawym panelu.

W polu [Nazwa] wprowadź dowolną nazwę, w innych polach wprowadź wartości odpowiednie dla Twojej konfiguracji. Twoja ścieżka Pythona może być inna, więc zamień ją na swoją ścieżkę.

Potwierdź zezwolenie na rozszerzenie, kliknij [Tak].

Mapowanie dla skryptów [*.py] zostało dodane.

Stwórz testowy plik ze skryptem Python’a, dla sprawdzenia poprawności działania.

Przejdź do strony ze skryptem Python’a.