Jak mohu nasadit aplikace baňky IIS?

hlasů
24

Může mi někdo pomoct dostat se do baňky aplikace běžící na IIS 6? Snažil jsem se použít ISAPI-WSGI, ale když jsem se navštívit adresu Virtuální adresář jsem si stránku, která říká: „Uvedený modul nebyl nalezen.“ Existují i ​​jiné možnosti pro to?

Níže je Python skript jsem psal pro ISAPI-WSGI. Virtuální adresář byl vyroben a vše vypadalo v pořádku ve Správci služby IIS, ale místo nefungoval.

from wof import app
import os

app.secret_key=os.urandom(24)

import isapi_wsgi
def __ExtensionFactory__():
    return isapi_wsgi.ISAPISimpleHandler(app)

if __name__ == '__main__':
    from isapi.install import *
    params = ISAPIParameters()
    sm = [ScriptMapParams(Extension=*, Flags=0)]
    vd = VirtualDirParameters(Name=WOFPy_Sondes, Description=ISAPI-WSGI for WOFPY Sondes test, ScriptMaps=sm, ScriptMapUpdate=replace)
    params.VirtualDirs = [vd]
    HandleCommandLine(params)
Položena 21/02/2011 v 23:46
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
0

Nikdy jsem použít IIS, ale IIS podporuje CGI bránu, a proto byste měli být schopni se přizpůsobit CGI s WSGI.

IIS <--> CGI <--> WSGI

Spustit WSGI jako CGI skript, můžete použít CGIHandler Python standardní knihovny.

Odpovězeno 27/02/2011 v 05:32
zdroj uživatelem

hlasů
3

Podívejte se na stránku Django na toto téma. To mi pomohlo vytvořit pracovní projekt Django, ale to by nemělo být tak odlišné pro aplikaci baňky.

http://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer

Odpovězeno 11/03/2011 v 15:24
zdroj uživatelem

hlasů
46

Přehled High Level

HTTP -> IIS -> ISAPI -> FastCGI -> WSGI (baňka aplikace)


Kroky instalace

Krok 1: Instalace Požadované Binaries

  1. Instalace Python (2,7 nebo 3.x - jsem 3.3)
  2. Instalace pip-WIN (jsem verze 1.6)
  3. Nainstalovat pywin32 (použil jsem verzi 218)
  4. Instalace IIS FastCGI příponu fcgisetup 1.5

Krok 2: Instalace Volitelná binárních balíčků

Nainstaloval jsem pyodbcpomocí instalačního programu exe z těchto stránek . Instalace ze zdroje (např pip, pro instalaci do virtuálního prostředí) vyžaduje C / C ++ kompilátoru.

Krok 3: Získat kopii wfastcgi.py

Vyberte si verzi, která bude pracovat pro vás, nejlépe ten, který podporuje Python 3.3 (já jsem použil David Ebbo je ). Možná budete chtít „oficiální“ verzi odtud .

Nainstalovat wfastcgi.pyskript do C:\Inetpub\wwwroota ujistěte se, že účet, který bude sloužit vaší žádosti ( „síťové služby“ ve výchozím nastavení) přečteného přístup k němu.

Krok 4: Instalace virtualenvdo místa balení System

C:\Python33\Scripts\pip.exe install virtualenv

(Pokud používáte Python 3.3 a nainstalován vše ve výchozím umístění)

Krok 5: Instalace Váš Flask aplikace

  • Můžete nainstalovat aplikaci téměř kdekoliv v systému. Možná budete chtít instalovat pod C:\Inetpub. V této lekci budeme nazývat kořenová složka aplikaci nainstalovat %APPROOT%. (Nedávejte uvozovek v proměnné prostředí.)

  • Ujistěte se, že účet, který bude sloužit vaší žádosti ( „síťové služby“ ve výchozím nastavení) má přístup ke čtení pro všechny soubory skriptu. Tento příkaz:

    cacls "%APPROOT%" /S:"D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;NS)(A;OICI;FA;;;SY)"
    

    dám svůj adresář aplikace následující oprávnění:

    • BUILTIN \ Administrators: Úplné řízení na tuto složku, podsložky a soubory
    • CREATOR OWNER: Úplné řízení pro podsložky a soubory pouze
    • NT AUTHORITY \ NETWORK SERVICE: oprávnění ke čtení pro tuto složku, podsložky a soubory
    • NT AUTHORITY \ SYSTEM: Plná kontrola tuto složku, podsložky a soubory
  • Přidávat žádné místní konfiguraci potřebnou (moje aplikace používá soubor local.cnf, který je ignorován systém pro správu verzí) - například databáze adres URL.

  • Ujistěte se, že vaše aplikace obsahuje Web.configsoubor %APPROOT%- viz odstavec níže informace o formátu souboru.

Krok 6: Vytvoření VIRTUALENV pro vaši aplikaci

C:\Python33\Scripts\virtualenv.exe --system-site-packages "%APPROOT%\env"

(Vyberte jiný než název env, pokud aplikace již používá tento adresář.)

Krok 7: Instalace balíčků požadované ve vaší aplikaci na VIRTUALENV

cd "%APPROOT%"
env\Scripts\activate
pip install -r Packages

(Můj projekt udržuje požadavky spec v souboru s názvem Packages.)

Krok 8: Vytvoření webového serveru nebo virtuálního adresáře pro vaši aplikaci

Použít inetmgr.msc( start -> Spustit ... , zadejte inetmgrdo textového pole a stiskněte klávesu ENTER ) pro spuštění Internet Information Services (IIS) . Ujistěte se, že nastavit místní cestu k uzlu (webové stránky nebo virtuální adresář), které vytvoří na kořenové složce Flask aplikace. wfastcgi.pypoužívá místní cestu k identifikaci aplikace baňku zpracování žádosti.

Dát oba Číst a skript ( spouštění skriptů ) oprávnění pro uzlu.

Krok 9: Konfigurace fcgiext.ini

Tento soubor je umístěn ve stejném adresáři jako fcgiext.dllinstalovaný v kroku 1 (ve výchozím nastavení %SYSTEMROOT%\system32\inetsrv).

V konfiguraci tohoto souboru, budete potřebovat několik parametrů:

  • {site} id : číselná ID webu najdete v detail (pravá) panelu Internet Information Services (IIS) Manager Kdy „Webové stránky“ je vybrán ze stromu na levé straně okna.
  • {název aplikace} : název sekce v rámci fcgiext.ini, který poskytuje parametry pro FastCGI (ISAPI) psovoda. Zvolíte tuto hodnotu - zvolte něco, co odpovídá vaší žádosti.
  • {cesta k aplikaci,} : pro virtuální adresář, URL cesta v rámci webové stránky do virtuálního adresáře, které mají být zpracovány.
  • {} approot : cesta ke kořenovému adresáři aplikace.

Použít tyto parametry:

  • Pro žádosti FastCGI do sekce Manipulace:

    • Po celý webové stránky, přidejte do oddílu.*:{site id}={application name}[Types]
    • Pro virtuální adresář, přidejte do oddílu.*:/lm/w3svc/{site id}/root/{path to app}={application name}[Types]
  • Přidejte manipulační část ( ) s parametry pro tuto aplikaci ( full referenční ):[{application name}]

    • ExePath={approot}\env\python.exe
    • Arguments=C:\Inetpub\wwwroot\wfastcgi.py(nebo kdekoli wfastcgi.pyadaptér skript je instalován)
    • EnvironmentVars=ENV_VAR1:value,ENV_VAR2:value,etc.(viz úplný odkaz na cituje pravidla). Je to dobré místo pro nastavit proměnnou prostředí WSGI_LOG - zkontrolujte, zda účet, kde se podává v místě ( „síťové služby“ ve výchozím nastavení) má oprávnění k zápisu pro soubor a (v případě, že soubor neexistuje) oprávnění k přidání souboru do obalující adresář.

Krok 10: Konfigurace FastCGI Manipulace pro cílové adresy URL

Pomocí Internet Information Services (IIS) , zvolte „Vlastnosti ...“ z nabídky kontext (pravé tlačítko myši) uzlu (Web Site nebo virtuální adresář), které mají být doručeny vaší baňky žádosti a:

  • Na záložce „domovský adresář“ (Web Site) nebo na kartě „Virtuální adresář“ (Virtual Directory), klikněte na tlačítko „Konfigurace ...“.

  • V sekci „zástupných aplikace Mapy“, použijte tlačítko „Vložit ...“ přidat mapování pomocí zástupných znaků:

    • Spustitelný je rozšíření FastCGI DLL nainstalována v kroku 1. Jeho výchozí umístění %SYSTEMROOT%\system32\inetsrv\fcgiext.dll.
    • Ujistěte se, že „Ověřte, zda soubor existuje“ je zaškrtnuta . Baňky aplikace dělat své vlastní směrování, které nemusí nutně mít nic společného se soubory na disku.

web.config

Tento soubor (v tomto nastavení) číst wfastcgi.py, nikoli službou IIS.

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <applicationSettings>
        <add key=“PYTHONPATH” value=“”/>
        <add key=“WSGI_HANDLER” value=“module.application”/>
    </applicationSettings>
</configuration>
  • <add>prvky přidat proměnné prostředí ( os.environv Pythonu).

  • WSGI_HANDLERmusí být zadán - to řekne wfastcgi.py, jak najít objekt WSGI aplikace. Je-li hodnota skončí v „()“, wfastcgi.pybude volat s názvem objektu, očekával, že se vrátí objekt WSGI aplikace.

  • PYTHONPATHje řešen speciálně - wfastcgi.pyProvádí (prostředí) proměnné rozšíření (za použití standardní Windows %VAR%zápis) na hodnotu PYTHONPATH, pak se rozdělí výsledek na středníkem a připojí položky sys.pathpřed vyvoláním aplikace WSGI. Vzhledem k tomu, wfastcgi.pyzmění aktuální adresář na cestě zadané jako místní cestu webového serveru nebo virtuálního adresáře před importem modul obsahující objekt WSGI aplikací, včetně prázdný řetězec v PYTHONPATH způsobí hledání zahrnout Flask adresář aplikace jako výchozí bod. Můžete také nastavit PYTHONPATH v fcgiext.ini(v takovém případě je zařazena do sys.pathinterpretem a pak znovu wfastcgi.py).

  • WSGI_RESTART_FILE_REGEXdává Python regulární výraz použit k filtrování oznámení souborů změny pro cest, které by měla přinést FastCGI obslužných postup opakovat. Tento příkaz je nastaven pro spuštění, když zdrojové soubory nebo konfigurační soubory změnit. Já používám (?i).*\.(py|cnf|config)$.

  • WSGI_LOGzde může být nastavena, ale myslím, že je lepší nastavit v fcgiext.ini.


Pro IIS 7

Některé věci se FastCGI dramaticky změnila s IIS 7. Počínaje touto verzí, FastCGI má podporu přímo přes IIS a není nakonfigurován prostřednictvím rozšíření (tj Krok 1.4 není nutné a fcgiext.ininekontroluje chování FastCGI IIS 7+ a není třeba vytvořit / editovat it). Místo toho, ujistěte se, že CGI je umožnit v rámci Internet Information Services v Ovládací panely> Programy a funkce> funkce systému Windows zapnout nebo vypnout .

Web.config

IIS 7 je první verze IIS číst nastavení konfigurace související s FastCGI ze Web.configsouboru. Váš Web.configsoubor bude muset obsahovat, v rámci <configuration>prvek, což je <system.webServer>prvek, který obsahuje <handlers>prvek obsahující <add>prvek s atributy:

  • cesta: *
  • sloveso: *
  • moduly: FastCgiModule
  • resourceType: Unspecified
  • requireAccess: Script
  • scriptProcessor: choulostivé jeden

scriptProcessorAtribut

Tento atribut <add>prvku musí obsahovat úplnou cestu k interpreteru Python .exesouboru, který chcete použít (jeden v Scriptspodsložce Python VIRTUALENV) následovaný |a pak celou cestu k wfastcgi.pysouboru, který používáte. Protože tyto cesty jsou závislé na nastavení stroje, na kterém běží vaše aplikace, možná budete chtít mít tento atribut nastaven jako součást svého procesu nasazení.

IIS Server celé Nastavení

  • V inetmgrklikněte na serverový uzel ve stromě a poté zvolte Nastavení FastCGI z centrálním panelu. Seznam spustitelných / argumentů párů přijde.
  • Přidat položku pro úplné cesty ke svému python.exea wfastcgi.pypoužíváte. Obě by měly být stejným způsobem se zobrazují v <handlers>/<add>prvkem ve vaší Web.config.
  • Ujistěte se, že nastavit PYTHONPATHproměnnou prostředí v nové položce FastCGI aplikace zahrnout kořenový adresář aplikace codebase. Poradenství o přidání prázdné PYTHONPATHpoložka v oddílu <applicationSettings>vašeho Web.confignemusí vztahovat na tuto verzi IIS.
Odpovězeno 01/03/2014 v 00:48
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more